【问题标题】:Naive Bayes multinomial model朴素贝叶斯多项式模型
【发布时间】:2019-02-21 18:23:14
【问题描述】:

对于电影评论数据集,我正在创建一个朴素贝叶斯多项式模型。现在在训练数据集中,每种类型都有评论。因此,与其为电影评论数据集创建一个通用模型——忽略类型特征,我如何训练一个模型,该模型除了与评论中出现的单词相关联的 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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      考虑将genre 视为分类变量,可能使用虚拟编码(请参阅pd.get_dummies(df['genre'])),并将其与 tf-idf 分数一起输入您的模型。

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

      【讨论】:

        猜你喜欢
        • 2015-06-05
        • 2013-09-09
        • 2018-12-24
        • 2020-05-26
        • 2012-06-09
        • 2015-01-03
        • 2020-04-22
        • 2012-02-11
        • 2019-05-10
        相关资源
        最近更新 更多