我正在尝试使用 SVM 在相当不平衡的数据上构建预测模型。我的标签/输出分为三类,正面、中性和负面。我想说正面的例子约占我数据的 10-20%,中性的约占 50-60%,负面的约占 30-40%。我试图平衡这些类,因为与类之间的不正确预测相关的成本是不一样的。一种方法是对训练数据进行重新采样并生成一个同样平衡的数据集,该数据集大于原始数据集。有趣的是,当我这样做时,我倾向于对其他类获得更好的预测(例如,当我平衡数据时,我增加了正类的示例数量,但在样本外预测中,负类做得更好)。任何人都可以解释为什么会发生这种情况?如果我增加负类的示例数量,我是否会在样本外预测中得到与正类相似的结果(例如,更好的预测)?
对于我如何通过对错误分类施加不同的成本或使用 LibSVM 中的类权重(虽然不确定如何正确选择/调整这些)来解决不平衡数据的其他想法,我也非常开放。