文章目录

  • 1.LinearRegression
    • 官方案例
  • 2.Ridge
    • 官方案例
  • 3.LASSO
    • 官方案例
  • 4.ElasticNet
    • 官方案例

1.LinearRegression

from sklearn.linear_model import LinearRegressionLinearRegression(*, fit_intercept=True, normalize=False, copy_X=True,n_jobs=None, positive=False)- Parameters(参数)fit_intercept : bool, default=True是否计算此模型的截距。如果设置为False,则不会在计算中使用截距normalize : bool, default=False当fit_intercept设置为False时,将忽略此参数。如果为True,则将在回归之前通过减去均值并除以l2-范数来对回归变量X进行归一化。如果要标准化,请在使用normalize = False的估算器上调用fit之前使用StandardScaler。copy_X : bool, default=True如果为True,将复制X;否则,将会被覆盖n_jobs : int, default=None用于计算的作业数,-1表示使用所有处理器,用于加速positive : bool, default=False设置为True时,强制系数为正。仅密集阵列支持此选项。- Attributes(属性)coef_ : array of shape (n_features, ) or (n_targets, n_features)线性回归问题的估计系数,输出theta_1到theta_n的值rank_ : int矩阵X的等级。仅当X密集时可用singular_ : array of shape (min(X, y),)X的奇异值。仅当X密集时可用。intercept_ : float or array of shape (n_targets,)线性模型中的独立项,输出theta_0的值。如果fit_intercept = False,则设置为0- Methods(方法)fit(X, y[, sample_weight])拟合线性模型get_params([deep=True])获取此估算器的参数predict(X)使用线性模型进行预测score(X, y[, sample_weight])返回预测的确定系数R2set_params(**params)设置此估算器的参数

官方案例

>>> import numpy as np
>>> from sklearn.linear_model import LinearRegression
>>> X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
>>> # y = 1 * x_0 + 2 * x_1 + 3
>>> y = np.dot(X, np.array([1, 2])) + 3
>>> reg = LinearRegression().fit(X, y)
>>> reg.score(X, y)
1.0
>>> reg.coef_
array([1., 2.])
>>> reg.intercept_
3.0000...
>>> reg.predict(np.array([[3, 5]]))
array([16.])

2.Ridge

from sklearn.linear_model import Ridge超参数alpha
Ridge(alpha=1.0, *, fit_intercept=True, normalize=False, copy_X=True,max_iter=None, tol=0.001, solver='auto', random_state=None)- Parameters(参数)alpha : {float, ndarray of shape (n_targets,)}, default=1.0正则强度:必须为正浮点数。正则化改善了问题的条件并减小了估计的方差。较大的值表示更强的正则化。在其他线性模型(例如LogisticRegression或LinearSVC)中,Alpha对应于1 /(2C)。如果传递数组,则认为惩罚是特定于目标的。因此,它们必须在数量上对应。fit_intercept : bool, default=True是否计算此模型的截距。如果设置为False,则不会在计算中使用截距normalize : bool, default=False当fit_intercept设置为False时,将忽略此参数。如果为True,则将在回归之前通过减去均值并除以l2-范数来对回归变量X进行归一化。如果要标准化,请在使用normalize = False的估算器上调用fit之前使用StandardScaler。copy_X : bool, default=True如果为True,将复制X;否则,将会被覆盖max_iter : int, default=None共轭梯度求解的最大迭代次数。对于' sparse_cg '和' lsqr '求解器,默认值由scipy.sparse.linalg决定。对于“sag”求解器,默认值是1000。tol : float, default=1e-3解的精度solver{‘auto’, ‘svd’, ‘cholesky’, ‘lsqr’, ‘sparse_cg’, ‘sag’, ‘saga’}, default=’auto’在计算例程中使用的求解器auto:根据数据类型自动选择解算器svd:使用X的奇异值分解来计算岭系数cholesky:使用标准的scipy.linalg,求解函数得到一个封闭解lsqr:使用专用的正则化最小二乘例程scipy.sparse.linalg.lsqr。它是最快的,并且使用了迭代过程。sparse_cg:使用在scipy.sparse. linalgc .cg中找到的共轭梯度求解器‘sag’, ‘saga’ : 使用随机平均梯度下降,当n_samples和n_features都很大时,通常比其他求解方法更快random_state : int, RandomState instance, default=None当solver == ' sag '或' saga '洗牌数据时使用- Attributes(属性)coef_ : ndarray of shape (n_features,) or (n_targets, n_features)权重向量intercept_ : float or array of shape (n_targets,)线性模型中的独立项,输出theta_0的值。如果fit_intercept = False,则设置为0n_iter_ : None or ndarray of shape (n_targets,)每个目标的实际迭代次数。仅适用于sag和lsqr求解器。其他求解器将返回None。- Methods(方法)fit(X, y[, sample_weight])拟合线性模型get_params([deep=True])获取此估算器的参数predict(X)使用线性模型进行预测score(X, y[, sample_weight])返回预测的确定系数R2set_params(**params)设置此估算器的参数

常用参数

alpha:较大的值表示更强的正则化。浮点数
sample_weight:样本权重,默认无。
solver:求解方法,{‘auto’, ‘svd’, ‘cholesky’, ‘lsqr’, ‘sparse_cg’, ‘sag’, ‘saga’}, 默认=’auto’。
“ svd”使用X的奇异值分解来计算Ridge系数。
'cholesky'使用标准的scipy.linalg.solve函数通过dot(XT,X)的Cholesky分解获得封闭形式的解。
'sparse_cg'使用scipy.sparse.linalg.cg中的共轭梯度求解器。作为一种迭代算法,对于大规模数据(可能设置tol和max_iter),此求解器比“ Cholesky”更合适。
lsqr”使用专用的正则化最小二乘例程scipy.sparse.linalg.lsqr。它是最快的,并且使用迭代过程。“ sag”使用随机平均梯度下降,
“ saga”使用其改进的无偏版本SAGA。两种方法都使用迭代过程,并且当n_samples和n_features都很大时,通常比其他求解器更快。
请注意,只有在比例大致相同的要素上才能确保“ sag”和“ saga”快速收敛。您可以使用sklearn.preprocessing中的缩放器对数据进行预处理。
最后五个求解器均支持密集和稀疏数据。但是,当fit_intercept为True时,仅'sag'和'sparse_cg'支持稀疏输入。

官方案例

>>> from sklearn.linear_model import Ridge
>>> 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)
>>> clf = Ridge(alpha=1.0)
>>> clf.fit(X, y)

3.LASSO

from sklearn.linear_model import Lasso超参数alpha
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')- Parameters(参数)alpha : float, default=1.0L1项的常数。默认为1.0。alpha = 0等于一个普通的最小二乘,由线性回归对象求解fit_intercept : bool, default=True是否计算此模型的截距。如果设置为False,则不会在计算中使用截距normalize : bool, default=False当fit_intercept设置为False时,将忽略此参数。如果为True,则将在回归之前通过减去均值并除以l2-范数来对回归变量X进行归一化。如果要标准化,请在使用normalize = False的估算器上调用fit之前使用StandardScalerprecompute :‘auto’, bool or array-like of shape (n_features, n_features), default=False是否使用预先计算的矩阵来加速计算。如果设置为“自动”,让我们来决定。Gram矩阵也可以作为参数传递copy_X : bool, default=True如果为True,将复制X;否则,将会被覆盖max_iter : int, default=None最大迭代次数tol : float, default=1e-4优化的公差:如果更新比tol小,优化代码会检查双间隙的最优性,并继续,直到它比tol小。warm_start : bool, default=False当设置为True时,重用前一个调用的解决方案以适应初始化positive : bool, default=False当设置为True时,强制系数为正random_state : int, RandomState instance, default=None选择要更新的随机特征的伪随机数生成器的种子selection : {‘cyclic’, ‘random’}, default=’cyclic’如果设置为“random”,默认情况下,随机系数会在每次迭代时更新- Attributes(属性)coef_: ndarray of shape (n_features,) or (n_targets, n_features)参数向量(代价函数公式中的w)dual_gap_ : float or ndarray of shape (n_targets,)给定参数alpha,优化结束时的双间隙,形状与每次观察y相同sparse_coef_ : sparse matrix of shape (n_features, 1) or (n_targets, n_features)拟合系数_的稀疏表示intercept_ : float or ndarray of shape (n_targets,)决策函数中的独立项n_iter_ : int or list of int坐标下降求解器为达到指定公差而运行的迭代次数- Methods(方法)fit(X, y[, sample_weight])拟合模型get_params([deep=True])获取此估算器的参数path(*args, **kwargs)用坐标下降法计算弹性网络路径predict(X)使用线性模型进行预测score(X, y[, sample_weight])返回预测的确定系数R2set_params(**params)设置此估算器的参数

常用参数:

alpha:正则化强度,1.0代表标准最小二乘。
fit_intercept:是否计算模型截距。默认true。
normalize:是否标准化,默认false。
positive:是否强制系数为正,默认false。

官方案例

>>> from sklearn import linear_model
>>> clf = linear_model.Lasso(alpha=0.1)
>>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
Lasso(alpha=0.1)
>>> print(clf.coef_)
[0.85 0.  ]
>>> print(clf.intercept_)
0.15...

4.ElasticNet

from sklearn.linear_model import ElasticNet超参数为alpha、l1_ratio
ElasticNet(alpha=1.0, *, l1_ratio=0.5, fit_intercept=True, normalize=False,precompute=False, max_iter=1000, copy_X=True, tol=0.0001, warm_start=False,positive=False, random_state=None, selection='cyclic')- Parameters(参数)alpha:float, default=1.0乘以惩罚项的常数。默认为1.0l1_ratio:float, default=0.5ElasticNet混合参数,0 <= l1_ratio <= 1。对于l1_ratio = 0,惩罚是L2。对于l1_ratio = 1,这是一个L1惩罚。当0 < l1_ratio < 1时,罚点球是L1和L2的组合。fit_intercept : bool, default=True是否应该估算截距normalize : bool, default=False当fit_intercept设置为False时,此参数将被忽略。如果为真,回归变量X将在回归前通过减去均值并除以l2范数进行标准化precompute :bool or array-like of shape (n_features, n_features), default=False是否使用预先计算的矩阵来加速计算max_iter : int, default=1000最大迭代次数copy_X : bool, default=True如果为真,X将被复制;否则,它可能被覆盖。tol : float, default=1e-4优化的公差:如果更新比tol小,优化代码会检查双间隙的最优性,并继续,直到它比tol小。warm_start : bool, default=False当设置为True时,重用前一个调用的解决方案以适应初始化,否则,只需删除前一个解决方案positive : bool, default=False当设置为True时,强制系数为正random_state : int, RandomState instance, default=None选择要更新的随机特征的伪随机数生成器的种子selection : {‘cyclic’, ‘random’}, default=’cyclic’如果设置为“random”,默认情况下,随机系数会在每次迭代时更新- Attributes(属性)coef_ : ndarray of shape (n_features,) or (n_targets, n_features)参数向量(代价函数公式中的w)sparse_coef_ : sparse matrix of shape (n_features,) or (n_tasks, n_features)拟合系数_的稀疏表示intercept_ : float or ndarray of shape (n_targets,)决策函数中的独立项n_iter_ : list of int坐标下降求解器为达到指定公差而运行的迭代次数dual_gap_ : float or ndarray of shape (n_targets,)给定参数alpha,优化结束时的双间隙,形状与每次观察y相同。- Methods(方法)fit(X, y[, sample_weight, check_input])用坐标下降拟合模型get_params([deep])获取这个估计量的参数path(*args, **kwargs)用坐标下降法计算弹性网络路径predict(X)使用线性模型进行预测score(X, y[, sample_weight])返回预测的确定系数R2set_params(**params)设置该估计量的参数

官方案例

from sklearn.linear_model import ElasticNet
from sklearn.datasets import make_regression>>> X, y = make_regression(n_features=2, random_state=0)
>>> regr = ElasticNet(random_state=0)
>>> regr.fit(X, y)
ElasticNet(random_state=0)
>>> print(regr.coef_)
[18.83816048 64.55968825]
>>> print(regr.intercept_)
1.451...
>>> print(regr.predict([[0, 0]]))
[1.451...]

1.1 API : LinearRegression、Ridge、LASSO、ElasticNet相关推荐

  1. CSS中盒子模型、嵌套盒子中垂直外边距塌陷问题解决方案、标准盒模型、怪异盒模型

    盒子模型(Box Model): 指把HTML页面中的元素看作是一个矩形的盒子,也称容器,这个盒子从内到外由:元素的内容(content).内边距(padding).边框(border).外边距(ma ...

  2. 机器学习接口代码之 Ridge、Lasso、Elasitc Net

    目录 Ridge Regression (岭回归) Lasso Regression Elasitc Net(弹性网络) 案例:葡萄酒质量预测 官网地址https://scikit-learn.org ...

  3. 一文读懂正则化:LASSO回归、Ridge回归、ElasticNet 回归

    将L1.L2或L1和L2正则化同时应用于线性回归 你可能听说过"Ridge"."Lasso"和"ElasticNet"这样的术语.这些技术术 ...

  4. 一、线性模型----Lasso、Ridge回归及正则化的初步理解

    一些基本概念 正则性: 正则性一般用来刻画函数的光滑程度,正则性越高,函数的光滑性越好.通常用Lipschitz指数k来表征函数的正则性.Lipschitz指数刻画了函数f与局部多项式的逼近程度,而函 ...

  5. 一天一个机器学习小知识——Lasso、Ridge以及ElasticNet

    文章目录 前言 一.算法推导 1.1 Lasso模型 1.2 Lasso策略 1.3 Lasso算法 2.1 Ridge模型 2.2 Ridge策略 2.3 Ridge算法 二.应用场景 三.代码实现 ...

  6. 岭回归(ridge回归)、lasso回归、ElasticNet回归

    作者:离散梦 欢迎大家给出宝贵的建议! 岭回归(ridge回归).lasso回归.ElasticNet回归 为了防止过拟合的现象出现,引入以上优化方法.(正则化) 岭回归就是引入L2正则化项 lass ...

  7. 13_线性回归分析、线性模型、损失函数、最小二乘法之梯度下降、回归性能评估、sklearn回归评估API、线性回归正规方程,梯度下降API、梯度下降 和 正规方程对比

    1.线性回归 1.1 线性模型 试图学得一个通过属性的线性组合来进行预测的函数: 1.2 定义 定义:线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析.其中特点为一个或多个称为回归系数的模 ...

  8. 笔记︱范数正则化L0、L1、L2-岭回归Lasso回归(稀疏与特征工程)

    机器学习中的范数规则化之(一)L0.L1与L2范数 博客的学习笔记,对一些要点进行摘录.规则化也有其他名称,比如统计学术中比较多的叫做增加惩罚项:还有现在比较多的正则化. -------------- ...

  9. 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据...

    原文链接:http://tecdat.cn/?p=23378 1 介绍 在本文中,我们将研究以下主题 证明为什么低维预测模型在高维中会失败. 进行主成分回归(PCR). 使用glmnet()进行岭回归 ...

  10. 次梯度(坐标法)、迭代加权最小二乘、ADMM求解Lasso

    Lasso的特性及简介:  在最小二乘中,常把岭回归与Lasso来进行比较,它们都能对数据防止过拟合,这是为什么呢?  当特征之间存在高度相关关系的时候,假设有两个特征高度负相关,那么不带正则化的回归 ...

最新文章

  1. vue中如何使用i18n实现国际化
  2. 力求企业的内部公平性
  3. 获取map第一个的key和value_谁要是再敢用Map传参,我过去就是一JIO
  4. GM9 tile empty issue - ( not figured out )
  5. android 布局完成,Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享...
  6. 20190819:(leetcode习题)字符串中的第一个唯一字符
  7. [Python] L1-004. 计算摄氏温度-PAT团体程序设计天梯赛GPLT
  8. 2.8 循环语句介绍
  9. 打开天窗:应用大脑科学提升两性之间的职场关系
  10. (附源码)springboot大学生就业质量调查分析系统 毕业设计161457
  11. 计算机课程进制的转换,计算机课程设计 进制转换
  12. linux-一条命令,找出包含指定字符串的进程并杀死
  13. Swift--调用系统导航Apple map
  14. NPC整流器,三电平,中点钳位。PWM整流器三电平模型。simulink
  15. C++函数重载(6) - main函数重载
  16. 为什么深度学习都在用python,你知道吗
  17. TM1637+stm32 HAL库
  18. android listview固定内容,android ListView详解
  19. Invalid attempt to spread non-iterable instance错误
  20. 计算机控制器输入设备的功能是,计算机5大部件之一的控制器的作用是什么?...

热门文章

  1. 英文论文中“such as, for example, e.g., i.e., etc., et al. ”的用法分析 (转)
  2. 显示js对象所有属性和方法的函数
  3. 装饰模式/适配器模式/代理模式
  4. Azure database
  5. linux service start|stop|restart
  6. Front End Developer Questions 前端开发人员问题(二)
  7. mongoDB--1 概念
  8. android 中管理短信
  9. [转]二分图的必须边
  10. Ruby on Rails 实践