Scikit Learn - klasyfikacja z Naïve Bayes

Naiwne metody Bayesa to zestaw algorytmów uczenia nadzorowanego opartych na zastosowaniu twierdzenia Bayesa z silnym założeniem, że wszystkie predyktory są od siebie niezależne, tj. Obecność cechy w klasie jest niezależna od obecności jakiejkolwiek innej cechy w tym samym klasa. To naiwne założenie, dlatego metody te nazywane są metodami Naiwego Bayesa.

Twierdzenie Bayesa stwierdza następującą zależność w celu znalezienia późniejszego prawdopodobieństwa klasy, tj. Prawdopodobieństwa etykiety i pewnych obserwowanych cech, $ P \ left (\ begin {tablica} {c} Y \ arrowvert features \ end {tablica} \ right ) $.

$$ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {tablica} \ right) = \ left (\ frac {P \ lgroup Y \ rgroup P \ left (\ begin {array} {c } features \ arrowvert Y \ end {tablica} \ right)} {P \ left (\ begin {tablica} {c} features \ end {tablica} \ right)} \ right) $$

Tutaj $ P \ left (\ begin {tablica} {c} Y \ arrowvert features \ end {tablica} \ right) $ jest późniejszym prawdopodobieństwem wystąpienia klasy.

$ P \ left (\ begin {tablica} {c} Y \ end {tablica} \ po prawej) $ to wcześniejsze prawdopodobieństwo wystąpienia klasy.

$ P \ left (\ begin {tablica} {c} features \ arrowvert Y \ end {tablica} \ right) $ to prawdopodobieństwo, które jest prawdopodobieństwem predyktora danej klasy.

$ P \ left (\ begin {tablica} {c} features \ end {tablica} \ right) $ jest wcześniejszym prawdopodobieństwem predyktora.

Scikit-learn zapewnia różne naiwne modele klasyfikatorów Bayesa, mianowicie Gaussa, Wielomian, Dopełnienie i Bernoulliego. Wszystkie różnią się głównie założeniem, które przyjmują odnośnie rozkładu $ P \ left (\ begin {tablica} {c} features \ arrowvert Y \ end {tablica} \ right) $ tj. Prawdopodobieństwa predyktora danej klasy.

Sr.No Opis modelu
1 Gaussian Naïve Bayes

Naiwny klasyfikator Gaussa Bayesa zakłada, że ​​dane z każdej etykiety pochodzą z prostego rozkładu Gaussa.

2 Wielomianowy Naïve Bayes

Zakłada, że ​​cechy są narysowane z prostego rozkładu wielomianowego.

3 Bernoulli Naïve Bayes

Założenie w tym modelu jest takie, że cechy mają charakter binarny (0 i 1). Zastosowaniem klasyfikacji Bernoulliego Naïve Bayesa jest klasyfikacja tekstu z modelem „worka słów”

4 Uzupełnienie Naïve Bayes

Został zaprojektowany, aby skorygować surowe założenia przyjęte przez wielomianowy klasyfikator Bayesa. Ten rodzaj klasyfikatora NB jest odpowiedni dla niezrównoważonych zestawów danych

Budowanie naiwnego klasyfikatora Bayesa

Możemy również zastosować klasyfikator Naïve Bayes w zbiorze danych Scikit-learn. W poniższym przykładzie stosujemy GaussianNB i dopasowujemy zestaw danych raka piersi Scikit-leran.

Przykład

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)

Wynik

[
   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
]

Powyższy wynik składa się z szeregu zer i jedynek, które są w zasadzie wartościami przewidywanymi z klas nowotworów złośliwych i łagodnych.