Python - 带有朴素贝叶斯的 SelectFromModel

Posted

技术标签:

【中文标题】Python - 带有朴素贝叶斯的 SelectFromModel【英文标题】:Python - SelectFromModel with Naive-Bayes 【发布时间】:2018-02-24 12:02:20 【问题描述】:

我在文本分类任务中使用SelectFromModel 和MultinomialNB 进行特征选择。

SelectFromModel(estimator=MultinomialNB(alpha=1.0))

SelectFromModel 通过计算确定特征的重要性:

importances = np.linalg.norm(estimator.coef_, axis=0,ord=norm_order)

但这不是和我想要的完全相反吗,因为高频率的特征会导致低绝对值?

对于确定给定特定类别的特征的重要性,已经有多个得到很好回答的问题,但对于一般特征重要性而言,则不是。

有没有办法通过 SelectFromModel 结合 NB 来确定特征重要性,还是其他方法更适合这项任务?

【问题讨论】:

请详细说明一下。您所说的“高频饮食”是什么意思?此外,这是一项分类任务,因此显然特征重要性将根据类别而定。你能详细解释一下你想要什么吗? 我指的是具有高词频的特征(在文档中),例如使用 CountVectorizer。 SelectFromModel 基本上确定了分类任务中每个特征的重要性,并选择应该适用于 SVC 等分类器的“最重要特征”,但正如我试图解释的那样,它似乎不适用于 NB。 【参考方案1】:

有一个称为交叉验证的递归特征消除功能,也称为RFECV in sklearn。它尝试根据特征的重要性递归地对特征进行排名,并执行交叉验证以获得指定估计器的最佳特征数量。您可以查看example here 了解更多信息。

我不确定为什么 selectFromModel 不能与 NaiveBayes 一起使用。如果我发现任何相关内容,我将更新此答案。同时,您可以检查 RFECV 是否适合您的需求。

【讨论】:

以上是关于Python - 带有朴素贝叶斯的 SelectFromModel的主要内容,如果未能解决你的问题,请参考以下文章

机器学习:朴素贝叶斯的python实现

关于朴素贝叶斯的一些理解及python的简单实现

python实现随机森林逻辑回归和朴素贝叶斯的新闻文本分类

详解基于朴素贝叶斯的情感分析及 Python 实现

详解基于朴素贝叶斯的情感分析及Python实现

朴素贝叶斯的理解