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


Python sklearn SVR用法及代码示例


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

用法:

class sklearn.svm.SVR(*, kernel='rbf', degree=3, gamma='scale', coef0=0.0, tol=0.001, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=- 1)

Epsilon-Support 向量回归。

模型中的自由参数是 C 和 epsilon。

该实现基于 libsvm。拟合时间复杂度超过样本数量的二次方,这使得很难扩展到具有超过 10000 个样本的数据集。对于大型数据集,可以考虑使用 LinearSVR SGDRegressor ,可能在 Nystroem 转换器之后。

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

参数

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

指定要在算法中使用的内核类型。如果没有给出,将使用‘rbf’。如果给定了可调用对象,则它用于预先计算内核矩阵。

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’中有意义。

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

停止标准的容差。

C浮点数,默认=1.0

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

epsilon浮点数,默认=0.1

epsilon-SVR 模型中的 Epsilon。它指定了epsilon-tube,在该epsilon-tube 中,训练损失函数中没有惩罚与在距离实际值ε 距离内预测的点相关联。

shrinking布尔,默认=真

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

cache_size浮点数,默认=200

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

verbose布尔,默认=假

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

max_iter整数,默认=-1

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

属性

class_weight_ndarray 形状 (n_classes,)

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

coef_ndarray 形状 (1, n_features)

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

dual_coef_ndarray 形状 (1, n_SV)

决策函数中支持向量的系数。

fit_status_int

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

intercept_ndarray 形状 (1,)

决策函数中的常数。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

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

n_support_ndarray 形状 (n_classes,), dtype=int32

每个类的支持向量数。

shape_fit_int 形状的元组 (n_dimensions_of_X,)

训练向量 X 的数组维度。

support_ndarray 形状 (n_SV,)

支持向量的索引。

support_vectors_ndarray 形状(n_SV,n_features)

支持向量。

参考

1

LIBSVM:支持向量机库

2

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

例子

>>> from sklearn.svm import SVR
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> import numpy as np
>>> n_samples, n_features = 10, 5
>>> rng = np.random.RandomState(0)
>>> y = rng.randn(n_samples)
>>> X = rng.randn(n_samples, n_features)
>>> regr = make_pipeline(StandardScaler(), SVR(C=1.0, epsilon=0.2))
>>> regr.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('svr', SVR(epsilon=0.2))])

相关用法


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