问题标签 [one-class-classification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
49 浏览

python - 澄清 sci-kit learn OneClass SVM 到底在做什么?它不适合超球面

根据有关 One-Class SVM 的大多数文档,该算法基本上试图拟合数据周围的超球面 (SVDD)。然而,sci kit learn 方法使用超平面来分离数据。这或多或少类似于标准 SVM 的工作方式。这是我的问题?

1.)在超平面世界中,分数(model.score_samples)是什么意思?(在 SVDD/超球世界中,分数是与原点的距离)

  • <w,x> + b > 0 其中 w 和 b 是我们试图优化的参数,b 是我们在不失一般性的情况下添加的偏差。

  • 因此,上述数量的SIGN会告诉我班级吗?

2.) 一旦w被优化,我们就得到了最好的决策边界。那么从这个意义上说,边际(从支持向量到决策边界的距离)是阈值吗?

3.)我的主要目标是使用分数来解释正在发生的事情并使用阈值来确定什么是异常值(我不想使用 model.predict)

4.)根据此链接,sci kit learn 正在尝试拟合 n-dim sphere :/ One Class SVM with a RBF Kernel

0 投票
1 回答
51 浏览

r - 一类 SVM 总是返回 FALSE

我的 ML 课程中有一个关于异常/新奇检测的项目,并决定研究本文所述的一类 SVM 算法:http ://research.microsoft.com/pubs/69731/tr-99-87.pdf . 在 R 的包e1071中有一个svm似乎支持一类分类的函数。但是,当我尝试使用它时,预测器总是返回 false(即使在训练集上,这是最奇怪的事情)。这是我的代码:

我的输出是:

我究竟做错了什么?

0 投票
1 回答
29 浏览

python - 获取 SVM 一类分类器的特征重要性

因此,我将 SVM 一类分类器 ( https://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html ) 用于异常检测项目。

该任务显示了一些有趣的准确性和 F1 分数,所以我想看看功能的重要性,但我对此有一些问题。我知道对于线性内核,我可以使用该.coef_属性,但我正在使用rbf内核,所以这不起作用。

我尝试通过以下方式使用sklearn.inspection.permutation_importancehttps://scikit-learn.org/stable/modules/permutation_importance.html ):

但我收到以下错误:

我还查看了 SHAP(https://shap.readthedocs.io/en/latest/index.html),但我很难使用它。

如果还有其他方法可以获取功能重要性,请告诉我。任何意见将不胜感激。