naive 4

Naive Bayes Classification – #7

 

Naive Bayes:

Hesaplama açısından oldukça zor bir yöntem olsa da, veri kümesini bir kere eğittikten sonra oldukça hızlı çalışan, bir durumun olma ihtimalinin en yüksek olma koşuluna göre hareket eden bir tür sınıflandırma algoritmasıdır. Büyük veri kümeleri için oldukça kullanışlıdır. Diğer sınıflandırma methodlarına göre daha iyi sonuç verdiği söyleniyor. Siz yine de çözmek istediğiniz probleme göre algoritma seçiminde bulunun. Örn; Naive Bayes dinamik sistemler için, yani verinin sürekli olarak değiştiği durumlar için uygun değildir. Çünkü yeni veri geldikçe eğitim sürecini ve test sürecini tekrarlamak gerekecektir. Bu yüzden algoritma seçimine çok dikkat etmeniz gerekiyor.

Görünüm Sıcaklık Nem Rüzgar Oyun
Güneşli Sıcak Yüksek Yok Hayır
Güneşli Sıcak Yüksek Var Hayır
Bulutlu Sıcak Yüksek Yok Evet
Yağmurlu Ilık Yüksek Yok Evet
Yağmurlu Serin Normal Yok Evet
Yağmurlu Serin Normal Var Hayır
Bulutlu Serin Normal Var Evet
Güneşli Ilık Yüksek Yok Hayır
Güneşli Serin Normal Yok Evet
Yağmurlu Ilık Normal Yok Evet
Güneşli Ilık Normal Var Evet
Bulutlu Ilık Yüksek Var Evet
Bulutlu Sıcak Normal Yok Evet
Yağmurlu Ilık Yüksek Var Hayır

Naive bayes = P(A|B) = P(B|A) *P(A) / P(B)

P(A|B) = B olayı gerçekleştiği durumda A olayının meydana gelme olasılığıdır

P(B|A) = A olayı gerçekleştiği durumda B olayının meydana gelme olasılığıdır

P(A) = A olayının olma olasılığı

P(B) = A olayının olma olasılığı

Görünüm Oyun/

EVET

Oyun/

HAYIR

Sıcaklık Oyun/

EVET

Oyun/

HAYIR

Nem Oyun/

EVET

Oyun/

HAYIR

Rüzgar Oyun/

EVET

Oyun/

HAYIR

Oyun 
Güneşli 2/9 3/5 Sıcak 2/9 2/5 Yüksek 3/9 4/5 Yok 6/9 2/5 9/14 5/14
Bulutlu 4/9 0/5 Ilık 4/9 2/5 Normal 6/9 1/5 Var 3/9 3/5
Yağmurlu 3/9 2/5 Serin 3/9 1/5

 

Yukarıdaki  tabloda,  görünüm  sütunundaki değerlerin olma olasılıkları verilmiştir. Fakat bulutlu olmama olasılığı 0′ dır. Bu durumda 0’ı 1 yapıp diğer bütün değerleri 1 artırmak sonucu çok etkilemeyecektir. Buna da zero-probability ya da laplace estimator deniyor. Buna göre;

    Evet Hayır   P(Evet|Güneşli) P(Evet|Bulutlu) P(Evet|Yağmurlu) P(Hayır|Güneşli) P(Hayır|Bulutlu) P(Hayır|Yağmurlu)
  Güneşli 3/12 4/8 7/20 (3/12*12/20) / (7/20)  (4/8*8/20) / ( 7/20)  (5/12* 12/20) / (6/20) (1/8*8/20) / (6/20) (4/12*12/20)/ (7/20) (3/8*8/20) /(7/20)
Görünüm Bulutlu 5/12 1/8 6/20            
  Yağmurlu 4/12 3/8 7/20            
  Olasılık 12/20 8/20 1 0.4285 0.571 0.833 0.1666 0.571 0.42857

Bu değerler sadece Görünüm sütunu içindi. Bütün bu işlemleri sıcaklık, nem ve rüzgar sütunları içinde hesaplamamız gerekli.

    Evet Hayır   P(Evet|Sıcak) P(Evet|Ilık) P(Evet|Serin) P(Hayır|Sıcak) P(Hayır|Ilık) P(Hayır|Serin)
  Sıcak 2/9 2/5 4/14 (2/9*9/14)/4/14 (4/9*9/14)/6/14 (3/9*9/14)/4/14 (2/5*5/14)/4/14 (2/5*5/14)/6/14 (1/5*5/14)/4/14
Sıcaklık Ilık 4/9 2/5 6/14            
  Serin 3/9 1/5 4/14            
  Olasılık 9/14 5/14 1 0.0025510 0.003401 0.00382 0.0025 0.00170 0.00127

 

    Evet Hayır   P(Evet|Yüksek ) P(Evet|Normal) P(Hayır|Yüksek ) P(Hayır|Normal)
  Yüksek  3/9 4/5 7/14 (3/9*9/14)/7/14 (6/9*9/14)/7/14 (4/5*5/14)/7/14 (1/5*5/14)/7/14
Nem Normal 6/9 1/5 7/14        
  Olasılık 9/14 5/14 1 0.00218 0.00437317 0.00291 0.00072

 

    Evet Hayır   P(Evet|Var) P(Evet|Yok) P(Hayır|Var) P(Hayır|Yok)
  Var 6/9 2/5 8/14 (6/9*9/14)/8/14 (3/9*9/14)/6/14 (2/5*5/14)/8/14 (3/5*5/14)/6/14
Rüzgar Yok 3/9 3/5 6/14        
   Olasılık 9/14 5/14 1 0.003826 0.0025 0.0012755 0.002551

SET= (Bulutlu, serin,normal,var) değerinin hangi sınıfa ait olduğunu tahmin edelim.

P(Evet|SET) = P(Bulutlu|Evet) * P(serin|Evet) * P(normal|Evet) * P(var|Evet)  * P(Evet)  

= (4/9) * (3/9)*(6/9)*(6/9)*(9/14) = 0.04232

P(Hayır|SET) = P(Bulutlu|Hayır) * P(serin|Hayır) * P(normal|Hayır) * P(var|Hayır)  * P(Hayır)  

= (2/5) * (1/5)*(1/5)*(2/5)*(5/14) = 0.00228

P(Evet|SET) değeri daha büyük olduğu için OYUN oynama evet olarak sınıflandırılmış oluyor.

Naive Bayes’ de kendi arasında GuassianNB ,Multi-variate Bernoulli Naive Bayes ve Multinomial Naive Bayes olmak üzere 3′ e ayrılıyor.

Guassian Naıve Bayes:

Özelliklerin normal distribution izlediğini varsayıyoruz. Örn; bir resmin görüntü kalitesi, renk kalitesi, keskinliği vs. Yani özellikler discrete değil continuous.

Multi-variate Bernoulli Naive Bayes:

Çok değişkenli Bernoulli modeli ikili verilere dayanır: Bir belgenin özellik vektöründeki her bir eleman 1 veya 0 değeriyle ilişkilendirilir. Örn;

a =  Google arama motorunda en iyisidir.

b = İnsanlar Google üzerinden arama yapıyor.

c = [Google, Arama, Motorunda, En, İyisidir, İnsanlar, Üzerinden, Yapıyor]

a ve b vektörlerinde var olanları c vektörüne bakarak işaretliyelim.

a = [ 1, 1, 1, 1, 1, 0, 0, 0]

b = [ 0, 1, 0, 0, 0, 1, 1, 1]

c Google Arama Motorunda En İyisidir İnsanlar Üzerinden Yapıyor
a 1 1 1 1 1 0 0 0
b 0 1 0 0 0 1 1 1
Multinomial Naive Bayes:

Örneğin, bir metin sınıflandırma sorunumuz varsa, bernoulli methodunu bir adım daha ileriye götürebilir ve “Belge de sözcük var mı yok mu?” yerine “Belge de sözcükler ne sıklıkta var? (Frekans) “diye düşünebilirsiniz. Frekans ise, belirli bir terimin (sözcük veya işaretin) bir belgede kaç kez göründüğüdür.

      Irıs Verisetini GaussianNB ile Sınıflandırma

Kaynaklar:

[1] Eager and Lazy Learning Algorithms

[2] GaussianNB

46 Paylaşımlar
Naive Bayes Classification - ML#15
Naive Bayes Classification - ML#15
CSVeri