对于单类SVM,是否可以确定检测到的异常值中的哪些参数是异常的?

时间:2016-06-15 22:04:58

标签: machine-learning svm

例如,我用每加仑英里数,马力和价格训练了我的单级SVM:

(19.5,140.0,32000)
(24.1,200.0,40000)
(15.2,101.2,45000)

当我输入时:
(23.3,105.2,1000000)

它被正确识别为异常值。但我也对为什么这是一个异常值感兴趣。有没有办法让SVM告诉我价格太高了?

1 个答案:

答案 0 :(得分:3)

如果你使用的是非线性的一类SVM(而线性的一类并没有意义),那么简短的答案就是否定。一个类svm中的离群值检测不是一组简单的规则,而特征x必须在A和B之间。#34;。它基于估计数据集的边界,因此唯一有效的答案是"这是一个异常值,因为在使用的内核引起的度量中,到边界的距离是A,而在训练期间找到的可接受的是B&#34 ;.

特别是,这意味着决定是高度非线性的,因此(23.3,105.2,1000000)可以是异常值,(23.3,105.2,999999)inlier,(23.3,105.2,999998)也是异常值,和(23.3,105.2,999997)再次成为一个内部(显然有不同的训练集)。