我正在尝试使用python的sklearn包构建一个情感分析引擎。问题在于分析烂番茄对这个Kaggle比赛的评论。
https://www.kaggle.com/c/sentiment-analysis-on-movie-reviews
这种情绪可以采取5个可能的价值。
我使用以下分类器
由于这些都是适合于二进制分类的线性分类器,下面是我必须采取的步骤
我的问题是,我可以看到,有许多评论,我的分类器不能放在任何类别!为什么会发生这种事?这可能是由于数据集的小大小造成的吗?
发布于 2015-10-02 22:38:50
重申一下,问题在于,您所培训的五个二进制模型并不是相互详尽的。有几种可能性。首先,你对这五种情绪中的每一种都有100%干净的分类,还是有一些公认的分类错误?
您需要一个相互排斥且详尽无遗的集合。你的方法表明,但很难保证这一结果。您可能会考虑一种集成的解决方案,它确实提供了这种保证。多类支持向量机就是其中之一,但可能不能很好地适用于你的情况.
如果这些类不是100%的精确性,那么很容易让所有五个类都拒绝特定的观察。这表明您的分类算法需要调优,或者数据本身并不像您所希望的那样易于分类。
您还可以检查是否已经适当地清除了该数据;一些错误可能会严重地移动类边界。
我怀疑正在发生的是一个小的边界效应:与其他四个类的组合相比,每一个类都“拉”了它的边界,在最后几组之间留下了无人认领的区域。
你有方法检查训练后的分类参数吗?如果是这样的话,你能可视化所选择的五个边界吗?如果你确实发现了病理性的空白,是否有你可以调整的训练参数,比如给训练组一个更大的感应器?
我希望这能帮到你。
https://stackoverflow.com/questions/32913155
复制相似问题