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-支持向量回归。

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

该实现基于libsvm。适应时间复杂性与样本数量的关系大于二次,这使得很难扩展到具有超过10000个样本的数据集。对于大型数据集,考虑使用 LinearSVRSGDRegressor 相反,可能在 Nystroem Transformer或其他 核近似 .

阅读更多的 User Guide .

参数:
kernel{'linear','poly','rbf','sigmoid','precomputed'}或可调用, 默认值='rbf'

指定算法中使用的内核类型。如果没有给出,则将使用“rBF”。如果给出了可调用内容,则使用它来预计算核矩阵。有关不同内核类型的直观可视化,请参阅 使用线性和非线性核的支持量回归(SVR)

degreeint,默认=3

多项核函数(“poly”)的次数。必须是非负的。被所有其他内核忽视。

gamma请输入'scale','auto'}或float,default='scale'

“rbf”、“poly”和“sigmoid”的核系数。

  • 如果 gamma='scale' (默认)被传递,然后它使用1 /(n_features * X.var())作为gamma的值,

  • 如果是“自动”,则使用1 / n_features

  • 如果为浮动,则必须为非负数。

在 0.22 版本发生变更: 的默认值 gamma 从“自动”更改为“规模”。

coef0float,默认=0.0

核函数中的独立项。它仅在“多聚体”和“西格玛”中显着。

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

停止标准的容忍度。

Cfloat,默认=1.0

正规化参数。正规化的强度与C成正比。必须严格积极。罚分是l2的平方。如需直观地可视化调整规则化参数C的影响,请参阅 缩放SVCs的正规化参数 .

epsilonfloat,默认=0.1

Epsilon-SVR模型中的剧集。它指定了epsilon管,其中训练损失函数中没有惩罚与预测在实际值的距离范围内的点关联。必须是非负的。

shrinking布尔,默认=True

是否使用收缩启发式。看到 User Guide .

cache_size浮动,默认=200

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

verbose布尔,默认=假

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

max_iterint,默认=-1

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

属性:
coef_nd数组形状(1,n_features)

在以下情况下分配给要素的权重 kernel="linear" .

dual_coef_形状的nd数组(1,n_SV)

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

fit_status_int

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

intercept_形状的nd数组(1,)

决策功能中的常数。

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

n_iter_int

优化例程为适应模型而运行的迭代次数。

Added in version 1.1.

n_support_形状的nd数组(1,),dype = int 32

每个类别的支持载体数量。

shape_fit_形状的int的多元组(n_dimensions_of_X,)

训练载体的数组维度 X .

support_形状的nd数组(n_SV,)

支持载体指数。

support_vectors_ndrow形状数组(n_SV,n_features)

支持载体。

参见

NuSVR

使用libsvm实施的回归支持向量机,使用参数控制支持向量。

LinearSVR

用于使用liblinear实现回归的可扩展线性支持载体机。

引用

[1]

LIBSVM: A Library for Support Vector Machines <http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf> _

[2]

Platt, John (1999). "Probabilistic Outputs for Support Vector Machines and Comparisons to Regularized Likelihood Methods" <https://citeseerx.ist.psu.edu/doc_view/pid/42e5ed832d4310ce4378c44d05570439df28a393> _

示例

>>> 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))])
fit(X, y, sample_weight=None)[源代码]#

根据给定的训练数据对支持机模型进行匹配。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵} 或(n_samples,n_samples)

训练载体,在哪里 n_samples 是样本数量和 n_features 是功能的数量。对于core =“precalled”,X的预期形状是(n_samples,n_samples)。

y形状类似阵列(n_samples,)

目标值(分类中的类别标签,回归中的真实数字)。

sample_weight形状类似数组(n_samples,),默认=无

每个样品的重量。根据样本重新调整C。更高的权重迫使分类器更加强调这些点。

返回:
self对象

拟合估计量。

注意到

如果X和y不是np.float64的C排序且连续数组,并且X不是scipy.sparse.csr_matrix,则可以复制X和/或y。

如果X是密集数组,那么其他方法将不支持稀疏矩阵作为输入。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

predict(X)[源代码]#

对X中的样本进行回归分析。

对于一级模型,返回+1(inlier)或-1(离群值)。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

对于core =“预先计算”,X的预期形状是(n_samples_Test,n_samples_train)。

返回:
y_pred形状的nd数组(n_samples,)

预测值。

score(X, y, sample_weight=None)[源代码]#

返回预测的决定系数。

决定系数 \(R^2\) 被定义为 \((1 - \frac{u}{v})\) ,在哪里 \(u\) 是残差平方和 ((y_true - y_pred)** 2).sum()\(v\) 是平方总和 ((y_true - y_true.mean()) ** 2).sum() .最好的可能分数是1.0,并且可以是负的(因为模型可以任意更差)。始终预测的期望值的恒定模型 y 如果不考虑输入功能,就会得到 \(R^2\) 评分0.0。

参数:
X形状类似阵列(n_samples,n_features)

Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead with shape (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.

y形状的类似阵列(n_samples,)或(n_samples,n_outputs)

真正的价值观 X .

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

返回:
score浮子

\(R^2\)self.predict(X) w.r.t. y .

注意到

\(R^2\) 呼叫时使用的分数 score 在回归器上使用 multioutput='uniform_average' 从0.23版本开始,与默认值保持一致 r2_score .这影响了 score 所有多输出回归器的方法(除了 MultiOutputRegressor ).

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') SVR[源代码]#

请求元数据传递给 fit

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 fit 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 fit .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 fit .

返回:
self对象

更新的对象。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') SVR[源代码]#

请求元数据传递给 score

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 score 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 score .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 score .

返回:
self对象

更新的对象。