【问题标题】:Penalize false positives in training SVM在训练 SVM 时惩罚误报
【发布时间】:2015-03-12 01:13:09
【问题描述】:

我正在尝试使用 Encog 内部的 SVM 训练二进制正/负分类器。在这种特定情况下,数据集高度不平衡,负例与正例的比例大约为 30:1。

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

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

【问题讨论】:

标签: libsvm encog


【解决方案1】:

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

首先我建议保留所有底片,因为底片的特征空间可能要大得多,如果保留所有样本,则更有可能被覆盖。其次,您必须决定要优化什么,例如(TP+TN)/(TP+TN+FP+FN)。现在,您对正标签使用不同的权重值运行训练/评估,以根据您的定义找到最大性能。最终性能取决于数据的可分离性。

【讨论】:

    猜你喜欢
    • 2014-10-10
    • 2016-08-09
    • 1970-01-01
    • 2015-05-04
    • 2015-07-25
    • 2012-11-03
    • 2015-04-18
    • 2015-01-22
    相关资源
    最近更新 更多