关于sklearn中OSVM实现的困惑

我最近开始尝试使用Sklearn进行无监督学习的OneClassSVM,并按照这个例子进行操作。

我为这些简单的问题道歉,但我对两件事有些困惑:

  1. 我应该在常规示例案例和异常值上训练我的SVM,还是只在常规示例上进行训练?

  2. OSVM预测的标签中,哪个代表异常值,是1还是-1?

再次为这些问题道歉,但我实在找不到任何相关的文档说明。


回答:

你所引用的这个例子是关于新奇检测的,文档中提到:

新奇检测:

训练数据中不包含异常值,我们感兴趣的是检测新观测中的异常情况。

这意味着:你应该只在常规示例上进行训练。

这种方法基于:

Schölkopf, Bernhard, et al. “Estimating the support of a high-dimensional distribution.” Neural computation 13.7 (2001): 1443-1471.

摘录如下:

假设你从一个基础概率分布P中获取了一些数据集,你希望估计输入空间的一个“简单”子集S,使得从P中抽取的测试点落在S之外的概率等于某个预先指定的介于0和1之间的值。

我们提出了一种方法,通过尝试估计一个在S上为正,在其补集上为负的函数f来解决这个问题。

上述文档还提到:

内部值被标记为1,而异常值被标记为-1。

这也可以在你的示例代码中看到,摘录如下:

# 生成一些常规的新观察X = 0.3 * np.random.randn(20, 2)X_test = np.r_[X + 2, X - 2]...# 所有常规值 = 内部值(如上所定义)y_pred_test = clf.predict(X_test)  ...# -1 = 异常值 <-> 假定为内部值的错误n_error_test = y_pred_test[y_pred_test == -1].size  

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注