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支持向量回归。
模型中的自由参数是C和epsilon。
该实现基于libsvm。
拟合时间的复杂度是样本数量的两倍以上,这使得很难扩展到具有多个10000个样本的数据集。对于大型数据集,可以考虑在使用了 sklearn.kernel_approximation.Nystroem
后,用sklearn.svm.LinearSVR
或sklearn.linear_model.SGDRegressor
替代。
更多信息请参阅 用户指南
参数 | 说明 |
---|---|
kernel | {‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’}, 默认=’rbf’ 指定算法中使用的内核类型。它必须是“linear”,“poly”,“rbf”,“sigmoid”,“precomputed”或者“callable”中的一个。如果没有给出,将默认使用“rbf”。如果给定了一个可调用函数,则用它来预先计算核矩阵。 |
degree | 整数型,默认=3 多项式核函数的次数(' poly ')。将会被其他内核忽略。 |
gamma | 浮点数或者{‘scale’, ‘auto’} , 默认=’scale’ 核系数包含‘rbf’, ‘poly’ 和‘sigmoid’ |
coef0 | 浮点数,默认=0.0 核函数中的独立项。它只在' poly '和' sigmoid '中有意义。 |
tol | 浮点数,默认=1e-3 残差收敛条件。 |
C | 浮点数,默认= 1.0 正则化参数。正则化的强度与C成反比。必须严格为正。此惩罚系数是l2惩罚系数的平方 |
epsilon | 浮点数, 默认= 0.1 epsilon-SVR模型中的Epsilon。它指定了在训练损失函数中预测值与实际值之间距离为epsilon的epsilon-tube。 |
shrinking | 布尔值,默认=True 是否使用缩小启发式,参见使用指南. |
cache_size | 浮点数,默认=200 指定内核缓存的大小(以MB为单位)。 |
verbose | 布尔值,默认=False 是否启用详细输出。请注意,此参数针对liblinear中运行每个进程时设置,如果启用,则可能无法在多线程上下文中正常工作。 |
max_iter | 整数型,默认=-1 对求解器内的迭代进行硬性限制,或者为-1(无限制时)。 |
属性 | 说明 |
---|---|
support_ | 形如(n_SV,)的数组 支持向量的指标。 |
support_vectors_ | 形如(n_SV, n_features)的数组 支持向量 |
n_support_ | 形如(n_class)的数组,dtype=int32 每个类别的支持向量数量。 |
dual_coef_ | 形如(n_class-1, n_SV)的数组 决策函数中支持向量的系数。 |
coef_ | 形如(n_class * (n_class-1) / 2, n_features)的数组 分配给特征的权重(原始问题的系数),仅在线性内核的情况下可用。coef_ 是一个继承自raw_coef_ 的只读属性,它遵循liblinear的内部存储器布局。 |
fit_status_ | 整数型 如果拟合无误,则为0;否则为1(将会引发警告) |
intercept_ | 形如(n_class * (n_class-1) / 2,)的数组 决策函数中的常量。 |
另见:
支持向量机的回归使用libsvm实现,使用一个参数来控制支持向量的数量。
可扩展线性支持向量机使用liblinear进行分类。
参考文献:
示例:
>>> 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]) |
根据给定的训练数据拟合支持向量机模型。 |
---|---|
get_params ([deep]) |
获取这个估计器的参数。 |
predict (X) |
在X中对样本进行分类 |
score (X, y[, sample_weight]) |
返回预测的决定系数R^2。 |
set_params (**params) |
设置这个估计器的参数。 |
__init__(*, 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)
初始化self。请参阅help(type(self)获取准确的说明。
fit(X, y, sample_weight=None)
根据给定的训练数据拟合支持向量机模型。
参数 | 说明 |
---|---|
X | 形如(n_samples, n_features) 或者 (n_samples, n_samples)的数组或者稀疏矩阵 训练向量,其中n_samples为样本数量,n_features为特征数量。对于kernel= " precomputed ", X的期望形状为(n_samples, n_samples)。 |
y | 形如(n_samples,)的数组 目标值(分类中的类标签,回归中的实数) |
sample_weight | 形如(n_samples,)的数组,默认=None 样本的权重。每个样品重新定标C。较高的权重将使分类器更加注重这些样本点。 |
返回值 | 说明 |
---|---|
self | object |
注:
如果X和y不是C-ordered,并且np.float64和X的连续数组不是scipy.sparse.csr_matrix,则可以复制X或y。
如果X是一个连续数组,则其他方法将不支持将稀疏矩阵作为输入。
get_params(deep=True)
参数 | 说明 |
---|---|
deep | bool, default = True 如果为真,则将返回此估计量和作为估计量的所包含子对象的参数 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名被映射至他们的值 |
predict(X)
对X中的样本执行分类。
对于返回值为+1或-1的one-class模型
参数 | 说明 |
---|---|
X | 形如(n_samples, n_features) 或者 (n_samples_test, n_samples_train)的数组或者稀疏矩阵 对于内核=“precomputed”,X的预期形状为(n_samples_test,n_samples_train)。 |
返回值 | 说明 |
---|---|
y_pred | 形如(n_sample, )的数组 X中样本的类别标签。 |
score(X, y, sample_weight=None)
返回预测的决定系数R^2。
定义决定系数R^2为(1 - 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)的数组 测试样本。对于某些估计器,这可能是一个预先计算的内核矩阵或一列通用对象,而不是形状为(n_samples, n_samples_fitting)的数组,其中n_samples_fitting是用于拟合估计器的样本数量。 |
y | 形如(n_samples,) 或者 (n_samples, n_outputs)的数组 X中结果为真的标签 |
sample_weight | 形如(n_samples,)的数组,默认=None 样本的权重 |
返回值 | 说明 |
---|---|
score | 浮点数 self.predict(X) wrt. y的R^2 |
注:
调用回归变量上的score时,使用的R2 score(0.23版本)中的multioutput='uniform_average'来保持与r2_score的默认值一致。这影响了所有多输出回归的score
方法(除了 MultiOutputRegressor
)。
set_params(**params)
设置此估算器的参数。
该方法适用于简单估计器和嵌套对象(如管道)。后者具有形式为 <component>__<parameter>
的参数,这样就可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
params | 字典 估算器参数 |
返回值 | 说明 |
---|---|
self | object 估算器实例 |