Useful shortcuts for vi editor

Saturday 30 April 2011

2011 Nisan ayı blog raporum

Bu ayda blog yazıları yazmada yavaşlasam da iyi bir performans çıkardığımı düşünüyorum. Mayıs ayında aynı hızda yazacağımı umuyorum. İstikrarlı bir şekilde yazı yazmak gerçekten kolay değilmiş.

Nisan ayı istatistikleri:

Toplam blog yazısı: 35 (bu yazı dahil)
Toplam görünüm: 132
En fazla rağbet gören yazı: Veri madenciliği nedir?

Gelecek aydaki raporda tekrar görüşmek dileğiyle. J

Karar Ağaçları

Veri madenciliği, eğiticili öğrenme konularının içerisinde, sınıflandırma uygulamalarında kendine yer bulan Karar Ağaçları konusunu açıklamaya çalışacağım. Daha sonra bir örnek üzerinden konuyu pekiştirmeye çalışacağım.

Karar Ağaçları; Karar ağaçları eğiticili öğrenme için çok yaygın bir yöntemdir. 2 temel avantajı vardır; Görsel olarak seçenekleri, sonuçları, olasılıkları ve fırsatları gösterir, ikincisi, karmaşık senaryoya sahip durumları kolay anlaşılır bir şekilde şekillendirir.

Karar ağaçları bulunurken ID3, C4.5 gibi algoritmalardan yararlanılır.

Algoritmanın adımları;
  • T öğrenme kümesini oluştur.
  • T kümesindeki örnekleri en iyi ayıran niteliği belirle. 
  •  Seçilen nitelik ile ağacın bir düğümünü oluştur ve bu düğümden çocuk düğümleri veya ağacın yapraklarını oluştur. Çocuk düğümlere ait alt veri kümesinin örneklerini belirle. 
  • 3. adımda yaratılan her alt veri kümesi için
    • Örneklerin hepsi aynı sınıfa aitse 
    •  Örnekleri bölecek nitelik kalmamışsa 
    • Kalan niteliklerin değerini taşıyan örnek yoksa işlemi sonlandır. Diğer durumda alt veri kümesini ayırmak için 2. adımdan devam et.

Şimdi örneğimize geçebiliriz. Çeşitli kriterlere sahip ailelerinin hafta sonu yaptıkları etkinlikleri karar ağaçları ile sınıflandırmaya çalışacağız.


Tabloda 10 haftalık bir veri setimiz mevcut. Yavaş yavaş karar ağacımızı oluşturalım.
1.adım: Veri setimizin bir öğrenme kümesi olduğunu varsayalım.
2.adım: Veri setindeki en ayırt edici nitelik belirlenir ve ağacın kökü olarak alınır.
ID3, C4.5 gibi algoritmalar en ayırt edici niteliği belirlerken her nitelik için bilgi kazancı (information gain) ölçer. Bu bilgi kazancını ölçerken Entropi kullanılır.
Hafta sonu veri kümesindeki (T kümesi) 10 örnekten 
  • 6 örnek için karar sinema 
  • 2 örnek için karar tenis oynamak 
  • 1 örnek için karar evde kalmak ve 
  • 1 örnek için karar alışverişe gitmek olduğuna göre;
Entropy:
H(T)= - (6/10) log2(6/10) - (2/10) log2(2/10) - (1/10) log2(1/10) - (1/10) log2(1/10)

H(T)= 1,571

X niteliğinin T veri kümesindeki bilgi kazancı:
Gain(T,X)=Entropy(T)-Σ P(x) Entropy(T(x))
x: Values of X, P(x)=|T(x) | / | T |

Gain(T, hava)= ?
Güneşli=3   (1 Sinema, 2 Tenis)
Rüzgârlı=4   (3 Sinema, 1 Alışveriş)
Yağmurlu=3    (2 Sinema, 1 Evde)

Entropy(Tgüneşli)= - (1/3) log2 (1/3) - (2/3) log2 (2/3)=0,918
Entropy(Trüzgârlı)= - (3/4) log2 (3/4) - (1/4) log2 (1/4) =0,811
Entropy(Tyağmurlu)= - (2/3) log2 (2/3) - (1/3) log2 (1/3) =0,918

Gain(T, hava) = Entropy(T)- ((P(güneşli)Entropy(Tgüneşli) + P(rüzgârlı) Entropy(Trüzgârlı)+ 
 P(yağmurlu) Entropy(Tyağmurlu) )
             =1,571- ((3/10)Entropy(Tgüneşli)+(4/10)Entropy(Trüzgârlı)+ (3/10)Entropy(Tyağmurlu))

Gain(T, hava) =0,70

Gain(T, aileli)= ?
Evet=5   (5 Sinema)
Hayır =5    (2 Tenis, 1 Sinema, 1 Alışveriş, 1 Evde kalmış)

Entropy(Tevet)= - (5/5) log2 (5/5)  = 0
Entropy(Thayır)= - (2/5) log2 (2/5) - 3(1/5) log2 (1/5) =1,922

Gain(T, aileli) = Entropy(T)- ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =1,571- ((5/10)Entropy(Tevet)+(5/10)Entropy(Thayır))

Gain(T, aileli)=0,61
 


Gain(T, para)= ?
Zengin=7   (3 Sinema, 2 Tenis, 1 Alışveriş, 1 Evde kalmış)
Fakir=3    (3 Sinema)

Entropy(Tzengin)= -(3/7)log2 (3/7) - (2/7) log2 (2/7) – 2(1/7)log2 (1/7)=1,842
Entropy(Tfakir)= -(3/3) log2 (3/3) = 0

Gain(T, para) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =1,571- ((7/10)Entropy(Tzengin)+(3/10)Entropy(Tfakir))
Gain(T, para)=0,2816 


Gain(T, hava) = 0,70,
Gain(T, aileli) = 0,61,
Gain(T, para) = 0,2816 olduğuna göre;
bilgi kazancı en büyük olan hava niteliği kök nitelik olmuştur.

  

3. Adım: Ağacın çocuk düğümü olan A düğümüne ait alt veri kümesi belirlenir.



Hafta sonu veri kümesindeki (TA kümesi) 3 örnekte
  • 1 örnek için karar sinema ve
  • 2 örnek için karar tenis olduğuna göre;
Entropy (Güneşli): 

H(TA)= - (1/3) log2(1/3) - (2/3) log2(2/3)
H(TA)= 0,918



Gain(TA, aileli)= ?

Evet = 1 (1 Sinema)
Hayır  = 2 (2 tenis)

Entropy(Tevet)= - (1/1) log2 (1/1)  = 0
Entropy(Thayır)= - (2/2) log2 (2/2) = 0

Gain(TA, aileli) = Entropy(T)- ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =0,918 - ((1/3)Entropy(Tevet)+(2/3)Entropy(Thayır))
 
Gain(TA, aileli) = 0,918


Gain(TA, para)= ?

Zengin = 3 (1 Sinema, 2 Tenis)
Fakir  = 0

Entropy(Tzengin)= - (1/3) log2 (1/3) - (2/3) log2 (2/3) = 0,918

Gain(TA, para) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =0,918 - (3/3)Entropy(Tzengin)

Gain(TA, para) = 0,918 - 0,918 = 0 olduğuna göre;

Bilgi kazancı en büyük olan aile niteliği havanın güneşli (A) olması niteliğinin kök niteliği olmuştur.

Yeni düğüm için en ayırt edici özellik Aileli olarak belirlenmiştir. Bu işlemler her düğüm için aşağıdaki durumlardan biri oluşuncaya kadar devam eder.
  • Örneklerin hepsi aynı sınıfa ait 
  • Örnekleri bölecek özellik kalmamış
  • Kalan özelliklerin değerini taşıyan örnek yok





Hafta sonu veri kümesindeki (TB kümesi) 4 örnekten
  • 3 örnek için karar sinema ve 
  • 1 örnek için karar alışveriş olduğuna göre;
Entropy (Rüzgârlı):

H(TB)= - (3/4) log2(3/4) - (1/4) log2(1/4)
H(TB)= 0,811

Gain(TB, aileli)= ?
Evet = 2 (2 Sinema)
Hayır  = 2 (1 Sinema, 1 Alışveriş)

Entropy(Tevet)= - (2/2) log2 (2/2)  = 0
Entropy(Thayır)= - 2(1/2) log2 (1/2) = 1

Gain(TB, aileli) = Entropy(T)- ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =0,811 - ((2/4)Entropy(Tevet)+(2/4)Entropy(Thayır))

Gain(TB, aileli) = 0,811 – 0,5 = 0,311

Gain(TB, para)= ?
Zengin = 3 (2 Sinema, 1 Alışveriş)
Fakir  = 1 (1 Sinema)

Entropy(Tzengin)= - (2/3) log2 (2/3) - (1/3) log2 (1/3) = 0,918
Entropy(Tfakir)= - (1/1) log2 (1/1) = 0

Gain(TB, para) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =0,918 - (3/4)Entropy(Tzengin)
Gain(TB, para) = 0,918 - 0,918(0,75) = 0,2295 olduğuna göre;

Bilgi kazancı en büyük olan aile niteliği havanın rüzgârlı (B) olması niteliğinin kök niteliği olmuştur.




Hafta sonu veri kümesindeki (TC kümesi) 3 örnekten
  • 2 örnek için karar sinema ve 
  • 1 örnek için karar evde kalmak olduğuna göre;
Entropy (Yağmurlu):
H(TC)= - (1/3) log2(1/3) - (2/3) log2(2/3)
H(TC) = 0,918

Gain(TC, aileli)= ?
 Evet = 2 (2 Sinema)
Hayır  = 1 (1 Evde)

Entropy(Tevet)= - (2/2) log2 (2/2)= 0
Entropy(Thayır)= - (1/1) log2 (1/1)  = 0

Gain(TC, aileli) = Entropy(T) - ((P(evet)Entropy(Tevet) + P(hayır) Entropy(Thayır))
                               =0,918 - ((2/3)Entropy(Tevet)+(1/3)Entropy(Thayır))

Gain(TC, aileli) = 0,918


Gain(TC, para)= ?

Zengin = 1 (1 Evde)
Fakir  = 2 (2 Sinema)

Entropy(Tzengin)= - (1/1) log2 (1/1)= 0
Entropy(Tfakir)= - (2/2) log2 (2/2) = 0

Gain(TC, aileli) = Entropy(T)- ((P(zengin)Entropy(Tzengin) + P(fakir) Entropy(Tfakir))
                               =0,918 - ((1/3)Entropy(Tzengin)+(2/3)Entropy(Tfakir))
Gain(TC, para) = 0,918 olduğuna göre;

Bilgi kazancı her iki nitelik içinde aynı olması sebebiyle aile niteliği ve para niteliği havanın yağmurlu (C) olması niteliğine kök niteliği olamamıştır.


Sonuç:

Yapılan işlemler sonucunda karar ağacımız yukarıdaki durumunu almıştır. Yapılan matematik işlemlerin fazla olmasına rağmen bu basit karar ağacını sonucunu bulmaya değer olduğunu düşünüyorum. Karar ağacının görsel açıdan basitliği bu örnekte açıkça belli olmaktadır.

Veri madenciliğinde Karar Ağaçlarını bir örnek ile incelediniz. İyi çalışmalar J

İlham: Sultan Turhan ve Songül Albayrak J

Friday 29 April 2011

T-SQL’de köşeli parantez kullanımı

T-SQL veritabanına yeni tablo eklerken tablo isminde iki veya daha fazla kelimelik ise bunun birleştirilmesi veya aralarına bir karakter(nokta, alt, üst çizgi, vb.) konulması sorgu sırasında karışıklık çıkmaması adına istenir. İlla tablo ismim aralarında boşluk olsun derseniz üzülmeyin köşeli parantez size yardım edecektir. J

Örnek olarak veri tabanımızdaki tablolunun ismi Calisanlar Iletisim olsun ve bu tabloda olan çalışanların ad ve soyadlarını tek sütunda gösterelim. Yazacağımız T-SQL kodlar aşağıdaki gibidir;

--köşeli parantez kullanımı
SELECT Ad + ' ' + Soyad AS [Ad ve Soyadı]
FROM [Calisanlar Iletisim]

Not:
Köşeli parantez, veritabanı, saklı yordam, tetikleyiciler, vb. tanımlanırken veya sorgu sonucunda sütun isminin gösteriminde de kullanılabilir.

İyi çalışmalar. J

Thursday 28 April 2011

BAYES Sınıflayıcıları 2

Veri madenciliği, eğiticili öğrenme konularının içerisinde, sınıflandırma uygulamalarında kendine yer bulan BAYES Sınıflayıcıları önceki yazımızda açıklamaya çalışmıştım. Başka bir örnek daha yapmak istiyorum.

Bu sefer veri setimiz farklı olsun ve çeşitli hava olaylarının tenis maçının oynanıp oynanmamasına olan etkisini ve sonucunu tahmin etmeye çalışalım. Örnek veri setimiz ile BAYES Teoremini kullanarak tahmin yapmaya çalışalım. Veri setimiz aşağıdaki tablo gibidir.

Gün
Hava Durumu
Sıcaklık
Nem
Rüzgar
Tenis Oynama
1
güneşli
sıcak
yüksek
zayıf
hayır
2
güneşli
sıcak
yüksek
güçlü
hayır
3
bulutlu
sıcak
yüksek
zayıf
evet
4
yağmurlu
ılık
yüksek
zayıf
evet
5
yağmurlu
soğuk
normal
zayıf
evet
6
yağmurlu
soğuk
normal
güçlü
hayır
7
bulutlu
soğuk
normal
güçlü
evet
8
güneşli
ılık
yüksek
zayıf
hayır
9
güneşli
soğuk
normal
zayıf
evet
10
yağmurlu
ılık
normal
zayıf
evet

Tabloda 10 gün boyunca planlanan tenis maçlarının oynanıp oynanmadığını gösteren bir veriler bulunmakta. Bu veri seti üzerinden aşağıdaki sonucu tahmin etmeye çalışalım.

Hava Durumu: YAĞMURLU
Sıcaklık: SOĞUK
Nem: NORMAL
Rüzgâr: ZAYIF
 
Tenis Oynama = ?

Yukarıdaki sonuçlara göre bu tenis maçının oynanıp oynanmayacağını tahmin edeceğiz.


 
Sonuç:

İlgili cevaplara göre; sonucun tenis oynama olma ihtimali yaklaşık 0,1111 ve sonucun tenis oynamama olma ihtimali yaklaşık 0,003 çıkmıştır. Buna göre oranı yüksek olanın bizim için doğru sonucu verdiği kanaatine varırız.

Bu örnek için tenis maçının oynanması beklenir. J

Veri madenciliğinde BAYES Sınıflandırıcıları ile ilgili başka bir örnek incelediniz, iyi çalışmalar J

İlham: Sultan Turhan ve Songül Albayrak J

Wednesday 27 April 2011

BAYES Sınıflayıcıları

Veri madenciliği, eğiticili öğrenme konularının içerisinde, sınıflandırma uygulamalarında kendine yer bulan BAYES Sınıflayıcıları anlamaya çalışacağız. Bir örnek üzerinden konuyu inceleyeceğiz.

    En büyük olasılıklı değer (bu değer 1’e yakın bir değer veya uzak bir değer de olabilir) her iki ihtimal içinde değerlendirilir. İki ihtimalden 1’e en yakın değer, doğru tahmin olarak kabul edilir.

    Örnek veri setimiz ile BAYES Teoremini kullanarak tahmin yapmaya çalışalım. Veri setimiz aşağıdaki tablo gibidir.


    Tabloda 10 kişiye (6 erkek, 4 bayan) çeşitli promosyonları tercih edip etmemesi konusunda bir araştırma yapıldığını ve bunlara verdikleri olumlu veya olumsuz cevapları olduğunu varsayalım. Bu veri seti üzerinden aşağıdaki sonucu tahmin etmeye çalışalım.

    Magazin Promosyonu: HAYIR
    Film Promosyonu: HAYIR
    Hayat Sigortası Promosyonu: EVET
    Kredi Kartı Promosyonu: EVET
    Cinsiyet = ?

    Yukarıdaki sonuçlara göre bu cevapları verenin Erkek mi Bayan mı olduğunu tahmin edeceğiz.





    Sonuç:

    İlgili cevaplara göre; sonucun erkek olma ihtimali yaklaşık 0,0148 ve sonucun kadın olma ihtimali yaklaşık 0,0093 çıkmıştır. Buna göre oranı yüksek olanın bizim için doğru sonucu verdiği kanaatine varırız.

    Bu örnek için cinsiyetin erkek olması yani bu cevapları verenin erkek olması beklenir. J

    Veri madenciliğinde BAYES Sınıflandırıcıları incelediniz, iyi çalışmalar J

    İlham alınanlar: Sultan Turhan ve Songül Albayrak J