【发布时间】:2014-08-23 19:44:55
【问题描述】:
我正在使用一类 SVM 进行异常值检测。可以看出,随着训练样本数量的增加,One-Class SVM 检测结果的敏感性 TP/(TP+FN) 下降,分类率和特异性均增加。
用超平面和支持向量来解释这种关系的最佳方式是什么?
谢谢
【问题讨论】:
标签: machine-learning svm libsvm
我正在使用一类 SVM 进行异常值检测。可以看出,随着训练样本数量的增加,One-Class SVM 检测结果的敏感性 TP/(TP+FN) 下降,分类率和特异性均增加。
用超平面和支持向量来解释这种关系的最佳方式是什么?
谢谢
【问题讨论】:
标签: machine-learning svm libsvm
您拥有的训练示例越多,您的分类器就越无法正确检测到真阳性。
这意味着新数据与您正在训练的模型不正确匹配。
这是一个简单的例子。
下面有两个类,我们可以使用线性内核轻松地将它们分开。 蓝色类的灵敏度为1。
随着我在决策边界附近添加更多黄色训练数据,生成的超平面无法像以前那样拟合数据。
因此,我们现在看到有两个错误分类的蓝色数据点。 蓝色类的灵敏度现在是 0.92
随着训练数据数量的增加,支持向量会生成一个不太理想的超平面。也许由于额外的数据,线性可分数据集变得非线性可分。在这种情况下尝试不同的内核,例如 RBF 内核会有所帮助。
编辑:添加有关 RBF 内核的更多信息:
In this video 你可以看到 RBF 内核发生了什么。 同样的逻辑也适用,如果训练数据在 n 维上不容易分离,那么结果会更差。
您应该尝试使用交叉验证来选择更好的 C。
在this paper 中,图 3 说明如果 C 选择不当,结果可能会更糟:
如果我们没有选择合适的 C,更多的训练数据可能会受到伤害。我们需要 对正确的 C 进行交叉验证以产生良好的结果
【讨论】: