当只有一个特征时,为什么MultinomialNB输出0.5?

时间:2018-01-19 03:56:38

标签: python machine-learning scikit-learn naivebayes

一个朴素的贝叶斯分类问题

代码

import numpy as np
X = np.array([[1], [2], [3], [4], [5], [6]], dtype=int)
Y = np.array([1, 1, 1, 0, 0, 0], dtype=int)

from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB()
clf.partial_fit(X, Y, [0, 1])
print clf.predict_proba(X)

输出

[[ 0.5  0.5]
 [ 0.5  0.5]
 [ 0.5  0.5]
 [ 0.5  0.5]
 [ 0.5  0.5]
 [ 0.5  0.5]]

MultinomialNB似乎只计算先验概率

如何解决这个问题?

例如,预期输出

[[ 0.1  0.9]
 [ 0.1  0.9]
 [ 0.1  0.9]
 [ 0.9  0.1]
 [ 0.9  0.1]
 [ 0.9  0.1]]

0 个答案:

没有答案