【问题标题】:One-class Support Vector Machine Sensitivity Drops when the number of training sample increase当训练样本数量增加时,一类支持向量机灵敏度下降
【发布时间】:2014-08-23 19:44:55
【问题描述】:

我正在使用一类 SVM 进行异常值检测。可以看出,随着训练样本数量的增加,One-Class SVM 检测结果的敏感性 TP/(TP+FN) 下降,分类率和特异性均增加。

用超平面和支持向量来解释这种关系的最佳方式是什么?

谢谢

【问题讨论】:

    标签: machine-learning svm libsvm


    【解决方案1】:

    您拥有的训练示例越多,您的分类器就越无法正确检测到真阳性。

    这意味着新数据与您正在训练的模型不正确匹配。

    这是一个简单的例子。

    下面有两个类,我们可以使用线性内核轻松地将它们分开。 蓝色类的灵敏度为1。

    随着我在决策边界附近添加更多黄色训练数据,生成的超平面无法像以前那样拟合数据。

    因此,我们现在看到有两个错误分类的蓝色数据点。 蓝色类的灵敏度现在是 0.92

    随着训练数据数量的增加,支持向量会生成一个不太理想的超平面。也许由于额外的数据,线性可分数据集变得非线性可分。在这种情况下尝试不同的内核,例如 RBF 内核会有所帮助。

    编辑:添加有关 RBF 内核的更多信息:

    In this video 你可以看到 RBF 内核发生了什么。 同样的逻辑也适用,如果训练数据在 n 维上不容易分离,那么结果会更差。

    您应该尝试使用交叉验证来选择更好的 C。

    this paper 中,图 3 说明如果 C 选择不当,结果可能会更糟:

    如果我们没有选择合适的 C,更多的训练数据可能会受到伤害。我们需要 对正确的 C 进行交叉验证以产生良好的结果

    【讨论】:

    • 嗨@alexandrekow,感谢您的回答。我用的是RBF内核,还是有这个问题。
    猜你喜欢
    • 2017-09-19
    • 2013-07-14
    • 2020-10-26
    • 2021-04-10
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    相关资源
    最近更新 更多