我试图通过学习一个属性来为朴素贝叶斯创建一个简单的例子。似乎我无法使用sklearn.naive_bayes.MultinomialNB从一个属性进行预测。这是因为predict_proba对于每个输入都是相同的。
以下是代码:
import numpy as np
X = np.array([1, 1, 1, 0, 0, 1, 1])
X = X.reshape(-1,1)
y = np.array([0, 0, 0, 0, 1, 1, 1])
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB()
clf.fit(X, y)
print(clf.predict(X))
print(clf.predict_proba(X))以及它的结果。
[0 0 0 0 0 0 0]
[[0.57142857 0.42857143]
[0.57142857 0.42857143]
[0.57142857 0.42857143]
[0.57142857 0.42857143]
[0.57142857 0.42857143]
[0.57142857 0.42857143]
[0.57142857 0.42857143]]发布于 2018-10-22 07:15:34
如果你的问题如你所说的被塑造,你可能需要重新考虑你天真的贝叶斯模型。MultinomialNB似乎不适合您的情况。您可以使用使用高斯分布的朴素Bayes分类器。
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
gnb.fit(X, y)
print(gnb.predict(X))
print(gnb.predict_proba(X))https://datascience.stackexchange.com/questions/40018
复制相似问题