惩罚训练SVM中的误报

时间:2015-01-13 22:54:34

标签: libsvm encog

我正在尝试使用Encog内部的SVM训练二进制正/负分类器。在这种特定情况下,数据集非常不平衡,负面例子的数量大于正面例子大约30:1。

在模型的训练中,我故意对负面案例进行粗略抽样,以大致平衡给予模型的正面/负面情况,这种方法对我来说对其他问题很有效。然而,在这种情况下,最终模型最终会产生令人无法接受的高误报率,在不平衡测试集上测试时,误报的数量超过了真阳性的数量。

有关如何训练以减少误报率的任何建议?使用不平衡数据(或更接近观察到的平衡)进行训练将减少总体阳性预测的数量,但似乎不会增加真阳性与假阳性率。

1 个答案:

答案 0 :(得分:0)

听起来你的数据集是不可分的。在这种情况下,不平衡的设置可能导致性能不佳。在libsvm中,您可以为具有很少表示的标签分配更高的权重。

首先我建议保留所有底片,因为负片的特征空间可能更大,如果保留所有样品,则更有可能被覆盖。第二,你必须决定优化什么,例如(TP + TN)/(TP + TN + FP + FN)。现在,您为正面标签运行具有不同重量值的培训/评估,以根据您的定义找到最大性能。最终的性能取决于数据的可分离性。