Scikit Learn - Klassifizierung mit naiven Bayes

Naive Bayes-Methoden sind eine Reihe von überwachten Lernalgorithmen, die auf der Anwendung des Bayes-Theorems basieren, mit der starken Annahme, dass alle Prädiktoren unabhängig voneinander sind, dh das Vorhandensein eines Merkmals in einer Klasse ist unabhängig vom Vorhandensein eines anderen Merkmals in derselben Klasse. Dies ist eine naive Annahme, weshalb diese Methoden als naive Bayes-Methoden bezeichnet werden.

Das Bayes-Theorem gibt die folgende Beziehung an, um die hintere Wahrscheinlichkeit der Klasse zu ermitteln, dh die Wahrscheinlichkeit eines Labels und einiger beobachteter Merkmale: $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right ) $.

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

Hier ist $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) $ die hintere Wahrscheinlichkeit der Klasse.

$ P \ left (\ begin {array} {c} Y \ end {array} \ right) $ ist die vorherige Wahrscheinlichkeit der Klasse.

$ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ ist die Wahrscheinlichkeit, mit der der Prädiktor eine bestimmte Klasse erhält.

$ P \ left (\ begin {array} {c} features \ end {array} \ right) $ ist die vorherige Wahrscheinlichkeit eines Prädiktors.

Das Scikit-Learn bietet verschiedene naive Bayes-Klassifikatormodelle, nämlich Gauß, Multinomial, Complement und Bernoulli. Alle unterscheiden sich hauptsächlich durch die Annahme, die sie hinsichtlich der Verteilung von $ P \ left (\ begin {array} {c} -Features \ arrowvert Y \ end {array} \ right) $ treffen, dh der Wahrscheinlichkeit, dass der Prädiktor eine bestimmte Klasse hat.

Sr.Nr. Modellbeschreibung
1 Gaußsche naive Bayes

Der Gaußsche Naive Bayes-Klassifikator geht davon aus, dass die Daten von jedem Etikett aus einer einfachen Gaußschen Verteilung stammen.

2 Multinomial Naive Bayes

Es wird davon ausgegangen, dass die Features aus einer einfachen Multinomialverteilung stammen.

3 Bernoulli Naive Bayes

Die Annahme in diesem Modell ist, dass die Merkmale binärer Natur (0s und 1s) sind. Eine Anwendung der Bernoulli Naïve Bayes-Klassifikation ist die Textklassifikation mit dem 'Bag of Words'-Modell

4 Ergänzen Sie naive Bayes

Es wurde entwickelt, um die schwerwiegenden Annahmen des Multinomial Bayes-Klassifikators zu korrigieren. Diese Art von NB-Klassifikator eignet sich für unausgeglichene Datensätze

Gebäude Naive Bayes Classifier

Wir können den Naïve Bayes-Klassifikator auch auf den Scikit-Learn-Datensatz anwenden. Im folgenden Beispiel wenden wir GaussianNB an und passen den Brustkrebs-Datensatz von Scikit-leran an.

Beispiel

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)

Ausgabe

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

Die obige Ausgabe besteht aus einer Reihe von Nullen und Einsen, die im Wesentlichen die vorhergesagten Werte aus Tumorklassen sind, nämlich bösartig und gutartig.