【问题标题】:SVM classification with always high precision始终高精度的 SVM 分类
【发布时间】:2016-07-14 23:19:43
【问题描述】:

我有一个二元分类问题,我正在尝试为我的分类器获取精确召回曲线。我使用带有 RBF 内核和概率估计选项的 libsvm。

为了获得曲线,我将决策阈值从 0 更改为 1,步长为 0.1。但是在每次运行时,即使召回率随着阈值的增加而降低,我也会获得高精度。与真阳性相比,我的假阳性率似乎总是很低。

我的结果如下:

Threshold: 0.1
TOTAL TP:393, FP:1, FN: 49
Precision:0.997462, Recall: 0.889140

Threshold: 0.2
TOTAL TP:393, FP:5, FN: 70
Precision:0.987437, Recall: 0.848812

Threshold: 0.3
TOTAL TP:354, FP:4, FN: 78
Precision:0.988827, Recall: 0.819444

Threshold: 0.4
TOTAL TP:377, FP:9, FN: 104
Precision:0.976684, Recall: 0.783784

Threshold: 0.5
TOTAL TP:377, FP:5, FN: 120
Precision:0.986911, Recall: 0.758551

Threshold: 0.6
TOTAL TP:340, FP:4, FN: 144
Precision:0.988372, Recall: 0.702479

Threshold: 0.7
TOTAL TP:316, FP:5, FN: 166
Precision:0.984424, Recall: 0.655602

Threshold: 0.8
TOTAL TP:253, FP:2, FN: 227
Precision:0.992157, Recall: 0.527083

Threshold: 0.9
TOTAL TP:167, FP:2, FN: 354
Precision:0.988166, Recall: 0.320537

这是否意味着我有一个很好的分类器或者我在某个地方有一个根本性的错误?

【问题讨论】:

    标签: machine-learning classification svm libsvm


    【解决方案1】:

    其中一个原因可能是在训练数据时负样本多于正样本。因此,几乎所有的例子都被归类为负样本,除了少数。因此,您可以获得高精度,即更少的误报和低召回率,即更多的误报。

    编辑:

    现在我们知道负样本比正样本多:

    如果您查看结果,当您增加阈值时,假阴性的数量正在增加,即您的阳性样本被归类为阴性样本,这不是一件好事。同样,这取决于您的问题,有些问题更喜欢高精度而不是召回,有些问题更喜欢高召回而不是精度。如果您希望准确率和召回率都很高,您可能需要通过尝试过采样(重复正样本以使比率变为 1:1)或欠采样来解决类不平衡问题(按正样本的比例随机抽取负样本)或更复杂的算法,如 SMOTE 算法(添加相似的正样本)。

    另外,我确信分类器中必须有“class_weight”参数,这在训练示例较少的类中更加重视错误。您可能想尝试给予积极类比消极类更多的权重。

    【讨论】:

    • 感谢您的回答。是的,我的负样本数量比正样本多得多(大约 4:1 的比例)。然而,通过目视检查,它可以准确地对真阳性进行分类。我该如何进一步调查您提到的可能问题?
    • 关于训练样本大小的更新,无论我们有多少阈值,正样本比负样本少会导致测试以高精度分类吗?我观察到的行为是这样的,如果分类器将样本确定为阳性,则通常是正确的(通常概率 > 0.6, 0.7)。似乎它是黑白的。灰色区域太窄,模型将其归类为误报。
    • 没有完全明白你想说的,你能详细说明一下吗?
    • 我的意思是,误报率太低了。我有误报,但误报总是很低。如果它归类为阳性,则通常为真阳性。这种行为让我对一般性感到紧张。
    【解决方案2】:

    具有高精度可能意味着您的数据具有您的模型似乎很容易掌握的模式,因此它是一个很好的分类器。
    也许您的度量计算不正确或最有可能:您的模型是overfitting。这意味着您的模型不是在学习,而是在记忆。
    这可以通过在您的训练集上测试您的模型来产生。

    【讨论】:

    • 感谢您的回答。事实上,我使用与用于此测试结果的完全不同的集合来训练模型。但在另一组中,我的结果并不好。因此,即使我的训练集不同,我的模型也可能有偏差,我不确定。
    猜你喜欢
    • 2019-02-06
    • 2018-03-12
    • 2013-07-22
    • 2021-09-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2021-02-07
    • 2014-12-02
    相关资源
    最近更新 更多