我正在将Twitter消息标记为正,负,中性。我试着理解是否有一些逻辑可以用来识别训练集的消息应该是正/负和中性的比例?
因此,例如如果我正在培训带有1000条推特消息的Naive Bayes分类器,那么pos:neg:neutral的比例应为33%:33%:33%或应该是25%:25%:50%
从逻辑上讲,我似乎在训练(即提供更多中性样本),系统会更好地识别中性句子,然后判断它们是正面还是负面 - 这是真的吗?或者我在这里错过了一些理论?
由于 拉胡尔
答案 0 :(得分:3)
你所指的问题被称为不平衡问题。当面对不平衡的训练数据时,即当一个类的实例远远超过另一个类的实例时,许多机器学习算法表现不佳。阅读this article以更好地了解问题以及如何处理问题。对于像朴素贝叶斯或决策树这样的技术,以某种方式平衡数据总是一个好主意,例如:通过随机过采样(在参考文件中解释)。我不同意mjv的建议,即让训练集与现实世界中的比例相匹配。这在某些情况下可能是合适的,但我相信它不在您的环境中。对于像您描述的那样的分类问题,类集的大小越不同,大多数ML算法在正确区分类时都会遇到问题。但是,您可以随时使用有关哪个类在实际中最大的信息作为后备,以便当分类器对特定实例的置信度较低或者此实例根本无法进行分类时,您可以将其分配给它最大的一类。
还有一句话:在Twitter消息中找到积极性/消极性/中立性似乎是一个程度问题。因此,它可能被视为回归而不是分类问题,即您可能想要计算一个分数,而不是三类方案,该分数告诉您消息是如何正/负。
答案 1 :(得分:1)
还有许多其他因素......但重要的一个因素(在确定合适的训练数据比率和数量时)是现实世界中每种信息类别(正面,中性,负面)的预期分布。实际上,训练集(和控制集)的良好基线是
训练集中某类消息的[相对]丰度的影响很难确定;在任何情况下,它都是一个较小的因素 - 或者更确切地说是对其他因素高度敏感的因素。分类器的整体或特定类别的准确性的提高通常更多地与分类器的具体实现相关联(例如贝叶斯,什么是令牌,消除噪声令牌,是否接近一个因素,我们使用bi-gram等...而不是纯粹的定量训练集的特征。
虽然上述内容通常是事实但对选择训练集的大小和构成有一定的帮助,但是当有足够的训练大小和组成时,有确定事后的方法数据已经提供。
实现此目的的一种方法是引入一个控制集,即一个手动标记但不是训练集的一部分,并测量具有训练集的各种子集的不同测试运行,每个类别获得的召回和精度(或一些类似的精度测量),对此控制集的分类。当这些测量值没有改善或降低时,超出了统计上的代表性,训练[子]集的大小和组成可能是正确的(除非它是一个过度拟合的集:-(,但这完全是另一个问题)。 ..)
这种方法意味着人们使用的训练集可能是有效需要的训练子集大小的3到5倍,因此可以随机(在每个类别中)构建各种测试的许多不同子集。