一类支持向量机#
- 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)[source]#
- 无监督异常检测。 - 估计高维分布的支持。 - 该实现基于libsvm。 - 更多信息请阅读 用户指南。 - 参数:
- kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} 或可调用对象,默认为’rbf’
- 指定算法中使用的核类型。如果没有给出,则使用’rbf’。如果给出可调用对象,则将其用于预计算核矩阵。 
- degreeint,默认为3
- 多项式核函数(’poly’)的阶数。必须是非负数。其他所有核都忽略此参数。 
- gamma{‘scale’, ‘auto’} 或 float,默认为’scale’
- ’rbf’,’poly’和’sigmoid’的核系数。 - 如果传递 - gamma='scale'(默认值),则使用 1 / (n_features * X.var()) 作为 gamma 的值,
- 如果为’auto’,则使用 1 / n_features 
- 如果为浮点数,则必须是非负数。 
 - 0.22版本中的更改: - gamma的默认值已从’auto’更改为’scale’。
- coef0float,默认为0.0
- 核函数中的独立项。仅在’poly’和’sigmoid’中有效。 
- tolfloat,默认为1e-3
- 停止准则的容差。 
- nufloat,默认为0.5
- 训练误差分数的上限和支持向量分数的下限。应在区间(0, 1]内。默认情况下将取0.5。 
- shrinkingbool,默认为True
- 是否使用收缩启发式算法。参见 用户指南。 
- cache_sizefloat,默认为200
- 指定内核缓存的大小(以MB为单位)。 
- verbosebool,默认为False
- 启用详细输出。请注意,此设置利用了libsvm中的每个进程运行时设置,如果启用该设置,则可能在多线程上下文中无法正常工作。 
- max_iterint,默认为-1
- 求解器中迭代次数的硬限制,或-1表示无限制。 
 
- 属性:
- coef_shape 为 (1, n_features) 的ndarray
- 当 - kernel="linear"时分配给特征的权重。
- dual_coef_shape 为 (1, n_SV) 的ndarray
- 决策函数中支持向量的系数。 
- fit_status_int
- 如果正确拟合则为0,否则为1(将发出警告) 
- intercept_shape 为 (1,) 的ndarray
- 决策函数中的常数。 
- n_features_in_int
- 拟合期间看到的特征数量。 - 0.24版本中添加。 
- feature_names_in_shape 为 (n_features_in_,) 的ndarray
- 拟合期间看到的特征名称。仅当 - X具有全是字符串的特征名称时才定义。- 1.0版本中添加。 
- n_iter_int
- 优化例程运行以拟合模型的迭代次数。 - 1.1版本中添加。 
- n_support_shape 为 (n_classes,),dtype=int32 的ndarray
- 每个类的支持向量数量。 
- offset_float
- 用于根据原始分数定义决策函数的偏移量。我们有关系:decision_function = score_samples - - offset_。偏移量与- intercept_相反,并为与其他异常检测算法保持一致而提供。- 0.20版本中添加。 
- shape_fit_shape 为 (n_dimensions_of_X,) 的int元组
- 训练向量 - X的数组维度。
- support_shape 为 (n_SV,) 的ndarray
- 支持向量的索引。 
- support_vectors_shape 为 (n_SV, n_features) 的ndarray
- 支持向量。 
 
 - 另请参阅 - sklearn.linear_model.SGDOneClassSVM
- 使用随机梯度下降法求解线性一类SVM。 
- sklearn.neighbors.LocalOutlierFactor
- 使用局部异常因子 (LOF) 进行无监督异常检测。 
- sklearn.ensemble.IsolationForest
- 孤立森林算法。 
 - 示例 - >>> 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...]) - 有关更详尽的示例,请参见 物种分布模型 - property coef_#
- 当 - kernel="linear"时分配给特征的权重。- 返回值:
- shape 为 (n_features, n_classes) 的ndarray
 
 
 - decision_function(X)[source]#
- 到分离超平面的有符号距离。 - 对于内点,有符号距离为正;对于异常点,有符号距离为负。 - 参数:
- Xshape 为 (n_samples, n_features) 的类数组
- 数据矩阵。 
 
- 返回值:
- decshape 为 (n_samples,) 的ndarray
- 返回样本的决策函数。 
 
 
 - fit(X, y=None, sample_weight=None)[source]#
- 检测样本集X的软边界。 - 参数:
- X形状为(n_samples, n_features)的{数组、稀疏矩阵}
- 样本集,其中 - n_samples是样本数,- n_features是特征数。
- y忽略
- 未使用,出于API一致性约定而保留。 
- sample_weight形状为(n_samples,)的数组,默认为None
- 每个样本的权重。按样本重新调整C。较高的权重迫使分类器更加重视这些点。 
 
- 返回值:
- self对象
- 已拟合的估计器。 
 
 - 备注 - 如果X不是C序连续数组,则会复制它。 
 - fit_predict(X, y=None, **kwargs)[source]#
- 对X进行拟合并返回X的标签。 - 对离群点返回-1,对内群点返回1。 - 参数:
- X形状为(n_samples, n_features)的{数组、稀疏矩阵}
- 输入样本。 
- y忽略
- 未使用,出于API一致性约定而保留。 
- **kwargs字典
- 要传递给 - fit的参数。- 在1.4版本中添加。 
 
- 返回值:
- y形状为(n_samples,)的ndarray
- 内群点为1,离群点为-1。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看用户指南,了解路由机制的工作原理。 - 返回值:
- routingMetadataRequest
- 一个 - MetadataRequest,封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deep布尔值,默认为True
- 如果为True,将返回此估计器和包含的子对象(它们也是估计器)的参数。 
 
- 返回值:
- params字典
- 参数名称与其值的映射。 
 
 
 - property n_support_#
- 每个类的支持向量数量。 
 - predict(X)[source]#
- 对X中的样本进行分类。 - 对于单类模型,返回+1或-1。 - 参数:
- X形状为(n_samples, n_features)或(n_samples_test, n_samples_train)的{数组、稀疏矩阵}
- 对于kernel=”precomputed”,X的预期形状为(n_samples_test, n_samples_train)。 
 
- 返回值:
- y_pred形状为(n_samples,)的ndarray
- X中样本的类别标签。 
 
 
 - score_samples(X)[source]#
- 样本的原始评分函数。 - 参数:
- Xshape 为 (n_samples, n_features) 的类数组
- 数据矩阵。 
 
- 返回值:
- score_samples形状为(n_samples,)的ndarray
- 返回样本的(未移位)评分函数。 
 
 
 - set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OneClassSVM[source]#
- 请求传递给 - fit方法的元数据。- 请注意,只有在 - enable_metadata_routing=True时(参见- sklearn.set_config),此方法才相关。请查看用户指南,了解路由机制的工作原理。- 每个参数的选项为 - True:请求元数据,如果提供则传递给- fit。如果未提供元数据,则忽略请求。
- False:不请求元数据,元估计器不会将其传递给- fit。
- None:不请求元数据,如果用户提供元数据,元估计器将引发错误。
- str:元估计器应使用此别名而不是原始名称传递元数据。
 - 默认值( - sklearn.utils.metadata_routing.UNCHANGED)保留现有请求。这允许您更改某些参数的请求,而其他参数则保持不变。- 版本 1.3 中新增。 - 注意 - 仅当此估计器用作元估计器的子估计器时,此方法才相关,例如,在 - Pipeline中使用。否则,它无效。- 参数:
- sample_weightstr、True、False 或 None,默认值=sklearn.utils.metadata_routing.UNCHANGED
- fit中- sample_weight参数的元数据路由。
 
- 返回值:
- self对象
- 更新后的对象。 
 
 
 
 
     
 
 
 
