Algoritma GeliştirmeYazılımda Temel Kavramlar

Naive Bayes Sınıflandırıcısı

image_pdfimage_print

Basit haliyle bir sınıflandırma-kategorilendirme algoritmasıdır. İsmini 17.yy’da yaşamış Thomas Bayes adında bir matematikçiden alır. Verilerin sınıflandırılmasından daha çok nasıl sınıflandırıldığı önemlidir bu algoritmada. En sade hali ile bir olayın herhangi bir kategoriye ait olmasinin olasılığını hesaplamada kullanilir.

En önemli kuralı niteliklerin birbirinden bağımsız olduğudur çünkü nitelikler birbirini etkiliyorsa burada olasılık hesabı zordur.Niteliklerinin hepsinin aynı derecede önemli olduğu kabul edilir. Sonucun çıkma olasılığı o sonuca etkiyen tüm niteliklerin olasılıklarının çarpımıdır.

Koşullu Olasılık ve Naive Bayes Olasılık Gösterimi

Naive Bayes teoremine girmeden önce koşullu olasılık kavramını anlamak gerekir. Koşullu olasılık ise daha önce olmuş bir olaya bakarak bir sonraki olayın gerçekleşme olasılığını bulur. Örneğin bir demokrat senatörün kadın olma olasılığını hesaplayalım. Bir senatör ya demokrat ya da cumhuriyetçi olabiliyor. Yani demokrat olma olasılığı 1/2. Bir insan da erkek veya kadın olabildiğine göre 1/2 olasılığımızda buradan gelir. Sonuçları çarptığımızda da cevabımız olan 1/4’ü elde etmiş oluruz.

Naive Bayes için kullanacağımız formül ise  P ( A | B )= P ( B | A ) x P(A) / P(B) yani B olayı gerçekleştiğinde A’nın olma olasılığı demektir. Açıklamalı hali ise :

(Kategorinin olma olasılığı * elimizdeki niteliklerin olma olasılığı) / küme sayısı).

Naive Bayes’in tam olarak nasıl kullanıldığına bir örnekle bakalım.

 

Günler Hava Durumu Sıcaklık Nem Oranı Rüzgar Şiddeti Tenis oynanıyor mu ?
1.Gün Güneşli Sıcak Yüksek Zayıf Hayır
2.Gün Güneşli Sıcak Yüksek Güçlü Hayır
3.Gün Bulutlu Sıcak Yüksek Zayıf Evet
4.Gün Yağmurlu Ilık Yüksek Zayıf Evet
5.Gün Yağmurlu Soğuk Normal Zayıf Evet
6.Gün Yağmurlu Soğuk Normal Güçlü Hayır
7.Gün Bulutlu Soğuk Normal Güçlü Evet
8.Gün Güneşli Ilık Yüksek Zayıf Hayır
9.Gün Güneşli Soğuk Normal Zayıf Evet
10.Gün Yağmurlu Ilık Normal Zayıf Evet
11.Gün Güneşli Ilık Normal Güçlü Evet
12.Gün Bulutlu Ilık Yüksek Güçlü Evet
13.Gün Bulutlu Sıcak Normal Zayıf Evet
14.Gün Yağmurlu Ilık Yüksek Güçlü Hayır

 

Bizden istenen koşullar şunlar : 15.günde ;

‘Hava durumu : Güneşli’

‘Sıcaklık : Soğuk’

‘Nem : Yüksek’

‘Rüzgar : Güçlü’

‘Tenis oynanıyor mu : Evet’

İşlemleri yaparken her niteliğin kendi olasılık kümesinin büyüklüğüne bölündüğüne dikkat etmeliyiz. Önce toplam sayılarımızı yazalım.

Toplam veri sayısı : 14

Toplam Evet sayısı : 9

Toplam Hayır sayısı : 5

Evet çıkma olasılığı P(y) = 9/14 x 2/9 x 3/9 x 3/9 x 3/9 = 0,0053

Hayır çıkma olasılığı P(n) = 5/14 x 3/5 x 1/5 x 4/5 x 3/5 = 0,0205

Yani tenis oynanmama olasılığı daha yüksek.

Örneğin Weka Üzerinde Gösterimi

Şekil 1. Datasetimiz

 

 

 

 

Ve sonucumuz karşımıza çıkıyor.

Sıfır-Frekans (Zero Frequency) Nedir ?

Yani kayıtlarımız arasında 0 olsaydı ? Burada Laplace Correction yöntemini kullanarak sorunu çözeriz. Her değere 0-1 arasında bir değer eklenerek bu sorun çözülüyor ve bu sorunun sonucuna pek etki etmeyecektir yani çok değiştirmeyecektir. Bununla ilgili Sadi Evren Şeker’in videosunda bahsettiği kısmı buraya tıklayarak izleyebilirsiniz.

Naive Bayes günlük yaşantımızda nerelerde kullanılıyor ?

Makine öğrenmesindeki temel sınıflandırıcılardandır. Spam filtrelemede çoğunlukla kullanılır. Robotik çalışmalar,Görüntü işleme,Veri Madenciliği,Metin ayrıştırılması ve Ürün sınıflandırma gibi alanlarda kullanılır.

Naive Bayes’in Avantajları ve Dezavantajları

Avantajları

  • Nispeten de olsa kolay anlaşılabilir ve yapılandırılabilir.
  • Küçük bir veri kümesiyle bile kolayca eğitilir yapıdadır.
  • Rakiplerine göre hızlı çalışır.

Dezavantajları

  • Her niteliğin birbirinden bağımsız olduğunu kabul eder ama bu her durum karşısında geçerli değildir.
  • Değişkenler arası ilişki gösterilemiyor.

Referanslar :

  1. http://bilgisayarkavramlari.sadievrenseker.com/2013/02/08/naif-bayes-siniflandiricisi-naive-bayes/
  2. https://kodedu.com/2014/05/naive-bayes-siniflandirma-algoritmasi/
  3. https://www.e-adys.com/post/2016/01/19/naive-bayes
  4. https://www.youtube.com/watch?v=BHmpDK9PoDs
  5. https://www.youtube.com/watch?v=QiLsuwtbw28https://
  6. http://www.mademir.com/2011/01/naive-bayes-snflandrma-algoritmas.html
  7. http://yudkowsky.net/rational/bayes
  8. yazilimcorbasi.blogspot.com.tr/2012/02/naive-bayes-classifier.html
  9. https://stackoverflow.com/questions/10059594/a-simple-explanation-of-naive-bayes-classification
  10. Veri Madenciliği Yöntemleri  by Dr. Yalçın Özkan sf. 173
  11. https://monkeylearn.com/blog/practical-explanation-naive-bayes-classifier/
  12. https://ipfs.io/ipfs/QmR1gzPYUwxEUWHbeRggZzfYy5Fxsd8Qc7hXUUnJQwxrZq/wiki/Naive_Bayes_sınıflandırıcı.html
  13. https://www.slideshare.net/ashrafmath/naive-bayes-15644818
  14. http://blog.aylien.com/naive-bayes-for-dummies-a-simple-explanation/

 

0
0

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir