sklearn.svm.OneClassSVM用户手册(中文)

OneClassSVM是一种无监督的异常值检测算法,基于libsvm实现,用于估计高维分布的支持。本文详细介绍OneClassSVM的参数配置,包括kernel、gamma、nu等,以及其属性和方法,如decision_function、fit、predict等。
class sklearn.svm.OneClassSVM(kernel='rbf', degree=3, gamma='scale', coef0=0.0, tol=0.001, nu=0.5, shrinking=True, cache_size=200, verbose=False, max_iter=-1)

无监督异常值检测。
估计高维分布的支持。
该实现基于libsvm。
用户手册里面可以了解更多关于异常检测的知识。

参数(kernel,gamma,nu和tol比较重要)

kernel: string, optional (default=’rbf’),
核函数,字符串型,可选择的,默认为’rbf’,即高斯核
指定算法中要使用的内核类型。 它必须是“linear”,“poly”,“ rbf”,“ sigmoid”,“precomputed”或可调用项之一。 如果没有给出,将使用“ rbf”。 如果给出了可调用对象,则将其用于预先计算内核矩阵。

degree: int, optional (default=3)
阶数,整形,可选择的。
多项式内核函数(“ poly”)的阶数。 被所有其他内核忽略

gamma:{‘scale’, ‘auto’} or float, optional (default=’scale’)
内核系数,{‘scale’, ‘auto’}或者浮点型,可选择的,默认为’scale’
“ rbf”,“ poly”和“ Sigmoid”的内核系数。
如果传递了gamma =‘scale’(默认值),则它将1 /(n_features * X.var())用作gamma值,
如果为‘auto’,则使用1 / n_features。
在版本0.22中进行了更改:gamma的默认值从‘auto’更改为’scale’。

coef0:float, optional (default=0.0)
内和参数,浮点型,可选择的,默认为0.0
内核函数中的独立参数。 它仅对“ poly”和“ sigmoid”有意义。

tol:float, optional
停止标准的度量

nu:float, optional
训练误差分数的上限,支持向量分数的下限。 应该在间隔(0,1]中。默认情况下,取0.5。

shrinking:boolean, optional
布尔值,可选的
是否使用缩小的启发式方法。

cache_size:float, optional
指定内核缓存的大小(以MB为单位)。

verbose:bool, default: False
启用详细输出。 请注意,此设置利用了libsvm中每个进程的运行时设置,如果启用了该设置,则该设置可能无法在多线程上下文中正常工作。

max_iter:int, optional (default=-1)
对求解器内的迭代进行硬性限制,或者为-1(无限制)。

属性

support_:列向量(n_SV)
支持向量的索引

support_vectors_:矩阵(n_SV, n_features)
支持向量

dual_coef_:行向量,shape = [1, n_SV]
分配给特征的权重(原始问题的系数)。 仅在线性内核的情况下可用。
coef_是从dual_coef_和support_vectors_派生的只读属性

intercept_:行向量,shape = [1,]
决策函数中的常数。

offset_:浮点型
偏移量用于根据原始分数定义决策函数。 我们具有以下关系:Decision_function = score_samples-offset_。 该偏移量与intercept_相反,并且为与其他异常值检测算法保持一致而提供。

fit_status_:整型
如果正确安装,则为0,否则为1(将发出警告)

例子

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)  # doctest: +ELLIPSIS
##array([1.7798..., 2.0547..., 2.0556..., 2.0561..., 1.7332...])

方法

decision_function(self, X):
到分离超平面的距离。
如果样本在分离超平面的里面则距离是正的,反之距离是负的。
参数:
X:shape (n_samples, n_features)
返回值:
dec:shape (n_samples,)
返回样本的决策函数

fit(self, X, y=None, sample_weight=None, **params)
检测样本集合X的软边界
参数
X:shape (n_samples, n_features)
样本集,其中n_samples是样本数,n_features是特征数。

sample_weight:shape (n_samples,)
每样本权重。 每个样品重新定标C。 较高的权重迫使分类器更加强调这些要点。

y:被忽略
未使用,按惯例提供API一致性。

返回
self:object

注意
如果X不是C顺序的连续数组,则将其复制。

fit_predict(self, X, y=None)
对X执行拟合并返回X的标签。
对于离群值返回-1,对于群体内的值返回1。

参数
X:shape (n_samples, n_features)
输入数据

y:忽略

get_params(self, deep=True)
获取此估计量的参数。

参数
deep:布尔值,默认为True
如果为True,则将返回此估计量和作为估计量的包含子对象的参数。

返回:参数名称映射到其值。

predict(self, X)
对X中的样本执行分类。对于一类模型,返回+1或-1。

参数
X:shape=(n_samples, n_features)
对于内核=“precomputed”,X的预期形状为[n_samples_test,n_samples_train]

返回
X的分类标签

score_samples(self, X)
样本的原始评分功能。

参数
X:(n_samples, n_features)

返回
返回样本的(未移位)评分函数。

set_params(self, **params)
设置此估算器的参数。
该方法适用于简单的估计器以及嵌套对象(例如管道)。

参数
**params:估计器参数

返回
估算器实例。

`sklearn.svm` 库是 `scikit-learn` 机器学习库中的一个模块,主要用于支持向量机(SVM)算法的实现。支持向量机是一种强大的监督学习方法,可用于分类和回归任务。以下是 `sklearn.svm` 库的一些主要作用和使用示例: ### 分类任务 `sklearn.svm` 库可用于分类任务,例如使用 `SVC`(支持向量分类器)进行分类。以下是一个简单的示例代码: ```python from sklearn.svm import SVC import numpy as np from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split # 生成一些示例数据 X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化支持向量机分类器 svm = SVC(kernel='rbf', C=10, gamma=0.1) svm.fit(X_train, y_train) # 预测 y_pred = svm.predict(X_test) ``` ### 回归任务 `sklearn.svm` 库也可用于回归任务,例如使用 `SVR`(支持向量回归器)进行回归。以下是一个简单的示例代码: ```python from sklearn.svm import SVR import numpy as np # 生成一些示例数据 np.random.seed(42) m = 100 X = 2 * np.random.rand(m, 1) - 1 y = (0.2 + 0.1 * X + 0.5 * X**2 + np.random.randn(m, 1)/10).ravel() # 初始化支持向量机回归器 svm_poly_reg = SVR(kernel="poly", degree=2, C=100, epsilon=0.1) svm_poly_reg.fit(X, y) # 预测 y_pred = svm_poly_reg.predict(X) ``` ### 底层计算支持 除了本身所带的类之外,`sklearn` 还提供了直接调用 `libsvm` 库的几个函数。`Libsvm` 是一个简单、易于使用和快速有效的英文的 SVM 库,它提供了大量 SVM 的底层计算和参数选择,也是 `sklearn` 的众多类背后所调用的库 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值