Scikit-Learn Warum funktioniert das folgende triviale Code-Schnipsel:
from sklearn.naive_bayes import *
import sklearn
from sklearn.naive_bayes import *
print sklearn.__version__
X = np.array([ [1, 1, 1, 1, 1],
[0, 0, 0, 0, 0] ])
print "X: ", X
Y = np.array([ 1, 2 ])
print "Y: ", Y
clf = BernoulliNB()
clf.fit(X, Y)
print "Prediction:", clf.predict([0, 0, 0, 0, 0])
Drucken Sie eine Antwort "1"? Nachdem ich das Modell auf [0,0,0,0,0] => 2 trainiert hatte, erwartete ich "2" als Antwort.
Und warum ersetzt Y mit
Y = np.array([ 3, 2 ])
Geben Sie eine andere Klasse "2" als Antwort (die richtigen)? Ist das nicht nur ein Klassenlabel?
Kann jemand etwas Licht darauf werfen?
Sie haben Recht, Änderung Y sollte nichts ändern. Ich könnte mit dem aktuellen Master reproduzieren. Ich denke, das hat damit zu tun, dass der Klassifikator unentschlossen ist. –
Mit 0.18.2 bekomme ich 2 ohne Alpha zu ändern. – Aaron