sklearn.svm.LinearSVR

class sklearn.svm.LinearSVR(*, epsilon=0.0, tol=0.0001, C=1.0, loss='epsilon_insensitive', fit_intercept=True, intercept_scaling=1.0, dual=True, verbose=0, random_state=None, max_iter=1000)

源码

线性支持向量回归。

类似于带有参数kernel ='linear'的SVR,但它是根据liblinear而不是libsvm来实现的,因此它在选择惩罚函数和损失函数时具有更大的灵活性,能够更好的适应大量的样本。

这个类同时支持连续数据和离散数据。

用户指南中阅读更多内容。

版本0.16中的新功能。

参数 说明
epsilon 浮点数, 默认= 0.0
Epsilon参数作用于对ε不敏感的损失函数中。注意,该参数的值取决于目标变量y的尺度,如果不确定,请设置epsilon=0
tol 浮点数,默认= 1e-4
残差收敛条件。
C 浮点数,默认= 1.0
正则化参数。正则化的强度与C成反比。必须严格为正。
loss {'epsilon_insensitive','squared_epsilon_insensitive'},默认='epsilon_insensitive'
指定损失函数。对ε不敏感的损失函数(标准SVR)为L1损失,而对ε不敏感的平方损失函数(“ squared_epsilon_insensitive”)为L2损失。
fit_intercept 布尔值,默认=True
是否计算该模型的截距项。如果设置为false,则在计算中将不使用截距项(也就是说数据应已居中)。
intercept_scaling 浮点数,默认=1
当self.fit_intercept为True时,实例向量x变为[x,self.intercept_scaling],即在实例向量上附加一个定值为intercept_scaling的“合成”特征。请注意,截距项将变为intercept_scaling*综合特征权重
与所有其他特征一样,合成特征权重也要经过l1 / l2正则化。为了减轻正则化对合成特征权重(同时也对对截距项)的影响,必须增加intercept_scaling。
dual 布尔值,默认= True
选择使用什么算法来解决对偶或原始优化问题。当n_samples> n_features时,首选dual = False。
verbose 整数型,默认值= 0
是否启用详细输出。请注意,此参数针对liblinear中运行每个进程时设置,如果启用,则可能无法在多线程上下文中正常工作。
random_state 整数型或RandomState的实例,默认=None
控制用于数据抽取时的伪随机数生成。在多个函数调用之间传递可重复输出的整数值。请参阅词汇表
max_iter 整数值,默认= 1000
要运行的最大迭代次数。
属性 说明
coef_ 当n_classes == 2时是形状为(n_features)的数组,否则是形状为(n_classes,n_features)的数组
分配给特征的权重(原始问题的系数),仅在线性内核的情况下可用。coef_是一个继承自raw_coef_的只读属性,它遵循liblinear的内部存储器布局。
intercept_ 当n_classes == 2时为(1)的数组,否则为(n_classes)的数组
决策函数中的常量。
n_iter_ 整数型
所有类的最大迭代次数。

另见:

  • LinearSVC

    使用与该类相同的库实现支持向量机分类器(liblinear)。

  • SVR

    使用libsvm实现支持向量机回归:内核可以是非线性的,但是它的SMO算法不能像LinearSVC那样扩展到大量样本。

  • sklearn.linear_model.SGDRegressor

    SGDRegressor可以通过调整惩罚和损失参数来优化与LinearSVR相同的成本函数。另外,它需要更少的内存,允许增量(在线)学习,并实现各种损失函数和正则化机制。

示例:

>>> from sklearn.svm import LinearSVR
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=4, random_state=0)
>>> regr = make_pipeline(StandardScaler(),
...                      LinearSVR(random_state=0, tol=1e-5))
>>> regr.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('linearsvr', LinearSVR(random_state=0, tol=1e-05))])
>>> print(regr.named_steps['linearsvr'].coef_)
[18.582... 27.023... 44.357... 64.522...]
>>> print(regr.named_steps['linearsvr'].intercept_)
[-4...]
>>> print(regr.predict([[0000]]))
[-2.384...]

方法

方法 说明
fit(X,y [,sample_weight]) 根据给定的训练数据拟合模型
get_params([deep]) 获取当前估计量的参数
predict(X) 使用线性模型进行预测
score(X,y [,sample_weight]) 返回预测的决定系数R ^ 2
set_params(**params) 设置当前估计量的参数。
__init__(*, epsilon=0.0, tol=0.0001, C=1.0, loss='epsilon_insensitive', fit_intercept=True, intercept_scaling=1.0, dual=True, verbose=0, random_state=None, max_iter=1000

源码

初始化self。请参阅help(type(self)获取准确的说明。

fit(X, y, sample_weight=None)

源码

根据给定的训练数据拟合模型。

参数: 说明
X 形如(n_samples, n_features)的数组或者稀疏矩阵
训练向量,其中样本数量中的n_samples和n_features为feature的数量
y 形如 (n_samples,)的数组
相对于X的目标向量
sample_weight 形如(n_samples,)的数组, 默认=None
分配给单个样本的权重数组。如果没有提供,则每个样品都给予单位权重。
新版本0.18
返回值 说明
self object
估计器的一个实例。
get_params(deep=True)

获取当前估计量的参数

参数 说明
deep bool, default = True
如果为真,则将返回此估计器和其所包含子对象的参数
返回值 说明
params mapping of string to any
参数名被映射至他们的值
predict(X)

[源码]

使用线性模型进行预测。

参数 说明
X 形如(n_samples, n_features)的数组或者稀疏矩阵
样本
返回值 说明
C 形如(n_samples,)的数组
返回预测的值
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
估算器实例