我有一个电影评论数据集,我想对此进行情感分析。
我已经使用逻辑回归实现了这一点。以下是我在此过程中采取的步骤:
现在,我需要使用朴素贝叶斯实现相同的事情,而我对于如何解决此问题感到困惑。我认为前4个步骤将是相同的。但是使用朴素贝叶斯的训练步骤是什么?在这种情况下,损失函数和成本函数是什么?在哪里使用贝叶斯定理计算条件概率?以及如何更新权重和偏见?
我在网络上搜索了很多资源,而我只发现了使用sklearn并带有model.fit和model.predict的实现,因此我很难弄清其背后的数学以及如何实现使用香草python来实现。
答案 0 :(得分:0)
对于Logistic回归或SVM,该模型正在尝试预测最适合数据的超平面。因此,这些模型将确定weights and biases
。
Naive Bayes
是一种概率方法。这完全取决于Bayes' theorem。
NB中将有NO
个权重和偏差,每个特征将只有CLASS WISE
个概率值(即,在文本情况下为words
)。
为避免零概率或处理看不见的数据(文本为words
),请使用拉普拉斯平滑。
α
被称为平滑因子。这将是NB中的超参数
使用log
来保持数值稳定性。
测试示例:This movie is great
删除停用词后:movie great
从训练数据中,我们已经知道movie
和great
类的单词+ve
和-ve
的概率值。请参阅STEP 2
。
great
类的{li> 概率+ve
大于great
类的-ve
概率。对于movie
一词,概率值可能几乎相同。 (这在很大程度上取决于您的训练数据。在这里我只是做一个假设)
正类概率= P({
movie
/ + ve)* P(great
/ + ve)负类概率= P({
movie
/-ve)* P(great
/-ve)
PS
如果句子中的单词数很大,则类别值将变得非常小。使用
log
将解决此问题。如果训练集中没有单词
great
,则类概率值为0。因此请使用smoothening factor-α
(拉普拉斯平滑)
有关更多详细信息,请参考sk-learn naive bayes