当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn SVC用法及代码示例


本文简要介绍python语言中 sklearn.svm.SVC 的用法。

用法:

class sklearn.svm.SVC(*, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=- 1, decision_function_shape='ovr', break_ties=False, random_state=None)

C-Support 向量分类。

该实现基于 libsvm。拟合时间至少与样本数量成二次方关系,超过数万个样本可能不切实际。对于大型数据集,可以考虑使用 LinearSVC SGDClassifier ,可能在 Nystroem 转换器之后。

多类支持根据one-vs-one 方案处理。

有关所提供内核函数的精确数学公式以及 gammacoef0degree 如何相互影响的详细信息,请参阅叙述文档中的相应部分:内核函数。

在用户指南中阅读更多信息。

参数

C浮点数,默认=1.0

正则化参数。正则化的强度与 C 成反比。必须严格为正。罚分是平方 l2 罚分。

kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} 或可调用,默认='rbf'

指定要在算法中使用的内核类型。如果没有给出,将使用‘rbf’。如果给定了可调用对象,则它用于从数据矩阵中预先计算内核矩阵;该矩阵应该是一个形状为 (n_samples, n_samples) 的数组。

degree整数,默认=3

多项式核函数的度数 (‘poly’)。被所有其他内核忽略。

gamma{‘scale’, ‘auto’} 或浮点数,默认='scale'

‘rbf’, ‘poly’ 和 ‘sigmoid’ 的核系数。

  • 如果gamma='scale'(默认)被传递,那么它使用 1 /(n_features * X.var()) 作为伽玛值,
  • 如果‘auto’,使用 1 /n_features。
coef0浮点数,默认=0.0

核函数中的独立项。仅在‘poly’和‘sigmoid’中有意义。

shrinking布尔,默认=真

是否使用收缩启发式。请参阅用户指南。

probability布尔,默认=假

是否启用概率估计。这必须在调用 fit 之前启用,这会减慢该方法,因为它在内部使用 5 折交叉验证,并且 predict_proba 可能与 predict 不一致。在用户指南中阅读更多信息。

tol浮点数,默认=1e-3

停止标准的容差。

cache_size浮点数,默认=200

指定内核缓存的大小(以 MB 为单位)。

class_weightdict或‘balanced’,默认=无

对于 SVC,将第 i 类的参数 C 设置为class_weight[i]*C。如果没有给出,所有的类都应该有一个权重。 “balanced” 模式使用 y 的值自动调整与输入数据中的类频率成反比的权重,如 n_samples / (n_classes * np.bincount(y))

verbose布尔,默认=假

启用详细输出。请注意,此设置利用了 libsvm 中的 per-process 运行时设置,如果启用,该设置可能无法在多线程上下文中正常工作。

max_iter整数,默认=-1

求解器内迭代的硬限制,或 -1 表示无限制。

decision_function_shape{‘ovo’, ‘ovr’},默认='ovr'

是否像所有其他分类器一样返回形状为 (n_samples, n_classes) 的 one-vs-rest (‘ovr’) 决策函数,或者返回 libsvm 的原始 one-vs-one (‘ovo’) 决策函数,其形状为 (n_samples, n_classes * (n_classes - 1) /2)。但是,one-vs-one (‘ovo’) 始终用作多类别策略。对于二元分类,该参数被忽略。

break_ties布尔,默认=假

如果为真,decision_function_shape='ovr',并且类数 > 2,predict 将根据 decision_function 的置信度值打破平局;否则返回绑定类中的第一个类。请注意,与简单的预测相比,打破平局的计算成本相对较高。

random_stateint、RandomState 实例或无,默认=无

控制伪随机数生成,以对数据进行随机化以进行概率估计。当 probability 为 False 时忽略。传递 int 以获得跨多个函数调用的可重现输出。请参阅词汇表。

属性

class_weight_ndarray 形状 (n_classes,)

每个类的参数 C 的乘数。根据class_weight 参数计算。

classes_ndarray 形状 (n_classes,)

类标签。

coef_ndarray 形状 (n_classes * (n_classes - 1) /2, n_features)

kernel="linear" 时分配给特征的权重。

dual_coef_ndarray 形状(n_classes -1,n_SV)

决策函数中支持向量的对偶系数(参见数学公式)乘以它们的目标。对于多类,所有 1-vs-1 分类器的系数。多类情况下系数的布局有些重要。有关详细信息,请参阅用户指南的多类别部分。

fit_status_int

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

intercept_ndarray 形状 (n_classes * (n_classes - 1) /2,)

决策函数中的常数。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

support_ndarray 形状 (n_SV)

支持向量的索引。

support_vectors_ndarray 形状(n_SV,n_features)

支持向量。

n_support_ndarray 形状 (n_classes,), dtype=int32

每个类的支持向量数。

probA_ndarray 形状 (n_classes * (n_classes - 1) /2)

probability=True 时在 Platt 缩放中学习的参数。

probB_ndarray 形状 (n_classes * (n_classes - 1) /2)

probability=True 时在 Platt 缩放中学习的参数。

shape_fit_int 形状的元组 (n_dimensions_of_X,)

训练向量 X 的数组维度。

参考

1

LIBSVM:支持向量机库

2

普拉特,约翰 (1999)。 “支持向量机的概率输出以及与正则化似然方法的比较。”

例子

>>> import numpy as np
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
>>> y = np.array([1, 1, 2, 2])
>>> from sklearn.svm import SVC
>>> clf = make_pipeline(StandardScaler(), SVC(gamma='auto'))
>>> clf.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('svc', SVC(gamma='auto'))])
>>> print(clf.predict([[-0.8, -1]]))
[1]

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.svm.SVC。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。