朴素贝叶斯多项式模型

问题描述 投票:1回答:2

对于电影评论数据集,我正在创建一个朴素的贝叶斯多项式模型。现在在训练数据集中,每种类型都有评论。因此,除了为电影评论数据集创建通用模型(忽略类型特征)之外,如何训练一个模型,该模型还考虑了类型特征以及与评论中出现的单词相关联的tf-idf。我是否需要为每种类型创建一个模型,还是可以将其合并到一个模型中?

Training Dataset Sample:
genre, review, classification
Romantic, The movie was really emotional and touched my heart!, Positive
Action, It was a thrilling movie, Positive
....

Test Data Set:
Genre, review
Action, The movie sucked bigtime. The action sequences didnt fit into the plot very well
python machine-learning scikit-learn classification naivebayes
2个回答
1
投票

来自documentationThe multinomial distribution normally requires integer feature counts。作为输入提供的分类变量,特别是如果它们被编码为整数,可能不会对模型的预测能力产生积极影响。如上所述,您可以考虑使用神经网络,也可以完全删除类型列。如果在拟合模型后仅对文本特征显示足够的预测能力,则甚至可能不需要将分类变量添加为输入。

我尝试这个任务的方式是stacking带有文本特征的虚拟分类值,并将堆叠的数组与目标标签一起馈送到SGD模型。然后,您将执行GridSearch以获得超参数的最佳选择。


0
投票

考虑将genre视为一个分类变量,可能使用虚拟编码(参见pd.get_dummies(df['genre'])),并将其以及tf-idf分数输入到模型中。

除了朴素贝叶斯之外,还要考虑其他模型类型 - 神经网络涉及变量之间的更多交互,并且可以帮助更好地捕捉不同类型之间的差异。 Scikit-learn也有MLPClassifier实现,值得一看。

© www.soinside.com 2019 - 2024. All rights reserved.