情感分类中的缺失值

2024-05-14 03:57:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python的sklearn包构建一个情绪分析引擎。 问题是分析关于这个卡格尔竞赛的烂番茄评论

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. 创建一个管道并将所有测试集部分一个接一个地提供给我的分类器。我将为每个部分存储一个结果。所以,第一部分的分类结果是当事人等。任何在聚会上被标记为积极的东西都属于情绪“a”。其他零件也一样。

  4. 最后,我想合并所有5个部分的结果。我来看看聚会的人。任何被标记为积极的东西都会变成情绪“a”。其他部分我也会这样做。然后我简单地合并结果。

  5. 如果我没有重叠或重复,那将是理想的。但我有少量的复制品,这很好。我可以添加一些逻辑来处理这个问题。

  6. 我会对所有三个分类器都这样做,最后我想找出哪个分类器给我最好的结果。

我的问题是,我可以看到有许多评论,我的分类器无法将其放入任何类别!为什么会这样?因为数据集太小了?在


Tags: 数据https标记引擎分类器www评论分类
1条回答
网友
1楼 · 发布于 2024-05-14 03:57:02

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

你需要一个互斥的穷尽的集合。你的方法表明,但很难保证这一结果。您可以考虑使用一个集成的解决方案来保证这一点。多类支持向量机就是这样一种,但可能不适合您的情况。在

如果这些类不是100%准确,那么很容易让所有五个类都拒绝某个特定的观察结果。这表明您的分类算法需要调整,或者数据本身并不像您希望的那样适合分类。在

您还可以检查是否已适当地清理了这些数据;一些错误会严重地移动类边界。在

我怀疑正在发生的是一个小的边界效应:当与其他四个类的组合进行比较时,每一个类都“拉入”了它的边界,在最后几组之间留下了无人认领的领土。在

你有办法在培训后检查分类参数吗?如果是这样,你能想象出所选的五个边界吗?如果你真的发现了病理性的空白,你有没有可以调整的训练参数,比如给训练组一个更大的epsilon?在

我希望这有帮助。在

相关问题 更多 >