Makine Öğrenmesinde Naive Bayes Yöntemi
Naive Bayes sınıflandırma yönteminin temeli Naive Bayes teoremine dayanmaktadır. Bu sebeple, algoritma ,olasılığa dayalı bir sınıflandırma yöntemidir. Algoritma, bir veri için tüm olasılıkları hesaplar ve olasılık değeri en yüksek çıkan sonuca göre diğer verilerin sınıflandırmasını yapar. Naive Bayes algoritması tembel bir öğrenme türüdür. Aşağıda Naive Bayes teoremi görülmektedir.
P ( A | B ) = B olayı gerçekleştiğinde A olayının gerçekleşme olasılığı
P ( A ) = A olayının gerçekleşme olasılığı
P ( B | A ) = A olayı gerçekleştiğinde B olayının gerçekleşme olasılığı
P ( B ) = B olayının gerçekleşme olasılığı
Birçok uygulama zayıf özellikleri göz ardı ederken Bayer algoritması bu özellikleri de dikkate alarak çok sayıda özellikten gelen bilgileri aynı anda kullanarak etkili bir çözüm oluşturur.
Bayer algoritması, az veriyle başarılı olabilir ,sürekli ve kesikli verilerde kullanılabilir, yüksek boyutlu verilerle çalışılabilir.
Bayer yönteminde zero frequency(sıfır frekans) ile karşılaşılabilir. Sıfır frekans, test(deneme) kümesinde yer alan bir değerin eğitim kümesinde gözlemlenememesi durumunda olasılık değerinin 0 kabul edilerek tahmin yapılamaması durumudur. Bu sorunu ortadan kaldırmak için laplace tahmin yöntemi kullanılır, yani tüm verilere minimum değer eklenir( minimum değer genellikle 1 olur). Böylece bu olasılık ortadan kaldırılır.
Bu yöntemi daha iyi anlamak için pythonda bir uygulama yapalım.
Naive Bayes Yöntemi Python Uygulaması:
Aşağıda veri setinde görüldüğü gibi 5 farklı nitelik vardır. Kullanıcı Id,cinsiyet,yaş,beklenen maaş bağımsız nitelikler ; hedef değişken ise işe alımdır.Burada beklenen maaş ve ve yaş dikkate alınarak işe alım yapılma durumu tahmin edilecektir.
Aşağıda yer alan kodda ,scikit-learn kütüphanesi naive_bayes modülü GaussianNB sınıfından yaratacağımız classifier nesnesi ile modelimiz oluşturuldu.
Yukarıda, koddan elde edilen deneme seti ve eğitim setinin grafikleri verilmiştir.
İlerleyen yazılarımızda görüşmek üzere…