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.