LinearRegression拟合一个带有系数w=(w1,...,wp)w=(w_1,...,w_p)w=(w1​,...,wp​)的线性模型,使得数据集实际观测数据和预测数据之间的残差平方和最小,其数学表达式为:
minw∣∣Xw−y∣∣22min_w||Xw-y||^2_2minw​∣∣Xw−y∣∣22​

LinearRegression 会调用 fit 方法来拟合数组 Xy,并且将线性模型的系数 w 存储在其成员变量 coef_ 中:

>>> from sklearn.linear_model import LinearRegression
>>> ols = LinearRegression()
# 训练
>>> ols.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
# 线性模型的系数存储在coef_
>>> print(ols.coef_)
[0.5 0.5]
# 线性模型的截距项
>>> print(ols.intercept_)
2.220446049250313e-16

然而,对于普通最小二乘的系数估计问题,其依赖于模型各个特征的相互独立性。当各个特征是相关的,且设计矩阵XXX的各项近似线性相关,那么,设计矩阵会趋向于奇异矩阵,这种特性导致最小二乘估计对于随机误差非常敏感,可能产生很大的方差。例如,在没有实验设计的情况下收集到的数据,这种多重共线性的情况可能真的会出现。

线性回归示例

下面的示例只使用了糖尿病数据集diabetes的第一个特征,便于绘图。可以在图中看到线性回归如何试图绘制一条最小化残差平方和的直线。

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score# 加载糖尿病数据
diabetes_x, diabetes_y = datasets.load_diabetes(return_X_y=True)
# 取糖尿病数据第三列为训练集
diabetes_x = diabetes_x[:, np.newaxis, 2]
# 划分训练集和测试集
diabetes_x_train, diabetes_x_test = diabetes_x[:-20], diabetes_x[-20:]
diabetes_y_train, diabetes_y_test = diabetes_y[:-20], diabetes_y[-20:]
# 创建线性模型对象
reg = linear_model.LinearRegression()
# 训练
reg.fit(diabetes_x_train, diabetes_y_train)
# 使用测试集预测
diabetes_y_pred = reg.predict(diabetes_x_test)
# 线性模型的系数
print("线性模型的系数:%s" % reg.coef_) # 线性模型的系数:[938.23786125]
# 均方误差
print("均方误差:%.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred)) # 均方误差:2548.07
# r2
print("R^2: %.2f" % r2_score(diabetes_y_test, diabetes_y_pred)) # R^2: 0.47# 绘图
plt.scatter(diabetes_x_test, diabetes_y_test, color='black')
plt.plot(diabetes_x_test, diabetes_y_pred, color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()

Sklearn实现普通最小二乘法相关推荐

  1. sklearn 回归 算法 最小二乘法

    模型的一些通用方法: lg = LinearRegression() lg.fit(X,y) lg.coef_ lg.intercept_ lg.predict(X_new) get_params([ ...

  2. 自查自纠 | 线性回归,你真的掌握了嘛?

    Datawhale 作者:尹晓丹,Datawhale优秀学习者 寄语:本文对线性回归算法的原理及模型,学习策略.算法求解和sklearn参数做了详细的讲解.同时,用例子进行Python代码实践. 线性 ...

  3. 我感觉这是目前讲得最明白的线性回归的文章了

    Datawhale 作者:尹晓丹,Datawhale优秀学习者 寄语:本文对线性回归算法的原理及模型,学习策略.算法求解和sklearn参数做了详细的讲解.同时,用例子进行Python代码实践. 线性 ...

  4. 仿京东开放平台框架,开发自己的开放平台(包含需求,服务端代码,SDK代码)...

    目录 1开放平台需求 1.1调用参数 1.2签名算法 2服务端代码,Java举例 2.1接口入口代码 2.2业务逻辑层 2.3基础工具类 3.SDK代码,Java举例 4.集成SDK,代码举例 现在开 ...

  5. 线性回归算法之鸢尾花特征分类【机器学习】

    文章目录 一.前言 1.1 本文原理 1.1 本文目的 二.实验过程 2.1使用scikit-learn机器学习包的算法,对鸢尾花进行分类 2.2 使用scikit-learn机器学习包的线性回归算法 ...

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

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

  7. 机器学习-02 基于sklearn 广义线性模型-普通最小二乘法

    机器学习 基于sklearn-02 从sklearn说起 线性回归 普通最小二乘法 案例分析 重要代码解释 线性回归 回归分析的主要工作,是根据统计获得的数据点来训练出一个函数表达式,根据这个函数表达 ...

  8. 线性回归最小二乘法计算步骤以及sklearn参数介绍

    介绍 线性回归是特征与标签之间建立一个关系来描绘特征和标签之间的关系. 预测函数的本质就是我们构建的模型,而构造的函数核心就是找出模型的参数向量w 最小二乘法(解析解)求解W 通过已知的MSE损失函数 ...

  9. 【sklearn】线性回归、最小二乘法、岭回归、Lasso回归

    文章目录 机器学习的sklearn库 一.回归分析 <1.1>线性回归 1.1.1.Python实现线性回归 <1.2>最小二乘法 1.2.1.MATLAB实现最小二乘法 1. ...

最新文章

  1. python3.6安装pygame-python3.6 安装pygame
  2. ajax 跨域 headers JavaScript ajax 跨域请求 +设置headers 实践
  3. 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project
  4. 用Docker容器自带的tensorflow serving部署模型对外服务
  5. mysql 禁止使用enum_MySQL慎用 ENUM 字段
  6. PHP 数组的内部实现
  7. Java连接数据库所遇到的坑,连接数据库,遇到一个很奇怪的问题……
  8. Windows系统下,使用Emacs+Putty操作远程机器
  9. 【CMAKE】指定编译器架构(x86 or x64)
  10. hsv封装好的调试工具类
  11. 广告位管理系统--跨域广告加载问题
  12. openwrt路由器完美破解成信宿舍校园网
  13. Samsung ML-1640/1641/1645/2240/2241/2245/scx4200/4300/4623/4824/4828免费清零软件2.1.2完全版
  14. 铁威马教程之如何轻松同步TNAS和云盘数据
  15. STARK论文记录(2021CVPR):Learning Spatio-Temporal Transformer for Visual Tracking
  16. 没错,我是高端吃瓜玩家(搞懂摩斯密码)
  17. npm i 命令安装失败提示:npm WARN read-shrinkwrap,解决方法
  18. 1.1 嵌入式系统的定义和组成
  19. Could not connect to SMTP host: smtp.163.com, port: 465, response: -1
  20. 20200924-OO

热门文章

  1. linux 内存容量换算,Hi3516A开发--内存换算
  2. crosstab交叉表_用Python统计推断——交叉表篇(上:crosstab与热图)
  3. solr定时实时重建索引和增量更新——sxt
  4. android 百度网盘 播放器,最好用的安卓播放器,支持云盘播放,看电影必备
  5. 【数据结构】线性表之单向链表的八大基操
  6. 去除VScode中的蓝色波浪线
  7. 设计模式之代理模式(第二篇)
  8. Centos 添加新硬盘,分区格式化、挂载硬盘
  9. windows自带hyperv安装虚拟机ubuntu与分辨率修改
  10. 苹果ios系统企业级开发者授信下载app时出现:‘此app开发者需要更新’‘出现一朵云app无法打开’有的手机可以打开有的手机无法打开情况解决方案