情感分类中的缺失值

AbtPst

我正在尝试使用python的sklearn包构建情感分析引擎。问题是在分析Kaggle竞赛上的烂番茄评论

https://www.kaggle.com/c/sentiment-analysis-on-movie-reviews

情绪可以取5个可能的值

我正在使用以下分类器

  1. 多项式朴素贝叶斯
  2. 逻辑回归
  3. 随机梯度下降

由于这些都是适用于二进制分类的线性分类器,因此这是我必须采取的步骤

  1. 将训练和测试集分为5个部分,每个情感分为一个部分。假设情感的可能值为a,b,c,d,e。因此,在我的数据的第一部分中,我将拥有所有评论,但是将具有“ a”感的评论标记为正面,而所有其他评论都标记为负面。同样,我为其他情绪值创建其他部分。

  2. 清理所有5部分中的数据

  3. 创建一条管道,然后将所有测试集零件依次输入我的分类器。我将为每个零件存储一个结果。因此对第一部分进行分类的结果是partOneRes等。partOneRes中标记为肯定的任何内容都属于情感“ a”。其他部分也是如此。

  4. 最后,我想结合所有5个部分的结果。我将看partOneRes。标记为肯定的任何内容都将更改为情感“ a”。对于其他所有部分,我也会做类似的事情。然后我简单地合并结果。

  5. 如果我没有重叠或重复,那将是理想的。但是我得到了一小部分重复,这很好。我可以添加一些逻辑来处理。

  6. 我将对所有三个分类器都执行此操作,最后我想找出哪个分类器能给我最好的结果。

我的问题是我可以看到分类器无法在任何类别中添加很多评论!为什么会这样?可能是因为数据集的规模太小了吗?

修剪

重申一下,问题在于您所训练的五个二进制模型并不相互穷举。有几种可能性。首先,您是否对这五种情感有100%的清晰分类,还是存在一些公认的分类错误?

您需要一个互斥穷举的集合您的方法建议(但几乎不能保证)此结果。您可能会考虑采用能够确保这一点的集成解决方案。多类SVM就是这样的一种,但可能不适用于您的情况。

如果分类不是100%准确的,您可以很容易地让所有五个拒绝特定的观察。这表明分类算法需要调整,或者数据本身不如您所愿地适合分类。

您可能还需要检查是否已正确清理了该数据。一些错误会严重改变班级界限。

我怀疑正在发生的是一个小边界效应:与其他四个类别的组合相比,每个类别都“拉入”其边界,从而在最后一组之间保留了无人认领的领土。

训练后您有办法检查分类参数吗?如果是这样,您可以形象地显示所选的五个边界吗?如果您确实发现了病理学差距,是否可以调整训练参数,例如将更大的epsilon给予训练组?

我希望这有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

缺失值,分类任务

来自分类Dev

处理缺失的分类值ML

来自分类Dev

NLTK分类器在情感分析中仅给出否定答案

来自分类Dev

NLTK分类器在情感分析中仅给出否定答案

来自分类Dev

python情感分类

来自分类Dev

使用特定列在scikit-learn中估算分类缺失值

来自分类Dev

使用scikit学习OneHotEncoder时如何处理分类数据中的缺失值(NaN)?

来自分类Dev

LightGBM:分类特征中的负值(即缺失值)是否被视为单独的类别?

来自分类Dev

打开词典以分类情感词

来自分类Dev

打开词典以分类情感词

来自分类Dev

填补组中的缺失值

来自分类Dev

处理Growthcurver中的缺失值

来自分类Dev

填写R中的缺失值

来自分类Dev

lmer 与 gls 中的缺失值

来自分类Dev

在 SQL 中插入缺失值

来自分类Dev

替换R中分类变量中的缺失数据

来自分类Dev

带有单词袋和sklearn中附加情感功能的文本分类器

来自分类Dev

用R中的特定列填充缺失值的缺失日期

来自分类Dev

Python 中 JSON 解码中的缺失值

来自分类Dev

对于IN列表中的缺失值返回NULL

来自分类Dev

不插值Highcharts中的缺失日期

来自分类Dev

在ggplot中包括缺失值的数量

来自分类Dev

在聚合函数中获取缺失值

来自分类Dev

联接表以查找列中的缺失值

来自分类Dev

如何更新子记录中的缺失值?

来自分类Dev

Weka中名义属性的值缺失

来自分类Dev

使用for循环查找数组中的缺失值

来自分类Dev

处理Python Lambda函数中的缺失值

来自分类Dev

更新数据框中的缺失值