scikit-learn one class svm分数解读

数据挖掘 scikit-学习 支持向量机 异常检测
2021-09-16 18:20:26

如何解释函数score_samples(X)从 scikit-learnOneClassSVM模型生成的分数?有没有办法判断一个样本何时比另一个样本“更异常”?predict()anddecision_function()函数有符号信息,而函数没有符号信息score_samples

from sklearn.svm import OneClassSVM

X = [[0], [0.44], [0.45], [0.46], [1]]
clf = OneClassSVM(gamma='auto').fit(X)

clf.predict(X)
# array([-1,  1,  1,  1, -1])

clf.score_samples(X)
# array([1.7798..., 2.0547..., 2.0556..., 2.0561..., 1.7332...])
```
1个回答

sample_scores 值以及截止阈值用于确定值是否为异常值。如果您尝试比较这些 sample_score 值以查看哪些值可能比其他值更异常,则应该小心。如果您只想消除异常值以从数据集中消除它们,则仅在异常值上使用此值不足以消除它。