Für die Klassifizierung mehrerer Klassen. Es ist berühmt für die Klassifizierung von Spam-Mails.
Wenn y die Zielvariable und x ($ x_ {1} $ ~ $ x_ {n} $) die erklärende Variable ist, dann Bayes-Theorem Die Wahrscheinlichkeit, zu welcher Klasse eine bestimmte Stichprobe gehört, kann unten berechnet werden.
P(y | x_{1},・ ・ ・ X._{n}) = \frac{P(y) * P(x_{1},・ ・ ・ X._{n} | y)} {P(x_{1},・ ・ ・ X._{n})}
"Naiv" ergibt sich übrigens aus der Annahme, dass die erklärenden Variablen unabhängig voneinander sind. Die Tatsache, dass die erklärenden Variablen unabhängig voneinander sind, bedeutet, dass:
P(x_{i} | y, x_{1},・ ・ ・,x_{i+1},・ ・ ・,x_{n}) = P(x_{i} | y)
"$ X_ {i} $, wenn y passiert, wird von anderen x-Zuständen nicht beeinflusst." Der Grund dafür ist, dass die Formel für das Molekül auf der rechten Seite der Bayes-Definition einfacher wird.
Durch die Annahme der Unabhängigkeit
Die endgültige Formel des Bayes-Theorems lautet wie folgt.
P(y | x_{1},・ ・ ・ X._{n}) = \frac{P(y) * \prod_{i=1}^n (x_{i} | y)} {P(x_{1},・ ・ ・ X._{n})}
Zu diesem Zeitpunkt ist der Nenner $ P (x_ {1}, ... x_ {n}) $ ein fester Wert, sodass Sie nicht über die Berechnung der Wahrscheinlichkeit der Zugehörigkeit zur Klasse nachdenken müssen, um ihn zu ignorieren.
P(y | x_{1},・ ・ ・ X._{n}) \propto P(y) * \prod_{i=1}^n (x_{i} | y) \\
($ \ Proto $ ist ein Symbol, das proportional bedeutet.)
Dies gibt Ihnen die Wahrscheinlichkeit, in jede Klasse eingeteilt zu werden. Wenn Sie also feststellen, dass es sich um die Klasse mit der höchsten Wahrscheinlichkeit handelt, können Sie die Klasse schätzen.
\hat{y} = {\arg \max}_{y} P(y) * \prod_{i=1}^n (x_{i} | y)
Wenn die erklärende Variable ein kontinuierlicher Wert ist, wird die Methode, die davon ausgeht, dass sie einer Normalverteilung folgt, insbesondere als Gaußsche Naive Bayes bezeichnet.
Die Wahrscheinlichkeit, zu diesem Zeitpunkt zur Klasse zu gehören, kann wie folgt ausgedrückt werden.
p(x = v | c) = \frac{1}{\sqrt{2 * \pi * \sigma_c^{2}}} * \mathrm{e}^{-\frac{(v - \mu_{c})^{2}}{2 * \sigma_c^{2}}}
Probieren Sie Gaussian Naive Bayes mit dem Iris-Datensatz aus.
{do_gaussian_naive_bayes.py}
from sklearn import datasets #Zum Laden von Daten
from sklearn.cross_validation import train_test_split #Lernen/Zur Erstellung von Testdaten
from sklearn import metrics #Zur Genauigkeitsbewertung
from sklearn.naive_bayes import GaussianNB #Für die Ausführung von Gaussian Naive Bayes
#Datenaufbereitung
iris = datasets.load_iris()
X = iris.data
Y = iris.target
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, random_state=0)
#Gaußsche naive Bayes-Hinrichtung
model = GaussianNB() #Instanzgenerierung
model.fit(X_train, Y_train) #Ausführung der Modellerstellung
#Vorausschauende Ausführung
predicted = model.predict(X_test) #Vorausschauende Ausführung
metrics.accuracy_score(Y_test, predicted) #Genauigkeitsberechnung
> 1.0
Die Genauigkeit betrug 100%.
Recommended Posts