这个朴素贝叶斯多项式模型代码的预期结果是什么

what is the expected result for this naive bayes multinomial model code

预期结果应该是什么

当我手动计算时,我得到 P(y=1|x=1) > P(y=0|x=1)。但模型预测输出为 0。

from sklearn.naive_bayes import GaussianNB,MultinomialNB
xx = [[1],[1],[1],[2],[2],[3]]
yy = [1,1,1,0,0,0]
# clf = GaussianNB()
clf = MultinomialNB()
clf.fit(xx,yy)
print(clf.predict([[1]]))

我还尝试将 alpha 参数从 1 更改为 1000。对于输入 = 1,输出仍然是 0。

对于多项式朴素贝叶斯,该模型假定特征是来自多项式分布的计数。 下面的代码应该清楚这一点:

import numpy as np
from sklearn.naive_bayes import MultinomialNB
from sklearn.preprocessing import MultiLabelBinarizer

xx = [[1],[1],[1],[2],[2],[3]]
yy = [1,1,1,0,0,0]

mlb = MultiLabelBinarizer()
xxtransformed =  mlb.fit_transform(xx)
print(xxtransformed)
# [[1 0 0]
# [1 0 0]
# [1 0 0]
# [0 1 0]
# [0 1 0]
# [0 0 1]]

clf = MultinomialNB()
clf.fit(xxtransformed,yy)
print(mlb.transform(np.array([[1]])))
#[[1 0 0]]
print(clf.predict(mlb.transform(np.array([[1]]))))
#[1]

事实上,我们得到了 1

的预期预测

你好 Dbaker 这背后的原因是什么......为什么在 Bhanu raja 发布之前它不起作用以及为什么你的回答有效....