Etiket arşivi: veri çalışma notları

Veri Madenciliği Notları

Gelişen teknoloji ile birlikte tüm verilerin saklanması ve sürekli olarak kayıt altına alınması söz konusu olmultur. Bu da verilerin sayısallaşmasına sebep olmaktadır.

Peki bu veriler ile ne yapacağız ? 

İşte tam da burada veri madenciliği kavramı devreye girmektedir. Kayıt altına alınan verilerin analiz edilmesi veri madenciliği ile mümkün olmaktadır.

Temel matematik ve istatistik yöntemler ile bazı hesaplamalar yapılabiliyor olsa da; ilişkili veri tabanları ve veri büyüklüğü nedeni ile yetersiz kalmaktadır. Bu da yeni yöntemler ortaya çıkmasına sebep olmaktadır.

Veri madenciliği ile tam da bu boşluk doldurulmaktadır.

Veri madenciliği; büyük veriler içerisinden değerli olan bilgileri elde etme işidir. Aynı zamanda mevcut bilgiler ışığında geleceğe dair tahminlerde bulunma ve veriler arası ilişkileri kurmayı da sağlar.

Tüm bu işlemler için kayıt altına alınan verinin kayıt edilme şeklinin de düzenlenmesi ihtiyacını doğurmaktadır.


Veri Ambarı

Verilerin tümünün sürekli olarak dönüştürülerek kayıt altına alınması, ya da kayıt sırasında düzenlenmesi mümkün olmayabilir. Aynı zamanda geçmişte elde edilen verilerin de yeni teknolojiler ile kayıt ortamlarına aktarılması da söz konusudur. Bu nedenle veri saklama ile veri işleme birimleri ayrışmaktadır.

Veri ambarları; saf bilgilerin saklandığı yapılardır.

Bu yapılan anlık olarak tüm uygun biçimde kayıt altına alınmasını sağlar, ancak bu kayıtların bir bilgi olarak okunması mümkün olmayabilir.

Veri ambarlarında veri kaynakları çeşitlilik gösterebilir. Birden fazla kaynaktan verilerin alınması mümkündür.


Veri Tabanı Yönetim Sistemleri

Tüm bu işlemler için kayıt altına alınan verinin kayıt edilme şeklinin de düzenlenmesi ihtiyacını doğurmaktadır. Bu nedenle de yeni teknlojiler geliştirilmesi, ihtiyaçlara uygun olarak kayıt yapılarının düzenlenmesi gerekli hale gelmiştir.

Veri tabanı yönetim sistemleri, mevcut verilerin yönetilmesini kolaylaştırmak amacı ile geliştirilmektedir. Aynı zamanda bu yapılar sayesinde anlık olarak kayıt altına alınan verilerin bilgi olarak kullanıcıya sunulmasını da sağlanır.

Veri ambaları ile kullanıcılar arası iletişimi bu sistemler sağlar.


Veri Madenciliği Süreçleri

Veri madenciliğinde veri ambarlarında yer alan tüm bilgilerin doğrudan kullanımı söz konusu olmayabilir. Bu ambarlarda yer alan verilerin bir kısmı bilgi içermiyor (log kayıtları, giriş çıkış bilgileri vb) ya da hedeflemiş olduğumuz amaca hizmet etmiyor olabilir. Bu nedenle veri madenciliği işlemleri için izlenecek ve bu verilerden gerekli olanları ayıklamak için süreçler mevcuttur.

Veri temizleme –> Veri bütünleştirme –> Veri indirgeme –> Veri dönüştürme –> Veri madenciliği yöntemi –> Sunum\değerlendirme

Veri temizleme : “Gürültü” olarak tabir edilebilen, amaca hizmet etmeyen eksik ya da yanlış bilgilerin temizlenmesi işlemleridir.

Veri bütünleştirme : Farklı kaynaklardan gelen (ambara giren verilerin kaynaklarında farklılıklar olabilir) verilerin tek tip verilere dönüştürülmesidir.

Veri indirgeme : Amaca hizmet etmeyen verilerin çıkarılacak kullanılacak olan verinin sadeleştirilmesidir.

Veri dönüştürme : Analize uygun olmayan verilerin farklı formatlara dönüştürülmesi düzenlenmesidir.

Veri madenciliği yöntemi : Verilerin analizi için kullanılacak olan yöntem\algoritmaya karar verilmesi.

Sunum|değerlendirme: Sonuçların raporlanması.


Veri Madenciliği Yöntemleri

Temelde en çok kullanılan yöntemler sınıflama, kümeleme ve birliktelik olarak tanımlanabilir. Her üç yöntemde de avantajlar ve dezavantajlar mevcut olmakla birlikte amaca uygun olan yöntem tercih edilebilir.

Sınıflama

Gizli örüntüleri ortaya çıkarmak amacı ile kullanılan yöntemdir. Mevcut verilerin bir kısmı ile makine öğrenmesi gerçekleştirilerek diğer verilerin sınıflandırılmasını ve ortama dahil edilen yeni verilerin hangi sınıfta yer alacağına karar verilmesini sağlar.

Örnek : Banka kredi durumu

Borç durumu, gelir durumu, statüsü gibi bilgiler üzerinden kullanıcının kredi bilgisine ulaşma, tahminde bulunma sağlanabilir.

  • if (borc=yuksek) –> durum=hayır
  • if(borc=dusuk ve gelir=dusuk) –> durum=hayır
  • if (borc=dusuk ve gelir=dusuk) –> durum=evet

Bura BORÇ ile başlama sebebi entropi ya da gini değeri nedeniyledir. Daha sonra açıklanacaktır.

Kümeleme

Veriler arası benzerlikler ve farklılıkları inceleyerek gruplamalar yapılmasını sağlayan yöntemdir. Burada verilerin mevcut özelliklerinin birbirine olan yakınlığı hesaplanır. Birden fazla özelliğin yakınlığının aynı anda hesaplanması söz konusu olabilmektedir.

Kümeleme için Değerlendirme Metrikleri

Görselde yer verildiği üzere birbirine yakın veriler ayrıştırılarak gruplar oluşturulmuştur.

Dendrogram ve Venn diagramı ile gösterimi söz konusudur.

Birliktelik Kuramı

Verilerin birbiri ile olan ilişkisini inceleyen, eş zamanlı veya birlikte gerçekleştirilen durumları tespit eden yöntemdir. Pazarlama alanında oldukça yaygın bir kullanımı söz konusudur. Apriori diagramı ile ifade edilir.

Satış Fişleri

Bu örnekten hareket ile her bir ürün için frekans hesabı yapılır. Burada ekmek için frekans en yüksektir.

Sonrasında ekmek ile birlikte olan ürünler gruplanarak ikili, daha sonra gerekli ise üçlü-dörtlü frekanslar hesaplanır. Burada ekmek ve sütün birlikte olduğu durum frekansı en yüksektir.

Bu sayede frekans değeri en yüksek olan ürünler bizim için birlikte satılabilir ürünler olarak tespit edilebilir.


Veri Madenciliği Algoritmaları

Zero-R Algoritması

Hedef sınıfları tahmin etmeye yönelik algoritmadır. Basit sınıflama algoritması olarak tanımlanabilir. Mevcut verilerin frekanslarını hesaplayarak yeni verinin en yüksek frekansa sahip gruba dahil olacağı tahmininde bulunur.

Yani, bir sınıfta frekans ne kadar yüksekse yeni verinin o gruba dahil olma olasılığı o kadar yüksektir.

Örnek : Ağırlık, fiyat, motor gücü, kapasite

Bu bilgilere sahip olduğumuz bir araç için kullanım amacı frekansları hesaplanır. Spor araç sayısı 17, lüks araç sayısı 9, şehir içi sayısı 28 ve şehir dışı sayısı 21 olsun. Bu durumda yeni eklenen aracın şehir içi araç olacağı öngörüsünü verir.

One-R Algoritması

Zero-R’de olduğu gibi hedef sınıf tahmin etmek için kullanılan algoritmadır. Verilerde belirli özellikleri inceleyerek yeni eklenen bir verinin özelliklerine göre hangi gruba dahil olacağını belirler. Daha iyi bir ifade ile bir verinin hangi özelliğinin gruplama için daha önemli olduğunu söyler.

Örnek : Ağırlık, fiyat, motor gücü, kapasite

Hangi özelliği göz önünde bulundurarak yeni aracı gruplamamız gerekmektedir?

Mevcut araçların çözelliklerini inceleyerek motor gücü özelliğinin gruplama için en iyi ihtimal olduğu sonucunu verir.

Navie Bayes Algoritması

Koşullu olasılıklar ile verilerin hangi gruba ait olduğunu belirlemeyi amaçlar. Bir veri için tüm durumların frekans değerleri hesaplanır ve en yüksek olasılık tercih edilir. Az veri ile işlme yapılması mümkün olmaktadır.

Bu algoritmada eğitim verisi gerekliliği vardır. Bir grup verinin algoritmaya öğrenme amaçlı olarak verilmesi sonrasında işlemler gerçekleştirilir.

Örnek :  (kaynak : https://kodedu.com/2014/05/naive-bayes-siniflandirma-algoritmasi/)

Döküman numarası Öğretilen içerik/cümle Kategori
1 Chinese Beijing Chinese Ç
2 Chinese Chinese Shanghai Ç
3 Chinese Macao Ç
4 Tokyo Japan Chinese J

Bu tablodaki bilgiler üzere kategori frekans hesapları yapılır.

  • P(Ç) = 3/4 = 0.75 (Öğretilecek verilerde Ç kategorisindeki satırların tüm satırlara oranı)
  • P(J) = 1/4 = 0.25 (Öğretilecek verilerde Japonya kategorisindeki satırların tüm satırlara oranı)

İçerik, cümle alanı için frekans hesapları yapılır.

P(Chinese | Ç) = (5 + 1) / (8 + 6) = 0.428
P(Tokyo | Ç)   = (0 + 1) / (8 + 6) = 0.071
P(Japan| Ç)    = (0 + 1) / (8 + 6) = 0.071
P(Chinese | J) = (1 + 1) / (3 + 6) = 0.222
P(Tokyo| J)    = (1 + 1) / (3 + 6) = 0.222
P(Japan| J)    = (1 + 1) / (3 + 6) = 0.222

Aşağıda yer alan yeni verinin hangi kategoride olacağının bulunması için:

Test verisi Chinese Chinese İstanbul Chinese Tokyo Japan Kategori = ???

P(Ç | Test) = P(Ç) * P(Chinese | Ç) * P(Chinese | Ç) * P(İstanbul| Ç) * P(Chinese | Ç) * P(Tokyo| Ç) * P(Japan| Ç)

P(Ç | Test) = 0.75 * 0.428 * 0.428 * 1 * 0.428 * 0.071 * 0.071 = 0.0003

P(Japonya| Test) = P(J) * P(Chinese | J) * P(Chinese | J) * P(İstanbul| J) * P(Chinese | J) * P(Tokyo| J) * P(Japan| J)

P(Japonya| Test) = 0.25 * 0.222 * 0.222 * 1 * 0.222 * 0.022 * 0.022 = 0.0001

P(Ç | Test) > P(J | Test) olduğundan dolayı, Test verisinin Ç grubunda olma olasılığı olmama olasılığının yaklaşık 3 katıdır. Bu yüzden kategori olarak Ç denilebilir.