(sklearn)岭回归 sklearn.linear_model.Ridge用法

class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver=’auto’, random_state=None)

岭回归是一种正则化方法,通过在损失函数中加入L2范数惩罚系项,来控制线性模型的复杂程度,从而使模型更加稳健。

参数

alpha:{float,array-like},shape(n_targets)
       α项,其值越大正则化项越大。其必须是正浮点数。 正则化改善了问题的条件并减少了估计的方差。Alpha对应于其他线性模型(如Logistic回归或LinearSVC)中的C^-1。 如果传递数组,则假定惩罚被特定于目标。 因此,它们必须在数量上对应。

fit_intercept:boolean
       是否计算此模型的截距,即b值。如果为False,则不计算b值(模型会假设你的数据已经中心化)
copy_X:boolean,可选,默认为True
       如果为True,将复制X; 否则,它可能被覆盖。

max_iter:int,可选
       共轭梯度求解器的最大迭代次数。如果为None,则为默认值(不同silver的默认值不同) 对于'sparse_cg'和'lsqr'求解器,默认值由scipy.sparse.linalg确定。 对于'sag'求解器,默认值为1000。
normalize:boolean,可选,默认为False
       如果为真,则回归X将在回归之前被归一化。 当fit_intercept设置为False时,将忽略此参数。 当回归量归一化时,注意到这使得超参数学习更加鲁棒,并且几乎不依赖于样本的数量。 相同的属性对标准化数据无效。 然而,如果你想标准化,请在调用normalize = False训练估计器之前,使用preprocessing.StandardScaler处理数据。
solver:{'auto','svd','cholesky','lsqr','sparse_cg','sag'}
       指定求解最优化问题的算法
  • 'auto':根据数据类型自动选择求解器。
  • 'svd':使用X的奇异值分解来计算Ridge系数。对于奇异矩阵比'cholesky'更稳定。
  • 'cholesky':使用标准的scipy.linalg.solve函数来获得闭合形式的解。
  • 'sparse_cg':使用在scipy.sparse.linalg.cg中找到的共轭梯度求解器。作为迭代算法,这个求解器比大规模数据(设置tol和max_iter的可能性)的“cholesky”更合适。
  • 'lsqr':使用专用的正则化最小二乘常数scipy.sparse.linalg.lsqr。它是最快的,但可能不是在旧的scipy版本可用。它还使用迭代过程。
  • 'sag':使用随机平均梯度下降。它也使用迭代过程,并且当n_samples和n_feature都很大时,通常比其他求解器更快。注意,“sag”快速收敛仅在具有近似相同尺度的特征上被保证。您可以使用sklearn.preprocessing的缩放器预处理数据。
       所有最后四个求解器支持密集和稀疏数据。但是,当fit_intercept为True时,只有'sag'支持稀疏输入。
       新版本0.17支持:随机平均梯度下降解算器。

tol:float
    解的精度,制定判断迭代收敛与否的阈值。
random_state:int seed,RandomState实例或None(默认)
       仅用于'sag'求解器。
  • 如果为整数,则它指定了随机数生成器的种子。
  • 如果为RandomState实例,则指定了随机数生成器。
  • 如果为None,则使用默认的随机数生成器。
       新版本0.17:random_state支持随机平均渐变。

属性

coef_:array,shape(n_features,)或(n_targets,n_features)
       权重向量。
intercept_:float | array,shape =(n_targets,)
       决策函数的独立项,即截距b值。 如果fit_intercept = False,则设置为0.0。
n_iter_:array或None,shape(n_targets,)
       每个目标的实际迭代次数。 仅适用于sag和lsqr求解器。 其他求解器将返回None。在版本0.17中出现。

方法

  • fit(X,y [,sample_weight]):训练模型。
  • get_params([deep]):获取此估计器的参数。
  • predict(X):使用线性模型进行预测,返回预测值。
  • score(X,y [,sample_weight]):返回预测性能的得分,不大于1,越大效果越好。
  • set_params(** params)设置此估计器的参数。

代码

# -*- coding: utf-8 -*-
from sklearn.linear_model import Ridge
import numpy as np
n_samples,n_features=10,5
np.random.seed(0) # seed( ) 用于指定随机数生成时所用算法开始的整数值
y=np.random.randn(n_samples) # randn函数返回一个或一组样本,具有标准正态分布。
X=np.random.randn(n_samples,n_features)
clf=Ridge(alpha=1.0)
#Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,normalize=False, random_state=None, solver='auto', tol=0.001
clf.fit(X,y)
pre=clf.predict(X)
print(clf.coef_)
print(clf.intercept_)
print(pre)

结果

[ 0.51088991  0.03729032 -0.65075201  0.0930311   0.93380887]
0.89586534083
[ 0.95424223  0.48712089  1.10388121  1.79105759  1.05769745 -0.07915715
  1.12314109 -0.22941441  0.64906337  0.52259943]


官方说明

  1. http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge


你可能感兴趣的:((sklearn)岭回归 sklearn.linear_model.Ridge用法)