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


Python sklearn LinearSVR用法及代码示例


本文简要介绍python语言中 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 实现,因此它在选择惩罚和损失函数方掩码有更大的灵活性,并且应该更好地扩展到大量样本。

此类支持密集和稀疏输入。

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

参数

epsilon浮点数,默认=0.0

epsilon-insensitive 损失函数中的 Epsilon 参数。请注意,此参数的值取决于目标变量 y 的规模。如果不确定,请设置 epsilon=0

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

停止标准的公差。

C浮点数,默认=1.0

正则化参数。正则化的强度与 C 成反比。必须严格为正。

loss{‘epsilon_insensitive’, ‘squared_epsilon_insensitive’},默认='epsilon_insensitive'

指定损失函数。 epsilon-insensitive 损失(标准 SVR)是 L1 损失,而平方 epsilon-insensitive 损失(‘squared_epsilon_insensitive’)是 L2 损失。

fit_intercept布尔,默认=真

是否计算此模型的截距。如果设置为 false,则不会在计算中使用截距(即数据预计已经居中)。

intercept_scaling浮点数,默认=1.0

当 self.fit_intercept 为 True 时,实例向量 x 变为 [x, self.intercept_scaling],即在实例向量上附加一个常数值等于 intercept_scaling 的 “synthetic” 特征。截距变为intercept_scaling * 合成特征权重 注意!合成特征权重像所有其他特征一样受到 l1/l2 正则化。为了减少正则化对合成特征权重(因此对截距)的影响,必须增加intercept_scaling。

dual布尔,默认=真

选择算法来解决对偶或原始优化问题。当 n_samples > n_features 时首选 dual=False。

verbose整数,默认=0

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

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

控制用于打乱数据的伪随机数生成。传递 int 以在多个函数调用之间实现可重现的输出。请参阅术语表。

max_iter整数,默认=1000

要运行的最大迭代次数。

属性

coef_ndarray of shape (n_features) if n_classes == 2 else (n_classes, n_features)

分配给特征的权重(原始问题中的系数)。

coef_ 是从 raw_coef_ 派生的只读属性,它遵循 liblinear 的内部存储器布局。

intercept_ndarray of shape (1) if n_classes == 2 else (n_classes)

决策函数中的常数。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

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

n_iter_int

在所有类中运行的最大迭代次数。

例子

>>> 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([[0, 0, 0, 0]]))
[-2.384...]

相关用法


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