İstatistiksel Öğrenme II – Modelin Netliğini Değerlendirme

15statistik ne yazık ki kesin kuralları olan bir disiplin değil. Herhangi bir metot bir veri setinde çok iyi sonuçlar üretebilirken başka bir veri seti üzerinde çok kötü sonuçlar üretebilir. Bu yüzden belirli bir veri seti üzerinde en iyi performansı veren metodu bulabilmek çok önemli bir konu. Pratikte istatistiksel öğrenmenin en çetrefilli olayı da tam olarak budur: doğru yaklaşımı ve metodu belirlemek. Bu yazıda, belirli bir veri seti için en iyi sonucu üreten istatistiksel öğrenme prosedürünü seçmemizde bize yol gösterecek birkaç önemli konsepti inceleyeceğiz.

Uyum Kalitesinin Ölçümü 

Bir istatistiksel öğrenme metodunun belirli bir veri seti üzerindeki performansını değerlendirmek için metodun ürettiği tahminlerin gerçek sonuçlarla ne kadar örtüştüğünü ölçümlememize yarayacak yöntemlere ihtiyacımız var. Yani, belirli bir gözlem için tahmin edilen cevap(reponse) değerin o gözlemin gerçek cevap(reponse) değerine ne kadar yakın olduğunu sayısallaştırmamız gerekiyor. Regresyon için, en yaygın olarak kullanılan ölçüm Ortalama Karesel Hata (Mean Squared Error-MSE)‘dır ve şu şekilde ifade edilir:

MSE

Burada 6(xi) 6‘in i numaralı gözlem için ürettiği tahmini gösteriyor. Tahmin edilen değerler gerçek değerlere ne kadar yakınsa MSE o kadar küçük olur; gerçek değerlerden ne kadar uzaklaşırsa MSE o kadar büyük olur. Yukarıda MSE, modeli uydurmak(model fitting) için kullanılan training veri seti kullanılarak hesaplanır ve training MSE olarak ifade edilmelidir. Fakat genellikle, metodumuzun training veri seti üzerinde ne kadar iyi sonuçlar ürettiğiyle ilgilenmeyiz. Bilakis training veri seti dışındaki verilerde(test) modelin ne kadar kesin sonuçlar ürettiğiyle ilgileniriz. Peki neden durum böyle?

Düşünün ki geçmişteki stok getirilerini kullanarak gelecekteki stok getirilerini tahminlemeye yaracak bir algoritma yaratmaya çalışıyoruz. Metodu geçtiğimiz 6 ay içindeki stok getirilerini kullanarak eğitiyoruz(train). Ancak metodumuzun geçtiğimiz haftaki stok getirilerini ne kadar iyi tahminlediğiyle ilgilenmeyiz pek. Daha ziyade gelecek hafta veya aydaki stok getirilerini ne kadar iyi tahmin edebileceğiyle ilgileniriz. Veya düşünün ki elimizde birçok hastanın klinik ölçüm verileriyle (kilo, kan basıncı, boy, yaş, aile geçmişi, vb.) diyabet olup olmadığına dair veriler olsun. Bu hastaların verilerini bir hastanın klinik verilerini kullanıp diyabet olup olmadığını tahminlemeye yarayacak bir istatistiksel öğrenme metodunu eğitmek(train) için kullanabiliriz. Pratikte, bu metodu belirli bir hastanın klinik verilerinden yola çıkarak diyabete yakalanma riskini tahmin etmede kullanabiliriz. Bu metodun, metodu eğitmek için kullandığımız hastaların diyabet olup olmadığını ne kadar iyi tahmin ettiğiyle ilgilenmeyiz çünkü zaten bu hastaların gerçekten diyabet olup olmadığını biliyoruz. Daha matematiksel ifade etmek gerekirse, düşünün ki istatistiksel öğrenme metodumuzu training veri setine uydurduk(fit) ve bir 6 tahmini ürettik. Bu 6‘i kullanarak 6(x1), 6(x2),…..,6(xn)‘i hesapladık. Eğer bunlar gerçek y1, y2,…..,yn değerlerine yaklaşık olarak eşitse MSE değeri o kadar küçük olacaktır. Fakat gerçekten 6(xi)~yi olup olmadığıyla ilgilenmeyiz. Daha önce görmediğimiz bir veri üzerinde(x0) modelimizin ne kadar gerçeğe yakın tahmin yaptığıyla ilgileniriz: 6(x0)~y0. Peki test MSE değerini minimum yapacak metodu nasıl bulacağız? Bazı durumlarda test veri seti hazır olarak verilmiş olabilir. O zaman modelimizi training veri setini kullanarak uydururuz(fit) ve sonrasında test veri seti üzerinde çalıştırarak sonuçlarına bakıp MSE’i hesaplarız; mininum test MSE değerini üreten metodu seçeriz. Fakat eğer test veri seti yoksa ne yapacağız? Bu durumda, training MSE değerini minimize edecek istatistiksel metodu seçmeyi düşünebiliriz. Genellikle training MSE ile test MSE yakından alakalı olduğu düşünüldüğü için oldukça mantıklı bir yöntem gibi gözüküyor olabilir. Ne yazikki bu stratejiyle ilgili temel bir problem var: minimum training MSE değerini üreten metodun minimum test MSE değerini üreteceğine dair hiçbir garanti yok. Açık olmak gerekirse çoğu istatistiksel öğrenme metodu özellikle training MSE değerini minimize edecek katsayılar(coefficients) üretecek şekilde optimize edilmiş ve tasarlanmıştır. Bu metotların düşük trainin MSE değerleri üretmesi gayet normal, ancak sıklıkla test veri seti üzerine uygulandıklarında daha büyük test MSE değerleri üretirler.

Örnek 1

Örnek 1

Yukarıdaki grafiği inceleyerek bu durumu açıklayalım. Sol taraftaki grafikte siyah ile çizilmiş eğri bizim gerçek 7 fonksiyonumuzu gösteriyor. Turuncu çizgi ile mavi ve yeşil eğriler ise bizim gerçek 7 fonksiyonu için tahminlerimizi göstersin ve bunların esnekliği(flexibility) sırasıyla artıyor olsun; yani mavi turuncudan, yeşil de maviden daha esnek olsun. Turuncu çizgi “linear regression” metodu ile elde edilen tahmindir; yani esnekliği görece azdır. Mavi ve yeşil eğriler ise ilerideki konularda ayrıntılı ele alacağımız “smoothing splines” metodu kullanılarak elde edilen tahminlerdir ve bu eğriler farklı düzleme seviyeleri (level of smoothing) kullanılarak üretilmişlerdir. Grafiğe dikkatli baktığımızda göreceğimiz üzere esneklik seviyesi arttıkça eğri gözlemlenen veriye daha çok uyum sağlar (fit). Yeşil eğri en esnek olan eğridir ve gözlemlenen veriye en çok uyumu sağlamıştır. Fakat, bu eğrinin gerçek 7 eğrisine çok da benzemediğini görüyoruz; çünkü gereğinden fazla kıvrımlı. Smoothing spline fit metodunun esneklik seviyesini değiştirerek aynı veriye bir çok farklı eğri uydurabiliriz.

Sağ taraftaki grafikte gri eğri ortalama training MSE değerini esnekliğin  bir fonksiyonu olarak göstermekte. Burada esneklik kavramı istatistiki jargonda serbestlik derecesi(degree of freedom) olarak adlandırılır. Turuncu, mavi ve yeşil kareler sol taraftaki ilgili eğrinin MSE değerlerini belirtmekte. Daha kısıtlayıcı ve dolayısıyla daha düz(smooth) eğriler daha kıvrımlı olanlara nazaran daha az serbestlik derecesine (degree of freedom) sahiptir. Training MSE değeri esneklik arttıkça monoton olarak azalır. Bu örnekte gerçek 7 doğrusal değil, ve bu yüzden turuncu çizgi gerçek 7‘i yeterince iyi tahminleyecek esnekliğe sahip değil. Yeşil eğri en düşük training MSE değerine sahip çünkü içlerinden en esnek olanı o. Bu örnekte gerçek 7 fonksiyonunu biliyoruz ve böylece test MSE değerlerini çeşitli esneklik seviyeleri için hesaplayabiliyoruz. (Elbette pratikte gerçek 7 fonksiyonu genellikle bilinmez; dolayısıyla bu örnekte yapacağımız hesaplamayı yapmak mümkün olmaz). Test MSE değeri sağ tarafta kırmızı eğri ile gösterilmekte. Esneklik seviyesi arttıkça training MSE değerine paralel olarak test MSE değeri en başta azalmakta, belli bir noktada test MSE değeri minimum olmakta ve o noktadan sonra test MSE değeri tekrar artmakta. Bu nedenle, turuncu ve yeşil eğriler yüksek test MSE değerine sahip. Mavi eğri test MSE değerini minimize etmekte ve sol taraftaki görselde de görülebileceği üzere zaten görsel olarak gerçek 7‘i en iyi tahmin eden de bu. Yatay kesikli çizgi azaltılamayan hatayı (irreducible error) Var(e) gösteriyor ve bu da bütün metotların ulaşabileceği minimum test MSE değeri anlamına geliyor. Dolayısıyla, mavi eğri ile gösterilen smoothing spline tahmini optimuma yakın bir tahmin.

Yukarıdaki görselin sağ tarafındaki grafikte görebileceğiniz üzere istatistiksel öğrenme metodunun esnekliği arttıkça training MSE değerinde monoton bir azalma gözlemlerken test MSE değerinde U şekli gözlemliyoruz. Bu durum, eldeki veriden ve kullanılan istatistiksel metottan bağımsız olarak istatistiksel öğrenmenin temel bir özelliğidir. Model esnekliği arttıkça, training MSE hep azalır ancak test MSE hep azalmayabilir. Bir metot düşük training MSE değeri üretirken yüksek test MSE değeri üretiyorsa, bu durum elimizdeki veriye “aşırı uydurma” veya tam adıyla “overfitting” yapıyoruz demektir. Bunun sebebi elimizdeki istatistiksel öğrenme prosedürünün training veri setindeki örüntüyü (pattern) çok yakından takip etmesidir ve bu örüntülerden bazıları gerçek 7 fonksiyonunun özelliğinden kaynaklanmayıp tamamıyla şans eseri oluşan örüntülerdir. Training verisine “aşırı uydurma” yaptığımızda, test MSE değeri çok büyük olacaktır çünkü training verisinde bulduğumuzu sandığımız örüntüler(rastgele hatalardan kaynaklanan) test verisinde bulunmayacaktır. Şunu da not etmek gerekiyor ki aşırı uydurma yapalım ya da yapmayalım, neredeyse her zaman training MSE değerinin test MSE değerinden düşük olmasını bekleriz çünkü çoğu istatistiksel öğrenme metodu direkt ya da dolaylı olarak training MSE değerini minimize etmek için tasarlanmıştır. 

 1

Örnek 2

Yukarıdaki grafik gerçek 7‘in yaklaşık olarak doğrusal olduğu başka bir örneği gösteriyor. Gene esneklik arttıkça, training MSE değerinin monoton olarak azaldığını, test MSE değerinin ise U şekli çizdiğini görüyoruz. Fakat, gerçek 7 fonksiyonu doğrusala yakın bir fonksiyon olduğundan, test MSE artmadan önce çok az bir miktarda azalıyor; dolayısıyla turuncu least square fit yüksek miktarda esnek olan yeşil eğriden daha iyi tahminleme yapıyor.

Aşağıdaki figür ise gerçek 7 fonksiyonunun doğrusal olmadığı bir örneği gösteriyor. Training ve test MSE eğrileri aynı davranışı(yani training azalırken test MSE değeri U şekli çiziyor) gösteriyor fakat bu sefer test MSE değeri artmaya başlamadan önce her iki eğride de hızlı bir düşüş gözlemleniyor.

2

Örnek 3

Pratikte genellikle sadece training MSE değerini hesaplayabiliriz; test MSE değerini hesaplamak çok daha zordur çünkü genellikle test verisi elimizde yoktur. Yukarıdaki üç örnekten görebileceğiniz üzere, minimum test MSE değerini üreten modelin esneklik seviyesi veri setinden veri setine ciddi derecede farklılık gösterebiliyor. Bu minimum test MSE noktasını hesaplamak için bir çok yöntem var. Bunlardan en yaygını cross-validation. İleriki yazılarda ayrıntılı olarak inceleyeceğimiz için şimdilik burada duralım.

Taraflılık-Varyans Dengesi (Bias-Variance Trade-off)

Test MSE değerinde gözlemlediğimiz U şekli istatistiksel öğrenme metotlarının birbirleriyle rekabet içinde olan iki özelliğinden kaynaklanıyor. Matematiksel kanıtlamayı burada yapmaya kalkarsak yazının amacını çok aşmış oluruz, fakat beklenen(expected) test MSE değerinin her zaman üç temel miktarın toplamına eşit olduğunu söyleyelim:

3

Burada  4 beklenen(expected) test MSE değerini gösteriyor ve bu da bir sürü farklı training veri seti kullanılarak hesaplanan 6‘erin test setleri üzerindeki MSE değerlerinin ortalamasına tekabül ediyor.

Bu denklem bize şunu diyor aslında: beklenen test hatasını minimize etmek için, aynı anda hem düşük varyansa hem de düşük taraflılığa(bias) erişebilen bir istatistiksel öğrenme metodu seçmemiz gerekiyor. Dikkat edilmesi gereken konu şu ki varyans yapısı gereği her zaman sıfıra eşit ya da pozitiftir ve karesi alınmış taraflılık(bias) da hiçbir zaman negatif olamaz. Bu yüzden, beklenen test MSE değeri asla 5‘nin yani azaltılamaz hatanın (irreducible error) altına inemez.

Bir istatistiksel öğrenme metodunun taraflılığı ve varyansı derken tam olarak neden bahsediyoruz? Varyans 6‘in farklı training veri setleri kullanılarak hesaplandığında ne kadar değiştiği ile ilgilidir. Training veri seti istatistiksel öğrenme metodunu uydurmak(fit) için kullanıldığından, farklı training veri setleri farklı 6‘ler üretecektir. Fakat ideal olarak gerçek 7 için olan tahminimizin farklı training veri seti kullandığımızda çok fazla değişmemesi gerekir. Eğer bir metot yüksek varyansa sahipse o zaman training veri setindeki küçük değişiklikler bile tahminimiz olan 6‘te büyük değişikliklere sebep olur. Genel olarak, daha esnek istatistiksel metotlar daha yüksek varyanslara sahiptir. Örnek 1‘deki yeşil ve turuncu eğrileri gözlemleyin. Esnek yeşil eğri gözlemleri çok yakından takip ediyor. Bu eğri yüksek bir varyansa sahip çünkü gözlemlerden herhangi birini değiştirdiğimizde hesapladığımız 6 fonksiyonu ciddi derecede değişir. Diğer yandan, turuncu “least squares” çizgisi ise göreceli olarak daha az esnektir ve dolayısıyla daha düşük varyansa sahiptir çünkü herhangi bir gözlemi değiştirdiğimizde bu değişiklik fonksiyonumuzda çok çok ufak bir değişikliğe neden olacaktır.

Taraflılık(bias) ise gerçek hayattaki bir problemi yaklaşık olarak olarak modellediğimizde modelimizin sebep olduğu hatadır. Bu hata seçtiğimiz model basitleştikçe artış gösterir. Örneğin, linear regression Y ve X1,X2, . . . , Xp arasında doğrusal bir ilişki olduğunu var sayar. Gerçek hayatta karşılaştığımız herhangi bir problemin böylesine basit bir doğrusal ilişkiye sahip olması çok az rastlanılan bir durumdur. Dolayısıyla linear regression 7‘i tahminlemede şüphesiz bir biçimde bir miktar taraflılığa sebep olacaktır. Örnek 3‘te gerçek 7 doğrusal değildir, bu yüzden ne kadar training verisine sahip olursak olalım linear regression kullanarak net bir tahmin yapmamız mümkün değil. Diğer bir deyişle linear regression bu örnekte yüksek taraflılığa sebep oluyor. Fakat Örnek 2‘de gerçek 7 doğrusala çok yakın ve dolayısıyla elimizde yeterince veri olduğunda linear regression kullanarak net bir tahmin elde etmemiz mümkün. Genel olarak, daha esnek metotlar daha az taraflılığa sebep olur.

Genel bir kural olarak, daha esnek metotlar kullandığımızda varyans artarken taraflılık azalacaktır. Test MSE değerinin artmasını ya da azalmasını belirleyen etmen bu iki miktarın göreceli değişimidir. Esnekliği artırdığımızda taraflılık en başlarda varyansın artış hızından daha hızlı bir şekilde düşecektir. Sonuç olarak beklenen test MSE değeri de düşecektir. Ancak, belirli bir noktadan sonra esnekliği artırmak taraflılık üzerinde çok düşük miktarda etki gösterecektir ve varyansı ciddi derecede artırmaya başlayacaktır. Bu olduğunda test MSE değeri artış gösterir. Bu olay yukarıdaki 3 örneğin sağ tarafındaki grafiklerde gösteriliyor.

8

Yukarıdaki görseldeki üç grafik 1.,2. ve 3. örneklerimiz için beklenen test MSE değeri denklemimiz için sonuçlarını gösteriyor. Mavi eğri çeşitli esneklik seviyeleri için karesel taraflılığı (squared-bias), turuncu eğri de varyansı gösteriyor. Kesikli yatay çizgi ise azaltılamaz hatayı5, gösteriyor. Kırmızı eğri ise bu üç miktarın toplamını yani beklenen test MSE değerini gösteriyor. Her üç örnekte de metodun esnekliği arttıkça varyans artıyor ve taraflılık azalıyor. Fakat, minimum test MSE değerine karşılık gelen esneklik seviyesi her örnek için ciddi derecede farklılık gösteriyor çünkü karesel taraflılık ve varyans hepsinde farklı hızlarlarla değişiklik gösteriyor. Soldaki grafikte en başlarda taraflılık varyansın değişim hızına kıyasla çok hızlı bir şekilde azalıyor ve dolayısıyla test MSE değerinde düşüşe sebep oluyor. Fakat ortadaki grafikte gerçek 7 doğrusala yakın olduğundan esneklik arttıkça taraflılıkta çok az bir azalmaya neden oluyor ve test MSE değeri çok az miktarda azalıyor ve sonrasında varyans arttığı için hızla artmaya başlıyor. Ve sağ taraftaki grafikte ise esneklik arttıkça taraflılıkta çok ciddi bir azalma oluyor çüknü gerçek 7 bu örnekte doğrusal olmaktan çok uzak. Ayrıca esneklik arttıkça varyansta da çok az bir artış gözlemleniyor. Sonuç olarak, test MSE değeri çok ciddi miktarda azalıyor ve belirli bir noktadan sonra çok az artış gösteriyor.

Bu durum taraflılık-varyans dengesi (bias-variance trade-off) olarak adlandırılıyor. Bir istatistiksel öğrenme metodunun düşük test MSE değeri üretebilmesi için hem düşük varyansa hem de düşük karesel taraflılığa sahip olması gerekiyor. Bu denge olarak ifade ediliyor çünkü son derece düşük taraflılığı olup son derece yüksek varyansa sahip bir metot veya tam tersini elde etmek kolay. Buradaki zorlayıcı nokta hem varyansı hem de karesel taraflılığı düşük olan bir metot bulmak.

Gerçek hayatta gerçek 7‘i genellikle bilmeyiz. Bu yüzden bir istatistiksel öğrenme metodunun test MSE değerini, taraflılığını ve varyansını hesaplamak çoğu zaman mümkün değildir. Yine de taraflılık-varyansa dengesini göz önünde bulundurmamız gerekiyor. Bunları nasıl hesaplayacağımıza dair metotları sonraki yazılarda ele alacağız.

Sınıflandırma (Classification) Olayı

Şimdiye kadar model netliğini tartışırken hep regresyona odaklandık. Fakat karşılaştığımız konseptlerin çoğu, mesela taraflılık-varyans dengesi, sınıflandırma metotları için de geçerli. Buradaki tek değişiklik tahmin etmeye çalıştığımız değişkenin artık sayısal bir değişken olmaması. Diyelim ki elimizdeki veri şöyle olsun: {(x1, y1), . . . , (xn, yn)} ve gerçek 7‘i hesaplamaya çalışalım. Burada y değişkeni kalitatiftir. Tahminimizin, 6, netliğini ölçmedeki en yaygın yaklaşım training hata oranıdır (training error rate) ve bu da tahmin ettiğimiz 6‘i training veri setine uyguladığımızda elde ettiğimiz hatalı tahminlerin tüm tahminlere oranıdır.

Capture

Üzerinde şapka olan y i.’ci gözlem için tahminimizi temsil ediyor. I fonksiyonu ise içindeki ifade doğru ise 1 değil ise 0 üretiyor. Dolayısıyla yukarıdaki fonksiyon bize yanlış sınıflandırılan gözlemlerin yüzdesini veriyor.

Burada da gene tahminimizin training veri seti üzerinde ne kadar iyi sonuçlar ürettiğinden ziyade test veri seti üzerinde ne kadar iyi sonuçlar ürettiğiyle ilgileniriz. İyi bir sınıflandırıcı(classifier) test MSE değeri minimum yapandır.

Bayes Sınıflandırıcısı (Bayes Classifier)

Test MSE değeri her bir gözlemi tahmin değişkenlerine bakarak en yüksek olasılıktaki sınıfa atayarak minimize edilir. Diğer bir deyişle x0 tahminleyici değişken vektörüne (yani X1,X2,…,Xp) sahip bir test gözlemini öyle bir j sınıfına atamalıyız ki

Pr(Y = j|X = x0)

değeri maksimum olsun. Bu ifade bir koşullu olasılık (conditional probability)‘dır ve şu şekilde ifade edilir: x0 verildiğinde Y’nin j’ye eşit olma olasılığı. Bu son derece basit sınıflandırıcı Bayes Sınıflandırıcısı(Bayes Classifier) olarak adlandırılır. Yalnızca iki sınıftan(sınıf1, sınıf2) oluşan problemlerde Bayes Sınıflandırıcısı bir gözlemi Pr(Y = 1|X = x0) > 0.5 ise birinci sınıfa değilse ikinci sınıfa atar.

9

Yukarıdaki grafik X1 ve X2 tahminleyici değişkenlerinden oluşan iki boyutlu bir uzaydaki bir örneği gösteriyor. Turuncu ve mavi halkalar iki farklı sınıfa ait olan training veri seti gözlemlerini gösteriyor. X1 ve X2‘nin her bir değeri için, cevap (response) değişkeninin turuncu veya mavi olma olasılığı farklılık gösteriyor. Bu örnek yapay olarak yaratıldığından verinin nasıl oluşturulduğunu biliyoruz ve X1 ve X2’nin her bir değeri için koşullu olasılık değerlerini hesaplayabiliyoruz. Turuncu alan Pr(Y = orange| X) > 0.5 olduğu alanı, mavi alan ise bu değerin 0.5’ten küçük olduğu alanı gösteriyor. Kesikli mor çizgi ise olasılığın tam olarak 0.5 olduğu yerleri gösteriyor. Bu çizgi Bayes Karar Sınırı (Bayes decision boundary) olarak adlandırılıyor. Bayes Sınıflandırıcısının tahminleri bu sınır tarafından belirleniyor: eğer bir gözlem bu çizginin turuncu tarafına düşerse turuncu sınıfa, mavi tarafında düşerse mavi sınıfa atanıyor.

Bayes Sınıflandırıcısı mümkün olabilecek en düşük test hata oranını üretiyor ve bu da Bayes hata oranı (Bayes error rate) olarak adlandırılıyor. Bu örnekte Bayes hata oranı 0.1304. Sıfırdan büyük çünkü sınıflar birbirleriyle bazı noktalarda çakışıyor. Bayes hata oranı regresyon ortamındaki azaltılamaz hataya denk geliyor. 

K-Nearest Neighbors

Teoride her zaman Bayes sınıflandırıcısını kullanmak isteriz. Ancak gerçek veriler için Y’nin X değerlerine bağlı koşullu olasılık dağılımını bilmeyiz; bu nedenle Bayes sınıflandırıcısını kullanmak imkansızdır. Bu yüzden, Bayes sınıflandırıcısı ulaşılamaz bir altın standarttır ve diğer metotlar bununla kıyaslanarak değerlendirilir. Y‘nin X‘e bağlı koşullu olasılık dağılımını hesaplamaya yönelik birçok yaklaşım var. Bunlardan biri de En Yakın K Komşu Sınıflandırıcısı(K-Nearest Neighbors or KNN)‘dır. Elimizde training ve test veri setleri olsun. Test verisetindeki bir gözlemin hangi sınıfa ait olacağını hesaplamak için KNN algoritması ilk olarak bu test gözlemine training veri setindeki  en yakın K gözlemi  (N0) bulur. Sonrasında bu en yakın K gözlemin sınıf dağılımını hesaplar.

10

Hesapladıktan sonra KNN sınıflandırıcısı Bayes kuralını uygular ve test gözlemini (x0) en yüksek olasılık değerine sahip sınıfa atar. 

11

Yukarıdaki görselle birlikte KNN metodunu açıklamaya çalışalım. Sol tarafta 6 mavi ve 6 turuncu gözlemden oluşan küçük bir training veri seti gösteriliyor. Amacımız x ile gösterilen gözlem için sınıf tahminlemek. Diyelim ki K değerini 3 olarak seçtik. KNN ilk olarak bu gözleme en yakın 3 gözlemi bulacaktır. En yakın üç gözlemden ikisi mavi biri ise turuncu sınıfa ait gözüküyor ve bu gözlem için tahminimiz 2/3 olasılıkla mavi sınıf 1/3 olasılıkla turuncu sınıf olarak hesaplanıyor. Dolayısıyla KNN bu gözlem için mavi sınıf tahminliyor. Sağ tarafta ise KNN metodunu K=3 ile mümkün olan bütün X1 ve X2 değerleri için uyguladık ve KNN karar sınırını (KNN decision boundary) belirledik.

Çok basit bir yöntem olmasına rağmen KNN şaşırtıcı bir şekilde çoğu zaman optimal Bayes Sınıflandırıcısına yakın sınıflandırıcı üretiyor.

Aşağıdaki figür KNN‘in K=10 ile 100 adet gözleme uygulandığında elde edilen karar sınırını gösteriyor. Gerçek dağılım KNN sınıflandırıcısı tarafından bilinmemesine rağmen, KNN karar sınırı Bayes karar sınırına çok yakın. Test  hata oranı KNN ile 0.1363. Bu oran Bayes hata oranı olan 0.1304’e son derece yakın!

K’nin seçimi KNN sınıflandırıcısı üzerinde son derece önemli etkilere sahip. Aşağıdaki görselde K = 1 ve K = 100 iken elde edilen KNN karar sınırını görebilirsiniz. K=1 iken karar sınırı son derece esnek ve Bayes karar sınırında olmayan bazı örüntüler bulmuş. Bu düşük taraflılığa fakat son derece yüksek varyansa sahip bir sınıflandırıcıya denk geliyor. K arttıkça, metot daha az esnek olmaya başlıyor ve doğrusala yakın karar sınırları üretmeye başlıyor. Bu düşük  varyanslı fakat yüksek taraflılıklı sınıflandırıcıya denk geliyor. 

12

Tıpkı regresyonda olduğu gibi, sınıflandırmada da training ve test hata oranları arasında güçlü bir ilişki yok.  K=1 olduğunda KNN training hata oranı 0 oluyor fakat test hata oranı oldukça fazla olabilir. Genel olarak, daha esnek sınıflandırma metotları kullandığımızda training hata oranı azalacaktır ancak test hata oranı azalmayabilir. Aşağıdaki figürde KNN test ve training hataları 1/K‘nin bir fonksiyonu olarak gösteriliyor.  1/K arttıkça yani K azaldıkça, metot daha çok esnekleşiyor. Regresyonda olduğu gibi, tranining hata oranı esneklik arttıkça hep azalıyor. Fakat test hata oranı gene U şeklini gösteriyor: en başta azalıyor(K=10 iken minimum oluyor) fakat belirli bir esneklik noktasından sonra tekrar artmaya başlıyor ve veriye aşırı uydurma (overfitting) gerçekleşiyor.

14

Hem regresyonda hem de sınıflandırmada, esneklik seviyesini doğru seçmek herhangi bir istatistiksel öğrenme metodunun başarısı için kritik derecede önemli. Taraflılık-varyans dengesi, ve bunun sonucunda oluşan U şeklinde test hata oranı bu seçimi zor bir işe dönüştürüyor. Test hata oranını hesaplamak ve optimum esneklik seviyesini seçmek için oluşturulan metotları ileriki yazılarda ayrıntılı olarak ele alacağız.

Veri Madenciliği 3 – Veri Hazırlama Bölüm 1

Neden veriyi hazırlıyoruz?

Bütün veri madenciliği araçları için biraz veri hazırlama işlemi yapmak gerekir. Buradaki ana amaç veri setlerinin bilgi içeriklerinin veri madenciliği araçları tarafından en iyi şekilde analiz edilmesini sağlamak için veriyi bir takım dönüşüm işlemlerinden geçirmektir. Veri hazırlama işlemi yapıldıktan sonra hatalı tahmin oranlarının hazırlanma işleminden öncekine oranla düşmüş (ya da en kötü aynı oranda kalmış) olması gerekir.

Veri hazırlığı aynı zamanda veri madenciliği yapan kişiyi de daha iyi ve daha hızlı modeller üretebilmesi için hazırlar. GIGO (Garbage In Garbage Out) konseptini hatırlayacak olursak verimli modeller üretebilmenin ön koşulu iyi bir veriye sahip olmaktır.

Verinin kullanılan yazılım aracına uygun şekilde formatlanması gerekir. Ayrıca kullanılan metoda göre elinizin altında yeterli miktarda veri bulunmalıdır. Teoride her şey çok mükemmelmiş gibi gözükse de pratikte veri ne yazık ki son derece kirli olarak karşımıza çıkıyor:

Eksik (incomplete) Veri: Pratikte eksik veriyle çok sık karşılaşıyoruz. Bazı değişkenlerin ve/veya değerlerin eksik olması, ihtiyaç duyulan değerlerin bulunmaması, veya spesifik değil de toplam değerlerin bulunması eksik veriye örnek olarak verilebilir. Örneğin,
occupation = “”

Gürültülü (noisy) Veri: Gene aynı şekilde pratikte karşılaşılan veriler çok fazla gürültü içeriyor. Hatalı veya aykırı (outlier) veriler gürültülere birer örnek olarak verilebilir. Örneğin,
Salary=”-10″,
Age=”222″

Tutarsız (inconsistent) Veri: Veri içerisindeki tutarsızlıklara da çok sık rastlıyoruz. Kodlamada ya da isimlendirmede birbirleriyle uyuşmayan veriler buna örnek olarak verilebilir. Örneğin,
Age=”42, Birthday=”03/07/1997″
Eskiden “1,2,3” olarak yapılan değerlendirmenin artık “A,B,C” olarak yapılması
Kayıtların kopyalarının aslıyla uyuşmaması

Veri Hazırlığındaki Ana İşler

Veri Temizleme (data cleaning): Eksik değerleri doldurma; gürültülü, kirli ve pürüzlü veriyi pürüzsüz hale getirme(yumuşartma: smoothing); aykırı gözlemleri belirleme veya ayıklama ve tutarsızlıkları giderme işlemleridir.
Veri Entegrasyonu (data integration): Birden fazla veritabanının, veri küpünün (data cube), tablonun veya dosyanın entegrasyonu işlemidir.
Veri Dönüşümü (data transformation): Normalizasyon ve yığınlama (aggregation) işlemleridir. Bu aşamada veri standart hale getirilmeye çalışılır.
Veri Azaltma (data reduction): Veriyi orijinal halini temsil edecek ve aynı veya benzer analitik sonuçları üretecek şekilde hacimsel olarak küçültme, azaltma işlemleridir. Azaltılan veri, normal veriyi temsil etme özelliğini korumalıdır.
Veri Ayrıştırma (data discretization): Veri azaltma (data reduction) işleminin bir parçasıdır ve özellikle numerik verilerde dikkatle uygulanmalıdır.

Bilgi Keşfi Süreci’nin bir parçası olarak Veri Hazırlığı

Aşağıdaki şekildeki Selection, Preprocessing ve Transformation adımları veri hazırlığının aşamalarıdır. Görebileceğiniz üzere veri hazırlığı bütün bilgi keşfi sürecin büyük bir kısmını oluşturur. Yani bu aşama veriyi temizleme, entegre etme, seçme ve dönüştürme işlemlerinden oluşur.

Knowledge Discovery Process

CRISP – DM (Cross Industry Standard Process for Data Mining)

CRISP – DM kapsamlı bir veri madenciliği metodolojisi ve süreç modelidir ve yeni başlayanından uzmanına kadar her kişi için veri madenciliği projesi yürütme işinde tam bir yol haritası görevi görür. Bu model işin anlaşılmasıyla başlar. Hedefin ne olduğunu, iş ihtiyacının ne olduğunu ve neyi bulmaya çalıştığımızı bu aşamada netleştirmeliyiz. Daha sonra süreç bu iş için gerekli verilerin toplanıp kavranmasıyla devam eder.  Bu iki aşama birbirini geri bildirimli olarak çalışır. Daha sonra kavranan veri, hazırlanma aşamasına geçirilir. Hazırlanan veri de modellemede kullanılır; dolayısıyla bu iki aşama da birbirlerini besleyecek ve geliştirecek şekilde geri bildirimli çalışır. Modelleme tamamlandığında değerlendirme aşamasına geçilir ve bu aşamada da yapılan modelin istatistiksel olarak ne kadar geçerli olduğu, doğru sonuçlar üretip üretmediği ve iş ihtiyacını ne kadar karşılayıp karşılamadığı ölçülür. Geçerliliği kanıtlanan modellerde konuşlandırma aşamasına aktarılır ve analizler için kullanılabilir hale getirilir.

2779128

Cross Industry Standard Process for Data Mining

CRISP-DM’in Aşamaları ve Görevleri

Aşağıdaki görselde CRISP-DM’in aşamalarını ve bu aşamaların içerdiği görevleri görebilirsiniz. Bu yazının konusu olan veri hazırlama işlemi aşağıdaki şekilde Veriyi Anlama ve Veri Hazırlığı aşamalarını kapsar. Bu aşamaların görevlerini incelerseniz hepsinin veriyi hazırlamaya yönelik olduğunu görebilirsiniz.

2779091

CRISP – DM: Veriyi Anlama0a

Veriyi anlama aşaması veri toplama işlemiyle başlar ve veriye aşina olma, veri kalitesi problemlerini belirleme, veriden ilk iç görüleri çıkartma veya ilginç alt setleri belirleyip gizli bilgilerin keşfi için hipotez oluşturma işlemleriyle devam eder. Bu aşamada eldeki ilk verideki ilginç bilgilerin neredeyse %80’i SQL kullanılarak keşfedilebilir. SQL ile keşfedilen bu ilginç bilgiler hipotezler oluşturmamıza ve bunlardan modeller oluşturup veri madenciliği yapmamıza temel oluşturabilir. Bu aşamadaki her bir adımın açıklaması ve içeriği şu şekildedir:

Veriyi Topla: Elde edilen veri setlerini listeleme (lokasyon, elde etmek için kullanılan metod, karşılaşılan problemler ve ulaşılan çözümler)
Veriyi Açıkla: Toplanan verilerin yüzeysel olarak özelliklerinin incelenmesi ve sonuçların raporlanması, elde edilen verinin formatını, türünü, miktarını (örneğin bir tablodaki satır veya kayıt sayısı), değişken adlarını(tablodaki sütunları), ve diğer yüzeysel özelliklerini keşfetme; elde edilen verinin gereklilikleri sağlayıp sağlamadığının değerlendirilmesi

Veriyi Keşfet: lginç Sorgulama, görselleştirme ve raporlama tekniklerini kullanarak veri madenciliği sorularını çözümleme sürecidir. Bu süreç korelasyonları belirleme, her bir değişkenin ve değerlerinin iş terimi olarak anlamlarının anlaşılması, her bir değişken için temel istatistiklerin (örneğin dağılım, ortalama, maksimum, minimum, standart sapma, varyans, ortanca değer, eğiklik (skewness)) hesaplanması, değişkenlerin özelliklerinin detaylıca incelenmesi; dağılım, ikili veya daha fazla değişken arasındaki ilişkiler, önemli alt popülasyonların özellikleri, basit istatistiksel analizler
Veri Kalitesini Doğrula: Özel değerlerin belirlenmesi ve anlamlarının kataloglanması, gerekli olan bütün verileri içeriyor mu? Hata var mı, varsa yüzde kaç?, eksik değişkenlerin ve boş alanların belirlenmesi, eksik verinin anlamı, değişkenlerin anlamlarıyla almış olduğu değerler birbirleriyle örtüşüyor mu? değerlerin yazım kontrolünün yapılması (aynı değerin bazen küçük harfle bazen de büyük harfle başlaması), değerlerin akla yatkınlığının denetlenmesi

CRISP – DM: Veriyi Hazırlama0b

Bu aşama toplanan ilk veriden final veri setini (daha sonradan oluşturacağımız modelleri bu final veri seti besleyecektir) oluşturmak için gereken bütün aktiviteleri kapsar. Bu aktiviteler büyük olasılıkla birçok kez tekrarlanacak ve tekrarlanma biçimleri tamamen probleme özgü olacaktır. Tablo, kayıt ve değişken (veya kolon veya attribute) seçimi ve modelleme araçları için bu verilerin dönüştürülmesi ve temizlenmesi işlemleri aktivitelere örnek olarak verilebilir. Bu aşamadaki her bir adımın açıklaması ve içeriği şu şekildedir:

Veri Seç: Veri seçimi kriterlerinin yeniden gözden geçirilmesi, hangi veri setlerinin kullanılacağına karar verme, ihtiyaç duyulan ek verilerin toplanması (kurum içi ya da kurum dışı), örnekleme tekniklerini kullanmayı gözden geçirme, neden bazı verilerin eklenip bazılarının dışarıda bırakıldığını açıklama
Veriyi Temizle: Gürültüyü düzeltme, silme veya görmezden gelme, özel değerlerle ve anlamlarıyla nasıl ilgilenilmesi gerektiğini kararlaştırma (örneğin medeni durum için 99 değeri), gruplama seviyesi, eksik değerler, aykırı gözlemlerin tespiti
Veriyi İnşa Et: Türetilmiş değişkenler (derived attributes: bu değişkenler mevcut olarak bulunan bir veya daha fazla değişken kullanılarak oluşturulan değişkenlerdir, örneğin area = length * width ), eksik değerlerin nasıl inşaa edileceğini veya nasıl bir yaklaşık değer verileceğini belirleme
Veriyi Entegre Et: Kaynakları entegre etme ve sonuçları depolama (yeni tablolar ve kayıtlar vs), birbirleriyle ilişkili iki veya daha fazla tablonun birleştirilmesi
Veriyi Formatla: Değişkenleri yeniden düzenlemek (bazı araçların değişken sıralamasında bazı şartları vardır, mesela ilk değişkenin birincil anahtar (primary key) olması veya son değişkenin tahmin edilmeye çalışılan değişken olması gibi)

Ölçüm (measurement) Türlerini Hatırlayalım

İstatistikte bazı ölçüm türlerini hatırlamamızda fayda var.

Nitel Ölçümler
Bu ölçümlerin sayısal bir değeri yoktur; bu değişkenlerle sayısal bir hesaplama yapılmaz.

Nominal Ölçüm: ID numaraları, insanların isimleri vb.
Kategorik Ölçüm: Göz rengi, posta kodu vb.
Sıralı(ordinal) Ölçüm: sıralamalar (örneğin bir yiyeceğin lezzetinin 1 ile 10 arasında derecelendirilmesi), rütbeler, puanlar, uzunluk (kısa, orta, uzun)

Nicel Ölçümler
Bu ölçümler sayısal ölçümlerdir ve bu ölçümlerle matematiksel işlemler yapılır. Ayrık ve sürekli olmak üzere iki çeşidi olduğunu bir önceki yazıda görmüştür.

Aralıklı(interval) Ölçüm: tarih aralıkları, sıcaklık aralıkları, IQ puanları vb.
Oran(ratio) Ölçümü: Sıcaklık, uzunluk, zaman, vb.

2779500

Veri Dönüşümü

Bazı veri madenciliği araçlar nominal değerlerle işlem yapabilir; fakat bazı araçlar da tüm alanların numerik olmasını gerektirebilir. Sıralı değerlerde matematiksel işlemler ve/veya karşılaştırmalar (küyüktür, küçüktür gibi) yapabilmek için bu değerleri numerik verilere dönüştürmek gerekiyor. Örneğin üniversite yıl sonu ağırlıklı puanı (GPA) şu şekilde numerik verilere dönüştürülür:

A+  –> 4.0
A-   –> 3.7
B+  –> 3.3
B     –> 3.0

Bu sayede kategorik puanlar numerik değerlere dönüştürüldüğünden matematiksel işlemler yapılabilir.

.

Sürekli Değişkenleri (Continuous Variable) Kesikli Hale Getirme(Ayrıklaştırma: Discretization)

Ayrıklaştırma veya ingilizce adıyla discretization(veya binning) numerik verilerin kategorik karşılıklarına dönüştürülmesi işlemine verilen addır. Örneğin Age değişkeninin değerlerini 20-39, 40-59 ve 60-79 gibi aralıklara gruplama işlemi buna bir örnek olarak verilebilir. Numerik değişkenler genellikle sıklık dağılımlarına göre ayrıklaştırılır. Ayrıca bu işlem verideki gürültüyü ve doğrusalsızlığı (non-linearity) azaltarak tahminleme modelinin kesinliliğini artırabilir. Ve şunu da söylemeden geçmeyelim: bu yöntem aykırı gözlemlerin tespitini, geçersiz veya eksik numerik değerlerin tespitini kolaylaştırır.

Bazı veri madenciliği algoritmaları, örneğin Naive Bayes ve CHAID’ın çoğu versiyonu, ayrık değerler gerektirir. Ayrıca bu işlem sonucunda veri boyutu önemli ölçüde azalabilir ve bu sayede veri sonraki analizler için hazırlanmış olur. Bu yöntem eldeki verinin özetini oluşturmak için son derece kullanışlı ve yararlı bir yöntemdir. İngilizcesi “discretization” dır ve aynı zamanda “binning” olarak da adlandırılır. “Binning” kelimesi Türkçeye “veri gruplama” olarak çevrilebilir.

Discretization veya Binning iki türde olabilir: gözetlenmeyen(unsupervised) veya gözetlenen(supervised)

Gözetlenmeyen(unsupervised) Ayrıklaştırma

Bu yöntem numerik değişkenleri kategorik karşılıklarına gönüştürür fakat bunu yaparken hedef sınıfın (target class) bilgilerini kullanmaz. Eşit genişlikte gruplama ve eşit derinlikte gruplama gözetlenmeyen ayrıklaştırmanın iki metodudur.

Eşit Genişlikte Gruplama (Equal-width Binning)

Bu gruplama yönteminde sürekli bir değişken eşit genişlikteki N aralığa bölünür. Eğer bir değişkenin aldığı en küçük değer ve en büyük değer sırasıyla A ve B ise ve N aralığa bölünmek isteniyorsa genişlik şu formülle hesaplanır: W = (B-A) / N

0d

Eşit genişlikte gruplama yöntemi bazı avantajlara ve dezavantajlara sahip. Uygulanması son derece basit ve kolaydır. Verinin mantıklı bir soyutlamasını oluşturur. Fakat diğer yandan denetlenmeyen (unsupervised) bir yöntem olması, N sayısının ne kadar olması gerektiğinin tam olarak bilinememesi ve aykırı gözlemlere son derece hassas olması dezavantajlarıdır. Örneğin aşağıdaki örnekte bir şirketteki çalışanların maaşlarının bu yöntemle aralıklara bölünmesiyle elde edilen sonucu görebilirsiniz. Bu sonuçta 1,800,000-2,000,000 aralığında bir aykırı gözlem vardır ve maaşların çoğu 0-200,000 aralığında olduğundan pek yararlı bir yöntem olmamıştır.

0e

Eşit Derinlikte(ya da Yükseklikte) Gruplama (Equal-depth Binning)

Bu yöntemde değerler yaklaşık olarak eşit sayıda eleman içeren N aralığa bölünür. Kümelenmeyi önlediği için ve pratikte “neredeyse eşit” yükseklikte gruplama daha sezgisel kesim noktaları verdiğinden özellikle tercih edilir.

Bu yöntemde dikkat edilmesi gereken hususlar:

  • Sık değerleri farklı haznelere (bölmelere) dağıtmayın
  • Özel değerler için ayrı bölmelere oluşturun
  • Okunabilir kesim noktaları belirleyin (örneğin yuvarlanmış sayılar)

Örneğin elimizde sıcaklık verileri olsun:
64 65 68 69 70 71 72 72 75 75 80 81 83 85

Bu verileri eşit derinlikte gruplama yöntemi kullanarak grupladığımızda aşağıdaki sonucu elde ederiz:

0f

Burada eşit yükseklikler 4 olup son grup için değer 2 olmuştur. Aralıkların bir önceki yöntemde olduğu gibi eşit genişlikte olmak zorunda olmadığını belirtelim.

Gözetlenen (Supervised) Ayrıklaştırma

Bu ayrıştırma yöntemi numerik verileri kategorik karşılıklarına dönüştürür ve ayrım noktalarını seçerken hedef sınıfın (target class) bilgisini kullanır. Entropi temelli ayrıştırma bu yöntemin bir örneğidir.

Entropi Temelli Ayrıklaştırma (Entropy Based Discretization)

Entropi kelime anlamı olarak “düzensizlik”, “karışıklık”(impurity) demektir. Bu metot bölme yaklaşımını kullanır. Entropi ( veya bilgi içeriği) sınıf etiketlerine dayanarak hesaplanır. Sezgisel olarak, her bir grubun mümkün olduğunda saf(pure) olabilmesi, yani her bir gruptaki değerlerin aynı sınıf etiketine karşılık gelmesi için, en iyi ayrım noktalarını bulmaya çalışır. Maksimum bilgi kazanımı (information gain) getiren ayrımları bulmakla karakterize edilir.

Entropi hesaplamanın formülü şu şekildedir:

Entropi

Evet, yanlış görmediniz. Entropi hem H ile hem de E ile ifade edilebiliyor.

Entropi ingilizce olarak “impurity” demektir; yani Türkçeye kirlilik ve katışıklık olarak çevirebiliriz. Ancak buradaki kirlilik şu anlama gelmektedir: bir grup içerisinde farklı özelliklere sahip çok fazla veri bulunması, çeşitlilik. Aşağıdaki görselde de görebileceğiniz üzere fazla kirli ve katışık grupların entropisi yüksektir; sıfır kirlilik ve katışıklığa sahip grupların entropisi sıfırdır.

0h4

Entropi hesaplanırken önce tahminlenmeye çalışılan hedef değer için entropi hesaplanır. Daha sonra belirli ayrım noktaları için entropi değeri hesaplanır. En son olarak da bilgi kazanımı (information gain) hesaplanarak en iyi ayrım noktası belirlenir. Şimdi bütün bu adımları bir örnekte açıklayalım.

0gYandaki gibi bir veri setimizin olduğunu düşünelim. Bir sporu yapmanın fahrenayt cinsinden hava sıcaklığına bağlı olarak nasıl değiştiğini belirlemek istiyoruz. Bize en iyi ayrımı veren, yani bir insanın bu söz konusu sporu yapıp yapmayacağını en iyi tahminleyebilen, hava sıcaklığı değeri nedir? Bu sorunun cevabını entropi yöntemini kullanarak hesaplayalım.

İlk adım olarak tahminlemek istediğimiz değişkenin, yani sporu yapıp yapmadığının, entropisini hesaplayalım. Bu veri setinde bu sporu yapan ve yapmayan insanların sayısı aşağıdaki gibidir.

Yes = 9, No = 5

Toplam olarak 14 değer vardır. Entropiyi hesaplarken bu değerlerin yüzdelerine ihtiyacımız var. Y için yüzde değer 9/14 = 0.64 iken N için yüzde değer 5/14 = 0.36’dır.

E (Play) = E(9, 5) = E(0.64, 0.36) = -0.64 x log2(0.64) – 0.36 x log2(0.36) = 0.942

Bu bulduğumuz değer hedef değerin entropisidir. Şimdi bu veri setini diyelim ki 71.5 ve 77 dereceleri için ikiye bölmek istiyoruz. Hangisi daha fazla bilgi kazanımı sağlıyor? Hemen hesaplayalım.

Verimizi 71.5 ayrım noktasıyla ikiye ayıralım. Bu değere eşit bir değer olmadığından bütün değerler ya bundan küçüktür ya da bundan büyüktür. Aşağıdaki tabloda bu değerden küçük ve bu değerden büyük için söz konusu sporu yapma sayılarını görebilirsiniz.

0g1

Bu ayrım noktası için entropiyi şu şekilde hesaplarız:

0h

Bir de farklı bir değer için, mesela 77, entropi hesaplaması yapalım.

0g2

0h1

Şimdi her iki değer için de bilgi kazanımını hespalayalım:

Information Gain = E(S) – E(S,A)

 71.5 için kazanç = 0.942 – 0.939 = 0.003

77 için kazanç     = 0.942 – 0.915  = 0.027

Yukarıdaki hesaplamaya göre veriyi 77 ayrım noktasından ikiye bölersek 71.5 ayrım noktasından ikiye bölmeye kıyasla 9 kat daha fazla bilgi kazanımı sağlarız. Dolayısıyla veriyi 77 den ikiye bölmek daha karlıdır.

Hedeflemek istediğimiz veri setinin entropisini (0.942) hesaplamadan da en iyi ayrımı bulabilirdik; çünkü her bir ayrım noktası için hesapladığımız entropiyi her seferinde sabit bir değer olan 0.942’den çıkartarak bilgi kazanımını bulduğumuz için en küçük entropiye sahip olan ayrım noktası bilgi kazanımını maksimize edecektir. Bu örnekte de 0.915, 0.939’dan daha küçük olduğundan bilgi kazanımını daha çok arttırır.

Entropi metodu mümkün olan bütün ayrımlar için entropi hesaplanması ve bulunan değerlerden en küçüğünün seçilmesine dayanır. 

Bu ayrıklaştırma yönteminin belirli bir durma noktası(kriteri) olması gerekir. En yaygın durma kriteri Minimum Description Length Principle(MDLP) olarak adlandırılan prensibe dayanan bir durma kriteridir. Bu prensip Karar Ağacı ve Naive Bayes algoritmaları için başarılı ayrım noktaları üretmesine rağmen diğer yöntemler için aynı başarıyı gösteremiyor. MDLP’den kısaca şu şekilde bahsedebiliriz:

S: veri setini, A: değişkeni, T: ayrım noktasını gösteriyor olsun. Bu S veri setinin A değişkeni için T ayrım noktasının entropisinin  E (A,T;S) olarak hesaplanacağını yukarıda görmüştük. Bir A değişkeni için, MDLP metodu bütün ayrım olasılıkları içerisinden minimum entropiyi üreten ayrım noktası olan T(a)’yı bulur. Daha sonra bu veri setinin A değişkenini T(a) noktasından ikiye böler ve her bir parça için tekrar bütün ayrım olasılıklarını hesaplayıp içlerinden minimum entropiyi üreten ayrım noktasını bulur. Bunu veriyi sürekli bulduğu ayrım noktasından ikiye bölerek yapar ta ki aşağıdaki koşul sağlanana kadar:

0h3

Bu koşulda N sayısı S’in içindeki veri sayısı, Gain(A; T ; S) = Ent(S) – E(A; T ; S), (A; T ; S) = log2(3^k – 2) – [kEnt(S) – k1Ent(S1) – k2Ent(S2)] ve k,k1 ve k2 S,S1 ve S2’de temsil edilen sınıf sayısıdır.

Bu konuda daha ayrıntılı bilgi için: http://www.cse.yorku.ca/~aan/research/paper/pakdd99.pdf

Ayrıklaştırmada Dikkat Edilmesi Gereken Konular

Gözetlenmeyen yöntemler

Eşit Genişlik yöntemi çok daha kolaydır ve birçok sınıf için uygundur. Eşit olmayan dağılımlar için korkunç derecede hatalı sonuçlar üretebilir.

Eşit Derinlik (yükseklik) yöntemi daha iyi ve kaliteli sonuçlar verir.

Gözetlenen yöntemler

Bu yöntemler sınıflandırma (classification) için çok daha iyi ve uygundur.

Kaynaklar:

  • ‘Data preparation for data mining’, Dorian Pyle, 1999
  •  ‘Data Mining: Concepts and Techniques’, Jiawei Han and Micheline Kamber, 2000
  • http://www.the-modeling-agency.com/crisp-dm.pdf
  •  ‘Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations’, Ian H. Witten and Eibe Frank, 1999
  •  ‘Data Mining: Practical Machine Learning Tools and Techniques second edition’, Ian H. Witten and Eibe Frank, 2005

Veri Madenciliği 2 – Kısa Bir İstatistik Tekrarı

Veri madenciliğine daha fazla girmeden önce istatistik bilgilerimizi tazelememiz gerekiyor. Burada bütün istatistik konularını anlatmam tabii ki imkansız; ancak bazı temel kavramların üzerinden geçmeye çalışacağım.

Herbert George Wells, İngiliz yazar, 1940 yılında şöyle demiş:
“Statistical thinking will one day be as necessary for efficient citizenship as the ability to read and write”

Günümüzde bu cümlenin ne kadar geçerli ve doğru olduğuna şahit oluyoruz. E hadi başlayalım o zaman!

Kısa Bir İstatistik Tekrarı

Bir değişken herhangi bir aralıkta veya sonsuzlukta birden fazla değer alabilen miktara verilen isimdir. Örneğin nüfus bir değişkendir çünkü ne sabittir ne de değişmezdir; değeri zamanla değişebilir. İşsizlik oranı bir değişkendir çünkü %0 ile %100 arasında herhangi bir değer alabilir.

Rassal değişken (random variable) her incelendiğinde değişen bilinmez bir değer olarak düşünülebilir. Rassal bir değişken ya ayrık (discrete) ya da sürekli (continuous) olabilir. Bir değişkenin olası değerleri zıplamalar ya da keskin aralar içeriyorsa bu değişken ayrık bir değişkendir. Örneğin, nüfus ayrık bir değişkendir; çünkü değeri her zaman tam sayı olarak ölçülür: 1, 2, 3… Fakat bir değişkenin olası değerleri zıplamalar ya da keskin aralar içermiyorsa bu değişken sürekli bir değişkendir. Örneğin, işsizlik sürekli bir değişkendir; çünkü tam birimlerle ölçülmesi gerekmez: %1.77, %8.99, gibi.

Betimleyici istatistikler (descriptive statistics) bir veri koleksiyonunun özelliklerini nicel (quantitative) terimlerle açıklamak için kullanılır. Betimleyici istatistikler bir veri setini nicel olarak özetlemeyi hedefler. Bazı istatistiki özetler betimleyici analizlerde özellikle yaygındırlar: frekans dağılımı (frequency distribution), merkezi eğilim (central tendency), saçılım (dispersion), birliktelik (association), vb.

Her veri seti belirli değerlerin ne kadar sıklıkta görüldüğüne göre açıklanabilir. İstatistikte, frekans dağılımı bir veya birden fazla değişkenin aldığı değerlerin sıklıklarının tablolaştırılarak sunulmasıdır.

Örneğin aşağıdaki tablo diyelim ki bir şirketin aylara göre hisse başına TL fiyatını göstersin.

SeeThru1408x640

Tek değişkenli frekans dağılımları (univariate frequency distributions) genellikle her bir değerin ne kadar sıklıkla bulunduğunu gösterir. Bir frekans dağılımı isteğe göre gruplanabilir ya da gruplanmayabilir. Küçük veri setleri için gruplanmamış frekans dağılımları daha uygunken büyük veri setleri için gruplanmış frekans dağılımları daha uygundur.

2

3

Merkezi Eğilim (central tendency)

Merkezi eğilim, istatistikte nicel (sayısal) bir verinin “merkezi bir değer” etrafında toplanma yatkınlığını ölçme işlemidir. Bir merkezi eğilim ölçümü bu merkezi değeri tanımlayan birçok yoldan biridir. Merkezi eğilim ölçümünü veren üç önemli betimleyici istatistik vardır:

  • Ortalama (mean)
  • Orta değer (median)
  • Tepe değer (mod)

Ortalama (mean)

Aritmetik ortalama en sık kullanılan ortalama tipidir ve genellikle basitçe “ortalama” olarak ifade edilir. Matematik ve istatistikte aritmetik ortalama (veya basitçe ortalama (mean) ) bir veri setindeki bütün elemanların toplamının eleman sayısına bölümüyle elde edilir. Eğer veri seti bir istatistiki popülasyonsa, ortalama popülasyon ortalaması (population mean) olarak adlandırılır. Eğer veri seti bir örnek (sample) ise, oralama örneklem ortalaması (sample mean) olarak adlandırılır. Eğer bir dizi veriyi

X = (x1, x2, …, xn)

şeklinde ifade edecek olursak örneklem ortalaması x̄ olarak gösterilir. Bir Yunan alfabesi harfi olan μ ise komple popülasyonun ortalamasını gösterir.

Orta Değer (median)

İstatistikte, bir örneklemin ya da popülasyonun daha büyük değerlere sahip yarısını daha küçük değerlere sahip öbür yarısından ayırmak için kullanılan sayısal bir değerdir. Sınırlı bir numaralar serisinin orta değeri, serinin küçükten büyüye sıralandıktan sonra tam ortasındaki değerin alınmasıyla bulunabilir. Eğer bu seri çift sayıda değer içeriyorsa o zaman orta kısımda bir değer bulunmayacaktır. Bu durumda ortadaki iki değerin ortalaması orta değer olarak alınır. Örneğin yukarıdaki hisse fiyatlarını artan şekilde sıralayacak olursak:

67.05, 66.89, 67.45, 67.45, 68.39, 68.39, 70.10

orta değer 67.45 olacaktır.

Çekreklikler Q1 ve Q3 (Quartiles)

Çeyreklikleri bulmak için veri setini küçükten büyüğe sıralarız ve veri setinin orta değerini (buna global orta değer diyelim) bu sıra üzerinde yerleştiririz. Birinci çeyrek (first quartile – Q1), global orta değerin solunda kalan (yani ondan küçük olan) değerlerin orta değeridir. Üçüncü çeyrek ise, global orta değerin sağında kalan (yani ondan büyük olan) değerlerin orta değeridir.

Tepe Değer (mod)

İstatistikte tepe değer bir veri listesinde en çok gözlemlenen değerdir. Tepe değer tek bir değer olmak zorunda değilidir; aynı sıklığa sahip birden fazla değer olabilir. Gene hisse fiyatlarımızı artan şekilde sıralarsak,

67.05, 66.89, 67.45, 67.45, 68.39, 68.39, 70.10

en çok gözlemlenen iki tepe değer vardır: 67.45 ve 68.39. Bu yüzden bu veri setinin tepe değeri tek değil iki tanedir. Bu veri setine çift tepe değerli (bimodal) denir. Bir popülasyon ya da örneğin bir, iki, veya ikiden fazla tepe değeri olabilir.

İstatistiki Saçılım (Statistical Dispersion)

İstatistikte istatistiki saçılım (ayrıca istatistiki değişkenlik, veya çeşitlilik) olasılık dağılımındaki yada değişkenlikteki dağınıklık (yayılım) olarak adlandırılır. Özellikle, bir saçılımlık ölçümü veri setindeki değerlerin ne kadar dağınık olduğunu ölçümlemede kullanılır. Yaygın olarak kullanılan istatistiki saçılım ölçümü şunlardır:

  • Varyans (variance)
  • Standart Sapma (standard deviation)

Saçılımlık merkezi yatkınlıkla birlikte dağılımın en çok kullanılan özellikleridir.

Varyans (variance)

İstatistikte varyans, rassal bir değişkenin veya dağılımın her bir değerinin ortalama değerden farkının karesinin ortalaması olarak ifade edilir. Bu yüzden varyans verinin ortalama değerden ne kadar saptığının bir ölçüsüdür.

Eğer rassal bir değişken olan X’in beklenen değeri (expected value = mean) E[X]=μ ise, X’in varyansı:

4

formulü ile ifade edilir.

Varyansın özellikleri

  • Varyans her zaman pozitif bir değerdir; çünkü farkların kareleri ya sıfırdır ya da sıfırdan büyüktür.
  • Sabit bir değerin varyansı sıfırdır, ve bir veri setindeki bir değişkenin varyansı eğer bütün elemanlar aynı değere sahip ise sıfırdır.
    Var(a) = 0
  • Bir veri setindeki her bir veri sabit bir sayı (a) kadar artırılır veya azaltılırsa veri setinin varyansı değişmez.
    Var(X + a) = Var(X)
  • Bir veri setindeki her bir veri sabit bir kat sayıyla çarpılırsa veri setinin varyansı eski varyansının, kat sayının karesiyle çarpımına eşittir.
    5

Örneklem Varyansı (Sample Variabnce)

Eğer bir X rassal değişkeninin n tane değerine sahipsek, örneklem varyansı popülasyon varyansını ölçümlemek için kullanılabilir.

X = (x1, x2, x3, …, xn)

Örneklem varyansı şu şekilde hesaplanır:

6

Formüldeki paydada olan (n-1) değeri varyans hesaplamasında “serbestlik derecesi” (degree of freedom) olarak adlandırılır.

Yukarıdaki örnek verimizin örneklem varyansı (sample variance) şu şekilde hesaplanır:

7

Standart Sapma (Standard Deviation)

İstatistikte, rassal bir değişkenin veya dağılımın standart sapması o değişkenin varyansının kareköküne eşittir.

8

Yani, standart sapma σ (sigma) (X − μ)2 değerlerinin ortalamasının kareköküdür.

 Gene örneğimize dönecek olursak standart sapmamız:

9

 olarak hesaplanır.

Ortalama Mutlak Sapma (Mean Absolute Deviation)

Bir X değişkeninin değerlerinin ortalama değerden ortalama olarak ne kadar saptıkları şu şekilde ölçülür:

10

Bu değer her zaman sıfırdır. Pozitif ve negatif sapmalar birbirlerini götürürler ve toplam her zaman sıfır olur. Bu yüzden saçılımı (dispersion) ölçmeye bir yararı yoktur.

Ortalama Mutlak Sapma ise şu şekilde hesaplanır:

11

Farkların mutlak değeri her zaman pozitif olacağından bu değer her zaman sıfır olmak zorunda değildir.

Mutlak değer almaya alternatif olarak farkların karesi de alınabilir ve bu yöntemle elde edilen sapmaya “kareli ortalama sapması” (mean squared deviation – MSD) denir:

12

Farkların karesini aldığımız için tekrar aynı ölçü birimine dönmek için bir de karekökünü aldığımızda bu sapmaya da “kareli ortalamaların kökü sapması” (root mean squared deviation – RMSD) denir:

13

İstatistiksel nedenlerden ötürü, RMSD yerine onun çok hafifçe değiştirilmiş versiyonu olan standart sapma (Sx) ölçümlerde çok daha fazla kullanılır.

14

15

Birliktelik (association)

İki değişkenli istatistik (bivariate statistics) iki değişkenin, birinin diğerine sebep olduğunu ima etmeksizin, birbirleriyle nasıl ilişkili olduklarını incelemek için kullanılabilir.

Çok değişkenli istatistik (multivariate statistics) ikiden fazla değişkenin, birinin diğerlerine sebep olduğunu ima etmeksiniz, birbirleriyle nasıl bir ilişki içerisinde olduğunu incelemek için kullanılabilir.

İki değişkenli ve çok değişkenli istatistiklerin ölçülmesinde iki yaygın ölçümleme vardır:

  • Kovaryans (covariance)
  • Korelasyon Katsayısı (correlation coefficient)

İki değişkenli istatistik 

Aşağıdaki şekilde (a) güçlü ve pozitif korelasyon, (b) sıfır korelasyon, (c) a’ya göre daha az güçlü pozitif korelasyon, (d) güçlü ve negatif korelasyon, ve (e) d’ye göre daha az güçlü negative korelasyona örnektir.

16

İki rassal değişken olan X ve Y için;  17   ve 18 olmak üzere kovaryans:

19

olarak hesaplanır.

Cov (X, Y) negatif, sıfır veya pozitif olabilir. Sıfır kovaryana sahip iki değişken ilişkisiz (uncorrelated) veya bağımsız (independent) olarak ifade edilir.

Eğer X ve Y birbirinden bağımsızsa o zaman kovaryansları daima sıfırdır; ancak her kovaryansı sıfır olan değişkenler birinden daima bağımsız olmak zorunda değildirler.

Eğer X ve Y gerçek değerli rassal değişkenler ise ve a ve b sayısaları sabit (rassal olmayan) birer sayıysa o zaman aşağıdaki formüller kovaryans formülünden türetilebilir:

20

Gene aynı şekilde eğer X ve Y gerçek değerli rassal değişkenler ise ve a ve b sayısaları sabit (rassal olmayan) birer sayıysa o zaman aşağıdaki formüller varyans ve kovaryans formüllerinden türetilebilir:

21

İlişkisiz rassal değişkenlerin toplamlarının varyansı, ayrı ayrı varyanslarının toplamına eşittir:

22

Çünkü, eğer X ve Y ilişkisizse kovaryansları 0’dır.

Örneklem Kovaryansı

Kovaryans iki değişken olan X ve Y’nin değerlerinin birbirleriyle ne kadar yakın bir ilişkide değiştiklerinin bir ölçüsüdür. Popülasyon kovaryansı örneklem kovaryansı ile tahmin edilebilir. Örneklem kovaryansı şu şekilde hesaplanır:

23

Korelasyon Katsayısı (correlation coefficient)

Kovaryansın dezavantajı büyüklüğünün (magnitude) kolayca yorumlanamamasıdır; çünkü kovaryans X ve Y değişkenlerinin ölçü birimlerine bağlıdır. Ortalama değerden sapmaları standardize ederek bu dezavantajı gideren ve bu yüzden daha sık kullanılan ölçüm korelasyon katsayısı olarak adlandırılır.

24

Korelasyon katsayısı simetriktir, yani:

25

Örneklem korelasyon katsayısı şu şekilde hesaplanır:

26

Korelasyon katsasının değeri -1 ile +1 arasında (-1 ve +1 de dahil) bir değerdir.

  • rx,y= 0 ise X ve Y ilişkisizdir (uncorrelated)
  • rx,y= 1 ise X ve Y doğru yönde tamamen ilişkilidir. Biri artarken diğeri de kesinlikle artar veya biri azalırken diğeri de kesinlikle azalır.
  • rx,y= -1 ise X ve Y ters yönde tamamen ilişkilidir. Biri artarken diğeri kesinlikle azalır.

 

Parametre ve İstatistik

Bir parametre (parameter) popülasyonu betimleyen bir sayıdır. Bir parametre sabit bir sayıdır, ama pratikte bu değeri bilmeyiz.

İstatistik (statistic) ise bir örneklemi betimleyen bir sayıdır. Bir istatistiğin değeri örneklemden elde edilir; fakat aynı popülasyonun farklı örneklemleri için farklı değerler elde edilebilir.

İstatistiği (statistic) sıklıkla bilinmeyen bir parametreyi hesaplamak için kullanırız.

Örnek

Ülke çapında rastgele seçilen 2500 yetişkine aşağıdaki ifadeye katılıp katılmadığı soruluyor:

“Yeni kıyafetler almayı seviyorum, fakat alışveriş yapmak çoğunlukla moral bozucu ve çok zaman alıcı”

Diyelim ki bu yetişkinlerden 1650’si bu ifadeye katılıyor.

Örneklemin bu ifadeye katılan insanlarının oranı (proporsiyonu):

27

28= .66 bir istatistiktir (statistic). Buna eş gelen parametre (P) ise bütün ülke nüfusundaki bu ifadeye katılan insanların proporsiyonudur. P parametresinin değerini bilmiyoruz, bu yüzden 28  istatistiğinden bu parametreyi hesaplamaya çalışıyoruz.

Bu araştırmayı yapan şirketin tekrarlan 2500 insandan oluşan rastgele bir örnekleme yaptığını düşünelim. Bu yeni örneklem farklı insanlardan oluşmuş olacak. Neredeyse kesin bir olasılıkla bu örneklemdeki ifadeye katılan insanların sayısı 1650 olmayacak. Yani 28 ’nin değeri örneklemden örnekleme değişecek.

Rastgele seçimin ilk avantajı yanlılığı(bias) elimine etmesidir. İkinci avantajı ise eğer aynı popülasyondan aynı boyutta birçok örneklem oluşturursak, örneklemler arasındaki varyasyon tahmin edilebilir bir örüntü oluşturacaktır. Bütün istatisksel çıkarımlar tek bir fikir üzerinde toplanır: bir prosedürün ne kadar güvenilir olduğunu görmek için, onu çok kere tekrarlarsak ne olacağını sormak.

Örneklem Dağılımı

Diyelim ki ülke çapındaki tüm yetişkinlerin %60’ı yukarıdaki alışverişle ilgili olan ifadeye katılıyor. Yani P = 0.6 (parametre).

Bu popülasyondan, 100 kişiden oluşan basit rastgele örnekleme (simple random sampling) yaptığımızı düşünelim. Ve bu örneklemdeki ifadeye katılan insanların oranını (28, istatistik) popülasyonun bu parametresini hesaplamada kullanalım.

28’nin dağılımı ne olur?

Bu soruyu cevaplandırmak için, bu popülasyondan her seferinde farklı 100 kişi seçerek bir sürü örneklem oluşturmamız gerekir.

Her bir örneklem için örneklem istatistiği 28 ’yi hesaplamamız ve bu değerlerden oluşan bir histogram yapmamız gerekir.

Oluşan dağılımın şeklini, merkezini, yayılımını, aykırı gözlemlerini ve diğer sapmalarını gözlemleyelim.

Çok sayıda basit rastgele örneklemin sonuçları düzenli bir örüntüye sahiptir.

Mesela aynı popülasyondan 100 kişiden oluşan 1000 örnekleme yaptığımızı düşünelim. Bu örneklemlerinin oranlarının dağılımı aşağıdaki gibi olacaktır:

29

Bir istatistiğin örneklem dağılımı (sampling distribution) aynı popülasyondan aynı boyuttaki bütün olası örneklemlerden elde edilen istatistiklerin dağılımıdır.

Normal Dağılım (Normal Distribution)

Normal olarak adlandırılan eğriler simetriktir, tepe noktalıdır ve çan şeklindedir. Normal eğriler normal dağılımları açıklarlar.

30

Belirli bir normal dağılım için Kesin yoğunluk eğrisi (exact density curve) ortalaması ve standart sapması verilerek açıklanabilir. Ortalama değer (mean) simetrik bir eğrinin tam ortasındaki değerdir ve bu değer aynı zamanda orta değerdir (median). Standart sapma ise normal eğrinin ne kadar yayıldığını gösterir.

31

Standart Normal Dağılım (standard normal distribution) ortalaması 0 olan ve standart sapması 1 olan bir normal dağılım çeşididir.

Eğer bir değişken olan X in ortalaması m ve standart sapması s is ve normal dağılıma sahipse, standardize edilmiş olan

32

değişkeni standart normal dağılıma sahiptir.

Standart Normal Tablo ise z değerine karşılık gelen eğri altındaki alanı verir.

3

Bir örnekle açıklayalım.

Stok endeklerinin yıllık getiri oranı (annual rate of return) yaklaşık olarak normal bir dağılıma sahiptir. 1954’ten beri Standard & Poor’s 500 stok endeksi yıllık ortalama %15 getiri oranına sahip ve standart sapması da %16.5. Bu normal dağılımı uzun bir zaman boyunca yıllık getiri oranlarının dağılımı olarak alalım. Eğer endekslerin getiri oranı sıfırın altında ise market düşüşte demektir. Buna göre marketin düşüşte olduğu yılların oranını bulabilir miyiz?

Problemi şu şekilde ifade edebiliriz:

Yıllık getiri oranını x olarak ifade edelim. X değişkeni ortalaması 12 ve standart sapması 16.5 olan normal bir dağılıma sahip olacaktır. Bizden istenen x değişkeninin 0’dan düşük olduğu yılların tüm yıllara oranı: x < 0

Normalleştirme:

X değişkenini standart normal z skoruna dönüştürmek için normalleştirmeyi bulmak istediğimiz değerden (0’dan) ortalama değeri (12) çıkartıp sonucu standart sapmaya bölerek (16.5) yaparız:

n

Aşağıdaki şekilde bu değerler için normal dağılımı ve bu z skoru için istenilen alanı görebilirsiniz:

b

Z Tablosundan -0.73 değerine bakacak olursak değerin 0.2327 olduğunu görürüz. Yani bu demek oluyor ki bu z değerinin solunda kalan (yani bu değerden küçük olan) değerlerin toplam dağılım içindeki oranı 0.2327. Yani marketin düşüşte olduğu zamanların oranı %23.27’dir.

Peki yıllık getiri oranlarının %12 ile %50 arasında olduğu yılların oranı nedir?

c

Dağılımın şeklini çizelim:

e

Z’nin 0 ile 2.3 değerleri için grafiğin altında kalan alan (mavi bölge), z’nin 2.3’ten küçük olduğu alanlardan z’nin 0’dan küçük olduğu alanin çıkartırlmasıyla bulunabilir.

0.9893 – 0.50 = 0.4893

Şimdiye kadar, örneklem tahminlerini (estimator) popülasyon tahminlerini (estimator) belirlemek için kullandık:

f

Bu tahminleyiciler bazı özelliklere sahip.

İkisi de eğilimsiz (ön yargısız, unbiased) tahminleyicidir. Eğilimsiz bir tahminleyicinin ortalama değeri tahminlemeye çalıştığı parametreye eşittir.

Diyelim ki bir parametreyi hesaplamaya çalışıyoruz ve bunun için bir güven aralığı (confidence interval) oluşturmaya çalışıyoruz. Bu parametreyi örneklem verisinden tahminleyebileceğimizi varsayalım. Bu bilgiyi kullanarak bir güvenlik aralığı oluşturabiliriz.

Bir örnekle açıklayalım.

Amerikan ekonomisinde “community bank” olarak adlandırılan bankalar var. Bu bankalar 1 milyar dolardan az bir varlığa sahiptir. Bu bankalardan Amerika’da yaklaşık olarak 7500 adet bulunmakta. Birçok endüstri çalışmasında bu bankalar 1 milyar dolardan fazla varlığa sahip olan bankalardan ayrı olarak Kabul edilir. Bir milyar dolardan daha fazla varlığa sahip olan bankalar “large institutions” olarak adlandırılır. Amerikan Bankalar Birliği Konseyi yıllık bir “community bank” anketi yapmakta. En son çalışmada örneklem olarak kullanılan 110 bankanın ortalama varlığı  = 220 milyon dolar olarak hesaplanıyor. Amerika’daki bütün “community bank”ların ortalama varlığı, m, için ne söyleyebiliriz?

Örneklem ortalaması olan 555, popülasyon ortalaması olan 5555 (mü diye okunur)’yü tahminlemede kullanılabilir.

Büyük sayılar yasası diyor ki örneklemin boyutu arttıkça örneklem ortalaması popülasyonun ortalamasına yaklaşır.

Bu yüzden, örneklem boyutu olan 110 bütün “community bank”ların ortalamasını tahminlemek için mantıklı gözüküyor. Ama bu tahminleme ne kadar güvenilir?

Değişkenliğini belirtmeksizin yapılan bir tahminleme çok değerli olmayacaktır. Bir tahminlemenin değişkenliği örneklem dağılımlarına bakılarak cevaplanır.

Merkezi Limit Teorem’ine (Central Limit Theorem) göre:

Eğer ülkedeki bütün “community bank”ların varlık ortalaması 5555 ve standart sapması 10 ise, boyutu 110 olan çok sayıda örneklemenin ortalama değeri şu dağılıma sahip olacaktır:

g

Bu yüzden, merkezi limit teoremine göre, tekrarlanan 110 elemanlı örneklemlerin ortalama değerleri yaklaşık olarak normaldir, merkezi bilinmeyen popülasyon ortalaması olan m’dür, standart sapması da

 h

milyon dolardır.

Kaynaklar:

http://faculty.elgin.edu/dkernler/statistics/ch03/

https://onlinecourses.science.psu.edu/stat100/

Veri Madenciliği 1 – Veri Madenciliğine Giriş 101

Motivasyon: “Necessity is the Mother of Invention”

Otomatize edilmiş veri toplama araçları ve “olgunlaşmış” veri tabanları; veri tabanlarında, veri ambarlarında ve diğer bilgi depolama alanlarında depolanmış durumda olan çok büyük miktarda veriye sebep oldu. Özellikle dijital medyada kaydedilen ve saklanan verinin boyutu olağan üstü bir şekilde arttı ve git gide de artıyor. Yılda 2 exabite(10^18)’ın üzerinde veri üretiyoruz. Sabit bir fiyattan depolama kapasitesi her 9 ayda bir ikiye katlanıyor. Verinin içinde boğuluyoruz ama bilgi (knowledge) için can atıyoruz.

W.H. Auden’in dediği gibi:

“The greatest problem of today is how to teach people to ignore the irrelevant, how to refuse to know things, before they are suffocated. For too many facts are as bad as none at all.”

Çözüm ise veri ambarı (data warehousing) ve veri madenciliği (data mining).

 1                                                    2

Bazı Büyük Veri (Big Data) Örnekleri

Avrupa’da Very Long Baseline Interferomerty (VLBI) olarak adlandırılan ve radyo astronomide kullanılan bir gök bilimsel interferometre var. VLBI astronomik bir radyo(sinyal) kaynağından gelen sinyalleri, mesela quasar (galaksi dışındaki yıldızımsı gök cisimleri), dünyadaki birden çok radyo teleskop aracılığıyla topluyor ve kaydediyor. VLBI’de kullanılan toplam 16 teleskop var ve bu teleskopların her biri 1 Gigabit/saniye gibi son derece yüksek hızda ve boyutlarda veri üretiyor. Bu verinin depolanması ve analiz edilmesi ne kadar büyük bir problem değil mi?

AT&T her gün milyarlarca arama isteği işliyor. Bu o kadar çok veriye sebep oluyor ki bütün veriler depolanamıyor ve depolanamadığı için de analizler “akan veri”(streaming data) üzerinden yapılmak zorunda. (on the fly).

Alexa internet arşivinde 7 yıllık veri bulunuyor ve bu verinin boyutu 500 Terabyte civarlarında.

Google hergün 4 milyarın üzerinde arama isteğini alıyor ve bu da bir sürü 100 Terabyte demek oluyor.

Internat Archive (www.archive.org) neredeyse 300 terabytle’lık veriye sahip.

Dünyadaki veritabanlarında depolanan veri miktarı her 20 ayda bir iki katına çıkıyor. Diğer büyüme oranları ise bundan daha fazla. Bu verilerden çok küçük bir miktarı insanlar tarafından inceleniyor. Bu yüzden böylesine devasa verilerden anlamlar çıkarmak için Knowledge Discovery’ye ihtiyaç duyuluyor.

Jerome Friedman diyor ki:

“Verinin boyutu her 10 katına çıktığında onu analiz etme biçimimizi tamamen yeniden şekillendirmek zorundayız”

Veri Madenciliği

Veri madenciliği veri tabanı sorgularından (database query) farklıdır. Geleneksel analizde, “X ürününün satışları Kasım ayında arttı mı?”, “X ürününün satışları Y ürününde bir promosyondan dolayı düştü mü?” gibi analizler yaparken veri madenciliğinde ise “X ürününün satışını belirleyen faktörler nelerdir?” gibi daha karmaşık ve sonuç odaklı analizler yaparsınız.

3

  Aristotle Onansis: “The key in business is to know something that nobody else knows.”

 

 

        Sir Isaiah Berlin: “To understand is to perceive patterns.4

Örnek Bir Uygulama

Diyelim ki X kişisi Amazon.com’dan bir kitap aldı.

Görev: Bu kişiye almaya yatkın olabileceği başka kitaplar öner.

Amazon kitap satın alımları üzerinden bir kümeleme (clustering) işlemi yapıyor:

“Advance in Knowledge Discovery and Data Mining” kitabını alan müşteriler ayrıca “Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations” kitabını da aldı.

Öneri sistemleri son derece başarılıdır.

5

Veri Madenciliği Nedir?

Veri tabanında bilgi keşfi (Knowledge Discovery in Databases-KDD) verideki:

  • üstü kapalı (saklı)
  • geçerli (bulunan örüntüler yeni veriler üzerinde de geçerli olacak şekilde)
  • özgün (beklenen değerlere kıyasla)
  • potansiyel olarak kullanışlı (başarılı aksiyonlara neden olabilecek)
  • anlaşılabilir (insanlar açısından)

örüntülerin (pattern) bulunması ve tanımlanması olarak tanımlanabilecek, basit olmayan bir süreçtir.

Veri madenciliği, KDD’nin yalnızca bir adımıdır.

Veri madenciliği için bazı alternatif terimler kullanılabilir:

  • Knowledge discovery (mining) in databases (KDD),
  • Knowledge extraction
  • Data/patterns analysis
  • Data archeology
  • Data dredging
  • Information harvesting
  • Business intellingece, etc.

 

KDD Süreci

Veri Madenciliği ve Bilgi Keşfi (Knowledge Discovery – KD) süreci bazı adımlardan oluşur. Bu adımlar şu şekilde özetlenebilir:

  • Veri Temizliği (data cleaning): eksik değerlerin, gürültülü(noisy) verinin ve tutarsız(çelişkili) verinin temizlenmesi sürecidir.
  • Veri Entegrasyonu (Data integration): Birden fazla veri kaynağından alınan verilerin birleştirilmesi sürecidir.
  • Veri Seçimi (data selection): Yapılacak olan analize uygun(alakalı) verilerin seçilmesi sürecidir.
  • Veri Dönüşümü (data transformation): Veriyi toplama (örneğin günlük satışları haftalık ya da aylık satışlara dönüştürme), veya genelleştirme (sokağı şehire; yaşı genç, orta, ve yaşlıya dönüştürme) gibi işlemler sürecidir.
  • Veri Madenciliği (data mining): Elde edilen veriye akıllı algoritmalar uygulayarak örüntüleri (patterns) keşfetme sürecidir.
  • Örüntü Değerlendirme (pattern evaluation): Elde edilen örüntülerin değerlendirilmesi ve hipotezlerin geçerliliğinin test edilmesi sürecidir.
  • Bilgi Sunumu (knowledge presentation): Bulunan bilgileri (knowledge) görselleştirme (visualisation) ve sunum (representation) tekniklerini kullanarak kullanıcılara sunma sürecidir.

6

Bir KDD sürecinin %60-80 gibi bir dilimi yalnızca veriyi hazırlamak için harcanırken geriye kalan %20’lik kısmı veri madenciliği için kullanılır.

Bir veri madenciliği projesi daima verinin geleneksel sorgulama araçları (traditional query tools) ile analizinden başlamalıdır. İlginç bilgilerin %80’i SQL kullanılarak çıkartılabilir. Örneğin “Her ay kaç tane işlem 15 numaralı ürünü içeriyor?” ve “Mertricks tarafından alınan bütün ürünleri bana göster” gibi. Geriye kalan %20’lik kısmının keşfi ise ileri tekniklerin kullanımını gerektirir. Örneğin “hangi ürünler sık olarak birlikte alınıyor?” ve “müşterilerimi nasıl sınıflandırmalıyım ki gelecekte kredi başvurusu yaparlarsa kime kredi verip kime vermemem gerektiğini bileyim” gibi.

İstatistik, Otomatik Öğrenme (Machine Learning) ve Veri Madenciliği

İstatistik daha çok teori odaklıdır ve hipotezlerin test edilmesine (hypotheses testing) odaklanır.

Otomatik Öğrenme, daha deneyimseldir (heuristic) ve öğrenme ajanının performansını iyileştirmeye odaklanır. Aynı zamanda robotik (robotics) ve gerçek zamanlı öğrenme (real-time learning) gibi alanları da kapsar ama bu alanlar veri madenciliği dışındaki alanlarıdır.

Veri madenciliği ve bilgi keşfi, teoriyi(istatistik) ve deneyimi(otomatik öğrenme) birleştirir ve bilgi keşfinin bütün süreçleri olan veri temizliği, öğrenme, entegrasyon ve görselleştirme alanlarını içerir.

Bu kavramların arasındaki sınırlar son derece belirsizdir.

Veri madenciliği bazen “ikincil veri analizi” olarak adlandırılır. Veri madenciliğinde kullanılan algoritmaların çoğu istatistikçiler ve veri madencileri tarafından ortaklaşa kullanılır. Veri madenciliği örüntü tespitini (pattern detection) hedeflerken istatistik bulunan örüntülerin gerçekliğini belirlemeyi hedefler. Örneğin, aynı hastalıktan muzdarip olan insanlar kümesinin bulunması, fakat bu hastalığın tamamen rastgele olup olmadığının tespiti.

Rhine Paradoksu

Rhine Paradoksu bir bilimsel araştırmanın nasıl yapılmaması gerektiğinin harika bir örneği.

David Rhine bir parapsikologdu. 1950 yılında bir hipotez geliştirdi ve hipotezi de şuydu: Bazı insanlar 6. Hisse (Extra-Sensory Percetion-ESP) sahiptir.

Bunu test etmek için bir deney tasarladı ve deneklere 10 adet kartın arka yüzlerinde kırmızı mı yoksa mavi renk mi olduğunu tahmin etmelerini istedi. Deneyinin sonucunda gördü ki neredeyse her 1000 kişiden 1’i 6. hisse sahipti, çünkü 10 kartın 10’unun da rengini doğru bilmişti!

Daha sonra bu testi geçen insanlara 6. Hislerinin olduğunu söyledi ve onları tekrar test etmek için farklı bir deneye davet etti. Fakat bu sefer fark etti ki bu deneyde deneklerin neredeyse hepsi 6. Hislerini kaybetmişti. Ve testi nasıl mı sonuçlandırdı?

“İnsanlara 6. Hisleri olduğunu söylememelisiniz; çünkü bu 6. Hislerini kaybetmelerine neden oluyor.”

Peki gerçekte ne oldu?

Kırmızı veya mavi renklerden oluşan 10 kartın tam olaram 1024(2^10) kombinasyonu vardır. Bu yüzden her 1000 kişiden 1’inin 10 kartın rengini doğru tahmin etme olasılığı 1000/1024 = 0.98 yani %98’dir! Sanırım daha fazla açıklamaya gerek yok 🙂

Veri Madenciliği Uygulamaları

Pazar analizi ve yönetimi

  • Hedef kitle seçimi, müşteri ilişkileri yönetimi, pazar basket analizi, çapraz satış, pazar segmentasyonu, vb.
  • Aynı karakteristiklere sahip olan (örneğin ilgi alanı, gelir seviyesi, harcama alışkanlıkları, vs.) müşterileri bulma ve kümeleme
  • Zaman boyunca müşterilerin satın alma örüntülerini (purchasing pattern) belirleme

Risk analizi ve yönetimi

  • Tahminleme (forecasting), müşteri tutumu (customer retention), kalite kontrolü, rekabet analizi, kredi puanlama

Sahtekarlık tespiti ve yönetimi

Geçmişte gerçekleştirilen sahtekarlık işlemlerini kullanarak model geliştirme ve belirli davranışlarda bulunan müşterileri önceden tahminleme.

  • Araba sigortası: sigorta parası almak için “sahte olarak” kaza yapan insanların tespiti
  • Kara para aklama: şüpheli para transferlerini tespit etme
  • Telefon araması modeli: aramanın hedefi, süresi, günü, saati, vs. Beklenen normlardan sapan örüntülerin analizi.

British Telecom’un başına bununla ilgili bir olay gelmiş. Olayda, belirli kişilerden oluşan bir takım grup sürekli mobil telefonlarından grup içindeki kişileri arayarak birkaç milyon dolarlık bir kaçakçılık gerçekleştirmişler. Mesela, hapisanedeki mahkumlardan biri dışarıdaki bir arkadaşına terk edilmiş bir ev için telefon hattı kurdurtuyor. Aramalar mahkumun 3 eyalet ötedeki kız arkadaşına yönlendiriliyor. Bu sayede telefon şirketi bunu 90 gün sonra fark edinceye kadar bedava telefon görüşmesi yapıyorlar.

Veri Madenciliğinin Görevleri

Burada veri madenciliğinin görevlerinden kısaca bahsedeceğim. Çok ayrıntıya inmiyorum çünkü gelecek yazılarda hepsini ayrıntılı olarak ele alacağım.

Birliktelik (association)

Karşılıklı ilişki (correlation) ve nedensellik (causality)

Çok boyutlu veya tek boyutlu birlikteliklerin tespit edilmesi. Örneğin;

yaş(X,”20..29″) ^ gelir(X,”20..29K”) –> satın_alır(X, “PC”)
[support = %2, confidence = %60]*

veya

satın_alır(T, “bilgisayar”) –> satın_alır(x, “software”)
[support = %1, confidence = %75]*

*support ve confidence kavramları daha sonraki yazılarda açıklanacaktır.

Sınıflandırma (classification) ve Tahminleme (prediction)

Sınıfları veya konseptleri tanımlayan ve ayrıştıran modellerin(fonksiyonları) bulunması. Örneğin, iklime göre ülkeleri sınıflandırma, kilometre başına yakıt tüketimine göre arabaları sınıflandırma, vb.

Sunum: karar ağacı (decision tree), sınıflandırma kuralı, yapay sinir ağları (neural network)

Tahminleme: bazı bilinmeyen veya eksik olan sayısal verilerin tahminlenmesi.

Aşağıdaki tablo bir “öğretici küme” (training set) örneğini temsil ediyor. Bu veri üzerinde karar ağacı sınıflandırma algoritmasını uyguladığımızı düşünelim.

8

Elde edeceğimiz sonuç aşağıdaki gibi bir sonuç olacak. Yani aşağıdaki sonuçlar diyor ki yaş faktörü bilgisayar alınmasındaki en önemli faktör. Yaşı 31..40 arasında olanların hepsi bilgisayar alıyor. Yaşı 30’dan küçük olan insanlar için ikinci bir ayrım yapılıyor ve öğrenci olup olmadığı sorgulanıyor. Eğer öğrenciyse bilgisayar alıyor; öğrenci değilse bilgisayar almıyor. Yaşı 40’tan büyük olan insanlar ise kredi derecelendirmelerine göre ayrıma uğratılıyor. Kredi derecesi mükemmel olanlar bilgisayar almazken normal düzeyde olanlar bilgisayar alıyor.

7

Küme Analizi (Cluster analysis)

Sınıflandırma’nın aksine küme analizinde kümelerin etiketleri (label) bilinmiyor. Küme analizi genellikle sınıfların belirlenmesi ve tanımlanması için kullanılıyor. Kümeleme (clustering) işlemi şu prensip ile çalışıyor: bir sınıf (class) içindeki benzerlikleri maksimize et ve sınıflar arasındaki benzerliği minimize et.9

 

Aykırı Gözlem (Outlier) Tespiti   

Verinin genel davranışına uymayan örneklere aykırı gözlem (outlier) adı veriliyor. Bunlar gürültü (noise) veya istisna (exception) olarak düşünülebilir; fakat sahtekarlık gibi nadir olayların (aykırılıkların) analizinde oldukça kullanışlıdırlar.

10628591_10152636063464277_8277957579391294586_n

Trend ve değişim (evrim, evolution) Analizi

Trend ve sapma analizleri: regresyon analizi (regression analysis)

Sıraları örüntü madenciliği (sequential pattern mining), dönemsellik analizi

Benzerlik tabanlı analiz

Görselleştirmenin Gücü

Tüm işlemler sonucu elde ettiğimiz sonuçları görselleştirmemiz gerekmektedir. Aşağıda görselleştirmenin birkaç güzel örneğini görebilirsiniz.

11

12

13

10

Kaynaklar:

*Data Mining: Concepts and Techniques. Jiawei Han and Micheline Kamber. Morgan Kaufmann Publishers
*Data Mining: Practical Machine learning tools with JAVA implementations. Ian H. Witten and Eibe Frank. Morgan Kaufmann Publishers

Şimdilik Hoşça Kal Growth Hacking! Merhaba Veri Madenciliği!

Growth Hacking Konusunu Şimdilik Sonlandırıyoruz

Growth Hacking konusu hakkında birçok yazı paylaşmıştım sizinle. Artık Growth Hacking konusunu sonlandırıyoruz. Ama şimdilik. Bu konuyla ilgili son 7gelişmeler, trendler ve uygulamalarla ilgili yazıları paylaşmaya devam edeceğim. Yani yazılarda anlatılmak isteneni kavradıysanız Growth Hacking’in bir sonunun olmadığını ve her zaman yeni şeylerin keşfedildiğini anlamışsınızdır. Dolayısıyla bu konu ile ilgili paylaşımların sonunun gelmesi hiçbir şekilde mümkün değil.

Ancak ana odağı artık başka bir konuya kaydırıyorum: Veri Madenciliği. Son zamanlarda çok popülerleşmeye başlayan bir kavram aslında. “Bu da nedir?” diye merak mı ediyorsunuz? O zaman sizi aşağıya doğru alalım.

Giriş

5Bilgi Endüstrisinde (Information Industry) çok büyük miktarlarda veri bulunuyor.  Anlamlı ve kullanışlı bir bilgiye (information) dönüştürülmediği müddetçe bu verinin hiçbir anlamı yok. Böylesine büyük bir veriyi analiz etmek ve anlamlı bilgiler çıkarmak artık bir zorunluluk haline geldi.

Bilgi çıkarma işlemi yapmamız gereken tek işlem değil, bu süreç aynı zamanda Veri Temizleme (Data Cleaning), Veri Entegrasyonu (Data Integration), Veri Dönüştürme (Data Transformation), Veri Madenciliği (Data Mining), Örüntü Değerlendirme (Pattern Evaluation) ve Veri Sunumu (Data Presentation) gibi işlemleri de içermekte. Bu işlemlerin hepsi yapıldıktan sonra, elde ettiğimiz bilgileri artık Sahtekarlık Tespiti (Fraud Detection), Pazar Analizi (Market Analysis), Üretim Kontrolü (Production Control) vb. birçok alanda kullanabiliriz.

Veri Madenciliği Nedir ?

Veri madenciliği basitçe tanımlayacak olursak büyük veri setlerinden anlamlı ve kullanışlı bilgiler çıkarma(elde etme) sürecidir. Yani aslında kelim3e anlamı gibi, veriyi çok büyük bir maden olarak düşünürsek bu madeni kazıyarak içindeki değerli maddeleri bulmaya çalışıyoruz. Bulduğumuz bilgileri şu alanlarda kullanabiliriz:

  • Pazar Analizi
  • Pazarlama stratejilerinin verimliliği
  • Belirli bir pazarlama stratejisi için büyük bir müşteri veri tabanından hangi müşterilerin hedef olarak seçileceğinin belirlenmesi
  • Müşteri yaşam döngüsünü yönetme ve müşteriyi elde tutma
  • Sahtekarlık Tespiti
  • Üretim Kontrolü

“Söyle bana, neler olabilir” Rolü

Veri madenciliğinin ilk rolü veriye “söyle bana, neler olabilir” dediğiniz tahminleme rolüdür. Veri ambarınızda (data warehouse) 6kilitli bir şekilde duran gizli bilgileri açığa çıkarıyoruz.

“Bana ilginç bir şey söyle” Rolü

Tahminlemeye ek olarak, veri madenciliği daha önceden bilmediğiniz ilginç bilgileri elde etmek için de kullanılır. Örneğin, iki ürünün satışı arasında olağan dışı bir ilişkinin olması ve bu ilişkinin bu iki ürünü yerleştirme biçiminize göre nasıl değiştiğini fark etmek.

Neden Veri Madenciliğine İhtiyaç Duyuluyor ?

Bilgi Teknolojilerindeki gelişmelerden kaynaklanan bir veri bolluğuna sahibiz. Büyük Veri veya daha sevdiğim bir tabiriyle İri Veri (Big Data) kavramının2 ortaya çıktığı yer de burası aslında. Artık veri çok yüksek hızlarda, çok yüksek hacimlerde ve çok çeşitli şekillerde (resim, müzik, yazı, vs.) geldiğinden bu verilerden anlamlı bir bilgi çıkartmak gerekiyor.

Bu çıkartılan bilgiler karar almada büyük bir rol oynamakta ve rekabet avantajı sağlamakta.

Pazar Analizi ve Yönetim

  • Müşteri Profilleme: Kimler hangi tür ürünleri alıyor.1
  • Müşteri Gereksinimlerini Tespit Etme: Müşteriye göre ürün belirleme. Hangi faktörler müşterileri çekiyor?
  • Çapraz Pazar Analizi: Farklı ürün satışları arasındaki Birliktelik (Association) ve İlişki (Correlation)
  • Hedef Pazarlama: Müşterileri ortak karakteristiklere göre kümeleme.
  • Müşteri Satın Alma Örüntüsünü Belirleme: Müşterilerin satın alma biçimlerini belirleme.

Kurumsal Analiz ve Risk Yönetimi

  • Finansal Planlama ve Varlık Değerlendirmesi: Nakit akışı analizi ve tahminleme.
  • Kaynak Planlama: Özetleme, kaynakları karşılaştırma ve harcamaları asgari düzeye indirme.
  • Rekabet: Rakipleri gözetleme ve pazar trendlerini belirleme

Sahtekarlık Tespiti

Kredi kart servisleri ve telekomünikasyon sektöründe sahtekarlıkları tespit etmek.

Neler Göreceğiz ?

Veri madenciliği alanı istatistik, yapay zeka, veri tabanı ve veri ambarı konularıyla bağlantılı olduğu için bu alanlarla ilgili konuları ele alacağız ve inceleyeceğiz. Dalışa hazır mısınız?