Scikit Learn - Naif Bayes ile Sınıflandırma
Naïve Bayes yöntemleri, Bayes teoremini, tüm yordayıcıların birbirinden bağımsız olduğu güçlü bir varsayımla uygulamaya dayanan bir dizi denetimli öğrenme algoritmasıdır. sınıf. Bu naif bir varsayımdır, bu yüzden bu yöntemlere Naif Bayes yöntemleri denir.
Bayes teoremi, sınıfın posterior olasılığını, yani bir etiketin olasılığını ve bazı gözlenen özellikleri, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) bulmak için aşağıdaki ilişkiyi belirtir ) $.
$$ P \ left (\ begin {dizi} {c} Y \ arrowvert features \ end {array} \ right) = \ left (\ frac {P \ lgroup Y \ rgroup P \ left (\ begin {dizi} {c } özellikler \ arrowvert Y \ end {dizi} \ sağ)} {P \ left (\ begin {dizi} {c} özellikler \ end {dizi} \ sağ)} \ sağ) $$Burada, $ P \ left (\ begin {dizi} {c} Y \ arrowvert features \ end {array} \ right) $ sınıfın son olasılığıdır.
$ P \ left (\ begin {dizi} {c} Y \ end {dizi} \ sağ) $, sınıfın önceki olasılığıdır.
$ P \ left (\ begin {dizi} {c} özellikler \ arrowvert Y \ end {dizi} \ sağ) $, sınıftaki öngörücünün olasılığı olan olasılıktır.
$ P \ left (\ begin {dizi} {c} özellikler \ end {dizi} \ sağ) $, tahmin edicinin önceki olasılığıdır.
Scikit-learn, Gaussian, Multinomial, Complement ve Bernoulli olmak üzere farklı naif Bayes sınıflandırıcı modelleri sağlar. Hepsi, temelde $ P \ left (\ begin {dizi} {c} özellikler \ arrowvert Y \ end {dizi} \ right) $ dağılımına ilişkin yaptıkları varsayımla, yani öngörücünün verilen sınıf olasılığına göre farklılık gösterir.
Sr.No | Model Açıklaması |
---|---|
1 | Gauss Naif Bayes Gaussian Naïve Bayes sınıflandırıcısı, her bir etiketten gelen verilerin basit bir Gauss dağılımından alındığını varsayar. |
2 | Multinomial Naif Bayes Özelliklerin basit bir çok terimli dağılımdan alındığını varsayar. |
3 | Bernoulli Naïve Bayes Bu modeldeki varsayım, doğada ikili (0'lar ve 1'ler) özelliklerinin olmasıdır. Bernoulli Naïve Bayes sınıflandırmasının bir uygulaması, 'kelime çantası' modeliyle Metin sınıflandırmasıdır. |
4 | Naif Bayes'i tamamlayın Multinomial Bayes sınıflandırıcı tarafından yapılan ciddi varsayımları düzeltmek için tasarlanmıştır. Bu tür bir NB sınıflandırıcı, dengesiz veri kümeleri için uygundur |
Naïve Bayes Sınıflandırıcı Oluşturma
Naïve Bayes sınıflandırıcısını Scikit-learn veri setine de uygulayabiliriz. Aşağıdaki örnekte, GaussianNB uyguluyoruz ve Scikit-leran'ın breast_cancer veri setini uyduruyoruz.
Misal
Import Sklearn
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
data = load_breast_cancer()
label_names = data['target_names']
labels = data['target']
feature_names = data['feature_names']
features = data['data']
print(label_names)
print(labels[0])
print(feature_names[0])
print(features[0])
train, test, train_labels, test_labels = train_test_split(
features,labels,test_size = 0.40, random_state = 42
)
from sklearn.naive_bayes import GaussianNB
GNBclf = GaussianNB()
model = GNBclf.fit(train, train_labels)
preds = GNBclf.predict(test)
print(preds)
Çıktı
[
1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1
1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1
1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0
1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0
1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1
0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1
1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0
1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1
1 1 1 1 0 1 0 0 1 1 0 1
]
Yukarıdaki çıktı, temel olarak tümör sınıflarından, yani kötü huylu ve iyi huylu olmak üzere tahmin edilen değerler olan bir dizi 0 ve 1'den oluşur.