多项朴素贝叶斯中coef_和feature_log_prob_之间的区别?

时间:2018-10-24 18:29:26

标签: machine-learning scikit-learn classification naivebayes multinomial

下面的代码代表sklearn多项朴素贝叶斯。

import numpy as np
from sklearn.naive_bayes import MultinomialNB
X = np.random.randint(5, size=(10, 100))
y=np.random.randint(2,size=(10,))
clf = MultinomialNB()
clf.fit(X, y)

然后我想找出模型中的重要功能,在sklearn文档中,我们有两个参数。

 feature_log_prob_ : array, shape (n_classes, n_features)
 Empirical log probability of features given a class, P(x_i|y).

coef_ : array, shape (n_classes, n_features)
Mirrors feature_log_prob_ for interpreting MultinomialNB as a linear model.

然后,如果我尝试同时打印两个属性

print(clf.feature_log_prob_.shape)  // giving (2,100)
print(clf.coef_.shape)         // giving (1,100)

但是当我的班级超过两个时,两个属性都给出相同的结果。

以上两个属性之间有什么区别?

1 个答案:

答案 0 :(得分:0)

在标准二进制分类coef_中,您可以观察到“成功”类别。在多项情况下,coef_返回观察每个结果的概率,即对于所有类别,它都将返回概率分数。