线性回归之——LinearRegression、Ridge、Lasso基本用法

文章目录

    • 线性回归(LinearRegression)——参数及方法
    • 岭回归(Ridge)——参数及方法
    • 套索回归(Lasso)——参数及方法
    • 首页(https://scikit-learn.org/stable/index.html#)

线性回归(LinearRegression)——参数及方法

sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)
参数:

  1. fit_intercept:是否有截据,如果没有则直线过原点;
  2. normalize:是否将数据归一化;
  3. copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写;
  4. n_jobs:默认值为1。计算时使用的核数

方法:

  • decision_function(X) 对训练数据X进行预测

  • fit(X, y[, n_jobs]) 对训练集X, y进行训练。是对scipy.linalg.lstsq的封装

  • get_params([deep]) 得到该估计器(estimator)的参数。

  • predict(X) 使用训练得到的估计器对输入为X的集合进行预测(X可以是测试集,也可以是需要预测的数据)。

  • score(X, y[,]sample_weight) 返回对于以X为samples,以y为target的预测效果评分。

  • set_params(**params) 设置估计器的参数

  • decision_function(X) 和predict(X) 都是利用预估器对训练数据X进行预测,其中decision_function(X)包含了对输入数据的类型检查,以及当前对象是否存在coef_属性的检查,是一种“安全的”方法,而predict是对decision_function的调用。

  • score(X, y[,]sample_weight) 定义为(1-u/v),其中u = ((y_true - y_pred)**2).sum(),而v=((y_true-y_true.mean())**2).mean()

       最好的得分为1.0,一般的得分都比1.0低,得分越低代表结果越差。
    

    其中sample_weight为(samples_n,)形状的向量,可以指定对于某些sample的权值,如果觉得某些数据比较重要,可以将其的权值设置的大一些。

原文链接:(https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression)(友情提示:如打不开请手动粘贴复制)

岭回归(Ridge)——参数及方法

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正则化的线性最小二乘。
该模型求解回归模型,其中损失函数是线性最小二乘函数,并且正则化由l2范数给出。 也称为Ridge回归或Tikhonov正则化。 该估计器具有对多变量回归的内置支持(即,当y是形状的2d阵列[n_samples,n_targets]时)。


参数

  1. alpha:{float,array-like},shape(n_targets)
    正则化强度; 必须是正浮点数。 正则化改善了问题的条件并减少了估计的方差。 较大的值指定较强的正则化。 Alpha对应于其他线性模型(如Logistic回归或LinearSVC)中的C^-1。 如果传递数组,则假定惩罚被特定于目标。 因此,它们必须在数量上对应
  2. copy_X:boolean,可选,默认为True如果为True,将复制X; 否则,它可能被覆盖
  3. fit_intercept: boolean是否计算此模型的截距。 如果设置为false,则不会在计算中使用截距(例如,数据预期已经居中)。
  4. max_iter: int,可选共轭梯度求解器的最大迭代次数。 对于’sparse_cg’和’lsqr’求解器,默认值由scipy.sparse.linalg确定。 对于’sag’求解器,默认值为1000。
  5. normalize: boolean,可选,默认为False如果为真,则回归X将在回归之前被归一化。 当fit_intercept设置为False时,将忽略此参数。 当回归量归一化时,注意到这使得超参数学习更加鲁棒,并且几乎不依赖于样本的数量。 相同的属性对标准化数据无效。 然而,如果你想标准化,请在调用normalize = False训练估计器之前,使用preprocessing.StandardScaler处理数据。
  6. 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支持:随机平均梯度下降解算器。
  7. tol:float解的精度。
  8. random_state int seed,RandomState实例或None(默认)
    伪随机数生成器的种子,当混洗数据时使用。 仅用于’sag’求解器。
    新版本0.17:random_state支持随机平均渐变。

属性

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

方法

  1. decision_function(\ * args,\ * \ * kwargs)DEPRECATED:将在0.19中删除。
  2. fit(X,y [,sample_weight])Fit Ridge回归模型
  3. get_params([deep] 获取此估计器的参数。
  4. predict(X) 使用线性模型进行预测
  5. score(X,y [,sample_weight] 返回预测的确定系数R ^ 2。
  6. set_params(\ * \ * params) 设置此估计器的参数。
    原文链接:(https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge)(友情提示:如打不开请手动粘贴复制)

套索回归(Lasso)——参数及方法

sklearn.linear_model.Lasso(alpha = 1.0,fit_intercept = True,normalize = False,precompute = False,copy_X = True,max_iter = 1000,tol = 0.0001,warm_start = False,positive = False,random_state = None,selection =‘cyclic’ )
参数

  1. alpha : float,可选
    常数乘以L1项。默认为1.0。 相当于一个普通的最小二乘,由物体解决。对于数字的原因,使用与对象是不明智的。鉴于此,您应该使用该对象。alpha = 0LinearRegressionalpha = 0LassoLinearRegression

  2. fit_intercept : boolean,optional,默认为True
    是否计算此模型的截距。如果设置为False,则不会在计算中使用截距(例如,预计数据已经居中)。

  3. normalize : 布尔值,可选,默认为False
    fit_intercept设置为False 时,将忽略此参数。如果为True,则回归量X将在回归之前通过减去平均值并除以l2范数来归一化。如果您希望标准化,请 在使用估算器sklearn.preprocessing.StandardScaler之前fit使用normalize=False。

  4. precompute : True | 错| array-like,默认= False
    是否使用预先计算的Gram矩阵来加速计算。如果设置’auto’让我们决定。Gram矩阵也可以作为参数传递。对于稀疏输入,此选项始终True用于保留稀疏性。

  5. copy_X : 布尔值,可选,默认为True
    如果True,X将被复制; 否则,它可能会被覆盖。

  6. max_iter : int,可选最大迭代次数

  7. tol : float,可选优化的容差:如果更新小于tol,则优化代码检查双重间隙的最优性并继续直到它小于tol。

  8. warm_start : bool,可选设置为True时,重用上一次调用的解决方案以适合初始化,否则,只需擦除以前的解决方案。请参阅词汇表。

  9. positive : bool,可选设置为时True,强制系数为正。

  10. random_state : int,RandomState实例或None,可选,默认无
    伪随机数生成器的种子,用于选择要更新的随机特征。如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是由其使用的RandomState实例np.random。在selection=='随机’时使用。

  11. selection : str,默认’循环’
    如果设置为“随机”,则每次迭代都会更新随机系数,而不是默认情况下按顺序循环使用要素。这(设置为“随机”)通常会导致明显更快的收敛,尤其是当tol高于1e-4时。

属性

  • coef_ : array,shape(n_features,)| (n_targets,n_features)
    参数向量(成本函数公式中的w)
  • sparse_coef_ : scipy.sparse矩阵,形状(n_features,1)| (n_targets,n_features)拟合的稀疏表示 coef_
  • intercept_ : float | 数组,形状(n_targets,)决策职能的独立任期。
  • n_iter_ : int | 数组,形状(n_targets,)
    坐标下降求解器运行的迭代次数,以达到指定的公差。

方法

  1. fit(self,X,y [,check_input]) 适合坐标下降的模型。)
  2. get_params(获取此估算工具的参数。)
  3. path(X,y [,l1_ratio,eps,n_alphas,…]) 用坐标下降计算弹性网路径
  4. predict(X) 预测使用线性模型
  5. score(self,X,y [,sample_weight]) 返回预测的确定系数R ^ 2。
  6. set_params 设置此估算器的参数。
    原文链接:(https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html#sklearn.linear_model.Lasso)(友情提示:如打不开请手动粘贴复制)

首页(https://scikit-learn.org/stable/index.html#)

你可能感兴趣的:(线性回归之——LinearRegression、Ridge、Lasso基本用法)