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

Posted

技术标签:

【中文标题】多项朴素贝叶斯中 coef_ 和 feature_log_prob_ 的区别?【英文标题】:difference between coef_ and feature_log_prob_ in multinomial naive bayes? 【发布时间】:2019-03-29 06:26:29 【问题描述】:

以下代码表示 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】:

在标准二元分类中coef_ 为您提供观察“成功”类别的概率。在多项式情况下,coef_ 返回观察每个结果的概率,即对于所有类别,它将返回概率分数。

【讨论】:

以上是关于多项朴素贝叶斯中 coef_ 和 feature_log_prob_ 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

在朴素贝叶斯中的概率估计中的 m 应该被视为啥

如何在高斯朴素贝叶斯中获得特征重要性

机器学习面试题——朴素贝叶斯

机器学习:贝叶斯分类器——高斯朴素贝叶斯分类器代码实现

sklearn-朴素贝叶斯

在 Scala Spark 中使用数据框的朴素贝叶斯多项式文本分类器