sklearn代码实例学习笔记-1.1.1普通最小二乘法

Sklearn实现普通最小二乘法 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 方法来拟合数组 X, y,并且将线性模型的系数 w 存储在其成员变量 coef_ 中: >>> from sklearn.lin 阅读详情

1.算法

线性回归会拟合一个带有系数w=\left(w_{1}, \dots, w_{p}\right)的模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。其数学表达式为:\min _{w}\|X w-y\|_{2}^{2}

2.线性回归实例(Linear Regression Example)

此实例仅使用“糖尿病”数据集的第一个特征(实际上是其中一个),以展现回归技术的二维图。 从图中直线可以发现,显示线性回归是如何尝试绘制直线的。该直线将尽可能地最小化数据集中观察到的结果之间的残差平方和线性近似预测的结果。

另外,该实例还计算了系数矩阵,残差平方和还有方差分数(拟合程度R^2)。

This example uses the only the first feature of the diabetes dataset, in order to illustrate a two-dimensional plot of this regression technique. The straight line can be seen in the plot, showing how linear regression attempts to draw a straight line that will best minimize the residual sum of squares between the observed responses in the dataset, and the responses predicted by the linear approximation.

The coefficients, the residual sum of squares and the variance score are also calculated.

# Code source: Jaques Grobler
# License: BSD 3 clause

import matplotlib.pyplot as plt
import numpy as np
# 对应包的描述分别见:
# https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets
# https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model
# https://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics
from sklearn import datasets, linear_model
# 导入“均方差指标”和“R^2指标”
from sklearn.metrics import mean_squared_error, r2_score

# 加载糖尿病数据集
# Load the diabetes dataset
# 语句解释见:
# https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html#sklearn.datasets.load_diabetes
diabetes = datasets.load_diabetes()

# 只使用其中的一个特征进行回归分析(这里采用的是原数组中的第2列数据,将其提取出来并设置为列向量)
# Use only one feature
diabetes_X = diabetes.data[:, np.newaxis, 2]

# 将数据的特征分割成训练集和测试集
# Split the data into training/testing sets
# 前422个数据作为训练集,后20个作为测试集
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]

# 对标签也做同样的分割
# Split the targets into training/testing sets
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]

# 创建线性回归模型的对象
# Create linear regression object
# 语句解释见:
# https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression
regr = linear_model.LinearRegression()

# 用训练集训练数据
# Train the model using the training sets
# 语句解释见:
# https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression.fit
regr.fit(diabetes_X_train, diabetes_y_train)

# 用测试集测试数据
# Make predictions using the testing set
# 语句解释见:
# https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression.predict
diabetes_y_pred = regr.predict(diabetes_X_test)

# 打印系数矩阵
# The coefficients
print('Coefficients: \n', regr.coef_)

# 打印均方差
# The mean squared error
# 语句解释见:
# https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_squared_error.html#sklearn.metrics.mean_squared_error
print("Mean squared error: %.2f"
      % mean_squared_error(diabetes_y_test, diabetes_y_pred))

# 打印R^2值,这个值越接近1,说明拟合的效果越好
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))

# 结果可视化
# Plot outputs
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()

运行结果:

3.复杂度

该方法使用 X 的奇异值分解来计算最小二乘解。如果 X 是一个 size 为 (n, p) 的矩阵,若n大于等于p,则该算法复杂度为O(np^2)。 

机器学习 | Scikit Learn中的普通最小二乘法和岭回归 在统计建模中,普通最小二乘法(OLS)和岭回归是两种广泛使用的线性回归分析技术。OLS是一种传统的方法,它通过最小化预测值和实际值之间的平方误差之和来找到数据的最佳拟合线。然而,OLS可以遭受高方差和过拟合时,预测变量的数量是大的。为了解决这个问题,岭回归引入了一个正则化项,将系数缩小到零,这可以导致具有较低方差的更好模型。 阅读详情

相关推荐

sklearn学习总结(超全面)

sklearn的官网链接http://scikit-learn.org/stable/index.html# 目录 1. 分类、回归 2. 降维 3. 模型评估与选择 4. 数据预处理 大类 小类 适用问题 实现 说明 分类、回归 1.1 广义线性模型 1.1.1 普通最小二乘法 回归 sk...

fuqiuai的博客 4万+

[python] Sklearn(一)之最小二乘法

最小二乘法是一个很实用的工具,它的概念很容易理解,但用程序实现几个矩阵乘法有可能很容易搞错了,但是会python就啥都会了,难道不是么。废话不多说,上代码 一、基础版的最小二乘法demo from sklearn import linear_model reg = linear_model.LinearRegression() #reg.fit([(0,0),(1,1),(2,2)],[0,1,2])#拟合,写法1 X=[(0,0),(1,1),(2,2)] Y=[0,1,2] reg.fit(X,Y)#

静以修身,简以养德 3028

sklearn自学指南(part8)--普通最小二乘法

学习笔记,仅供参考,有错必纠 文章目录线性模型普通最小二乘法非负最小二乘法普通最小二乘复杂度 线性模型 以下是一组用于回归的方法,其中目标值预期为特征的线性组合。在数学表示法中,如果y^\hat{y}y^​是预测值: y^(w,x)=w0+w1x1+...+wpxp \hat{y}(w, x) = w_0 + w_1 x_1 + ... + w_p x_p y^​(w,x)=w0​+w1​x1​+...+wp​xp​ 在整个模块中,我们将向量w=(w1,...,wp)w = (w_1,..., w_p

小山羊的学习日志 452

scikit-learn广义线性模型之最小二乘法

本系列教程是scikit-learn学习的第一篇,我会根据scikit-learn官网教程和自己的学习,写关于scikit-learn的学习一系列教程。首先,我会介绍模型的一些基本知识,不会去深层次的推导公式是如何得出来的,会介绍一下这个模型的适应情况,以及用scikit-learn这个框架来实现这个模型。 一、最小二乘法 还记得高中物理实验课的时候,做实验的时候我们会首先记录一系列的数据,然

修炼之路 6529

STM32的GPS数据提取程序设计说明——基于NMEA0183协议

一、硬软件平台 本次程序实现效果为对GPS信号穿送来的数据进行筛选,并将筛选后的信息通过上位机显示出来,所以此次设计所需硬件包括STM32F407、RS232转TTL、CH340USB转串口模块,注意该模块在使用前,对应的系统需要安装驱动,否则串口调试助手无法识别,另外还包括JLink下载器。 本次代码设计软件为KEIL5并结合F4固件包,上位机系统为WIN7,主机系统为WIN10。 二、算法总体思路设计 由于GPS通过RS232将数据传送给板子,因此使用两个串口资源(串口1和串口2),其中一个用来

小景的博客 6181

STMCubeMX使用TB6612驱动编码轮并进行测速

TB6612电机驱动模块通过IN1和IN2引脚控制电机的旋转方向,并通过PWM信号的占空比调节电机速度。代码示例展示了如何使用GPIO控制电机的正反转,以及如何动态调整PWM占空比实现速度控制。系统设计中,TB6612与编码减速电机连接,STM32CubeMX用于初始化GPIO和PWM输出。编码器接口配置使用TIM3进行测速,TIM4定时器用于速度计算。Keil软件中编写的代码包括编码轮计数值获取、速度计算、电机正反转控制以及小车运动控制等功能。通过OLED显示速度,并实现电机的调试与测试。

wwivn的博客 2262

sklearn的持续更新-1.1 广义线性回归模型-1.1.1.

最近感觉学习ml没有什么动力,所有想把sklearn的东西翻译一下,顺便加深自己对算法的理解,也是提高当前本人的英语水平(目前英语惨目忍睹(ノ=Д=)ノ┻━┻)。我会尽量按照我自己的理解来进行翻译,有错还是希望大家能够理解,希望和大家一起学习进步。1.1.广义线性回归下面的公式是一组线性回归方法,其中是目标值和真实输入值组合。在数学概念中,假设为预测值。通过这个模型,我们指定这个向量作为一次性系数...

被遗弃的庸才博客 913

VM虚拟机下,通过无线,有线两种方式连接PLC的设置方法

1,VMware软件:编辑>虚拟网络编辑器。 2.右下角:更改设置(如果可以选中“添加网络”选项,则可考虑略过此步) 3.选中VMnet0,点击桥接模式,选中你的物理机有线网卡。点击确定。 4.点击添加网络,我的添加完是VMnet2,然后选中,像上一步样,点击桥接模式,在下拉菜单中选中笔记本的【无线网卡】,然后点击确定。 5.VMware软件:虚拟机>设置。 6.点击 添加>网络...

weixin_46441715的博客 2万+

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

scikit-learn(sklearn)是基于Python的机器学习库,建立在NumPy、SciPy等科学计算库之上,提供简洁的API接口,适合机器学习初学者。sklearn包含六大任务模块(分类、回归、聚类、降维、模型选择、预处理)和数据集模块(datasets)。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 9041

保姆级教程:用ROS2 Humble + Gazebo Classic 从零搭建一个能键盘控制的差分AGV模型

本文提供了一份详细的ROS2 Humble与Gazebo Classic教程,指导用户从零开始搭建一个键盘控制的差分AGV模型。内容涵盖环境配置、Xacro文件设计、Gazebo仿真集成以及键盘控制实现,特别针对常见问题提供解决方案,帮助开发者快速掌握ROS2机器人仿真技术。

weixin_30387423的博客 168

ENVI遥感技术

记录2024.03.06所遇到的遥感问题

qq_44453923的博客 4332

【机器学习基础 3】 sklearn库

Scikit-learn(简称sklearn)是一个用于机器学习的Python库,它包含了许多常用的机器学习算法、预处理技术、模型选择和评估工具等,可以方便地进行数据挖掘和数据分析。Scikit-learn建立在NumPy、SciPy和Matplotlib之上。

yewanyuan的博客 1万+

Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory的理论简述和python仿真实现(附源码)

经典论文Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory的学习与编程仿真,提供源码

m0_59701926的博客 1238

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

机器学习 基于sklearn-02 从sklearn说起线性回归普通最小二乘法案例分析 线性回归 回归分析的主要工作,是根据统计获得的数据点来训练出一个函数表达式,根据这个函数表达式来对新的数据点进行预测。 线性是指线性方程。线性方程也就是一次函数,一元一次函数的定义式如下所以。 y=k∗x+by=k*x+by=k∗x+b 在做回归分析时,数据的影响因素不止一个因此需要使用多元一次函数来拟合。预测出的值为预测值,用y^\hat{y}y^​来表示。真实值用y{y}y来表示。 y^(ω,x)=ω0+ω1x1+⋯

bubid的博客 590

FFmpeg音频转换避坑实录:为什么VOS的REC转MP3比WAV转MP3体积小一半?

本文深入解析了FFmpeg在VOS系统REC格式音频转换中的优化技巧,揭示了REC转MP3比WAV转MP3体积小一半的原因。通过分析REC格式的压缩特性、转码参数陷阱及FFmpeg调优方法,帮助开发者实现高效音频转换,显著降低存储成本。

weixin_30752699的博客 527

如何通过单步调试的方法,找到 SAP Gateway 到底把 Fiori 应用发送的 OData 请求,投递到哪一台 ABAP 后台服务器了?

这是一个 Count 请求,得到服务器响应的数据是 204,这个 204 会以数字的形式,显示在 Fiori Launchpad tile 上。那如果当前 Gateway 系统可以连接到多台 ABAP 后台服务器,比如下图所示,可以连接 SAP S/4HANA,ERP 或者 SAP CRM,我怎么知道 SAP UI5 应用上显示的数据,到底来自哪一台 ABAP 后台服务器呢?,就是上图 ABAP 调试器里断点停留的位置,即 SAP Frontend 服务器,通过 RFC 将 OData 请求投递给。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 642

sklearn 回归python_机器学习:scipy和sklearn中普通最小二乘法与多项式回归的使用对...

相关内容连接:有些内容已经在上面两篇博文中提到了,所以就不重复了。这里主要讲的是sklearn包与scipy包中相关函数的区别。并且多项式回归和普通最小二乘法联系比较紧密,所以也放到此处讲了。1.普通最小二乘法1)文一中的数据采用sklearn包的函数拟合from sklearn importlinear_modelimportnumpy as npimportmatplotlib.pyplot ...

weixin_30120123的博客 524

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

01_sklearn--监督学习——广义线性模型,普通最小二乘法

1.1.广义线性模型 本章节主要讲述一些用于回归的方法,其中目标值y是输入变量x的线性组合。数学概念表示为:如果是预测值,那么有: (w,x)=++...+ 在整个模块中,我们定义向量作为coef_,定义作为intercept_。 如果需要使用广义线性模型进行分类,请参阅logistic回归。 ...

涂作权的博客 732

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

sklearn代码实例学习目录

目录 0.前言 1.监督学习 1.1广义线性模型 1.1.1普通最小二乘法 0.前言 该Python库的自学顺序参考于Scikit-learn 0.21.x 中文文档。自学方式是尝试解释并理解其提供的代码实例,其中会对其应用到的部分数据集和接口进行进一步的学习或者提供相应的参考链接。 相关博文若存在侵权行为请务必及时联系博主删除! 1.监督学习 1.1广义线性模型 1.1...

Zee_Chao的博客 729

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

sklearn机器学习库学习笔记

1.1广义线性模型 普通最小二乘法 from sklearn import linear_model reg = linear_model.LinearRegression() reg.fit([[0,0],[1,1],[2,2]],[0,1,2]) reg.coef_和reg.intercept_中会保存权重参数和初始化参数类型 岭回归,对系数大小增加惩罚项,最小化带惩罚项的残差平方和 >>> from sklearn import linear_model >&gt

weixin_42161578的博客 477

使用 Scikit-learn 实现普通最小二乘法与非负最小二乘法

Scikit-learn 是一个功能强大的机器学习库,它提供了简单易用的接口来实现各种机器学习算法。本文将详细介绍如何使用 Scikit-learn 实现普通最小二乘法(Ordinary Least Squares, OLS)和非负最小二乘法(Non-Negative Least Squares, NNLS)。我们将对两种方法的公式、操作范围、优劣势以及结果进行对比分析。

MoRanzhi1203的博客 1638

sklearn 模型总结

sklearn结构图Skleran 线性模型 中文文档. sklearn结构图 Skleran 线性模型 模型 解决问题 实现 说明 普通最小二乘法 回归 手机 $12 导管 $1

LaoChen_ZeroonE 990

scikit-learn 普通最小二乘法

scikit-learn 最小二乘法

qq_39594033的博客 895

Python 回归 普通最小二乘法(Ordinary Least Squares)

广义线性回归模型: 把作为系数向量(coef_);把作为截距(intercept_) 1.普通最小二乘法(Ordinary Least Squares) 线性回归的目的就是是的预测值与实际值的残差平方和最小: import matplotlib.pyplot as plt ...

chuanglongquan4694的博客 465

2024-11-18-sklearn学习(1)线性回归(1)

sklearn学习(1)-线性回归(1)

weixin_42269028的博客 723

【机器学习】1. 线性模型 - 普通最小二乘法

文章目录1. 用于回归的线性模型2. 线性回归(普通最小二乘法) 线性模型利用输入特征的线性函数(linear function)进行预测 1. 用于回归的线性模型 对于回归问题,线性模型预测的一般公式如下: y^=w[0]∗x[0]+w[1]∗x[1]+⋯+w[p]∗x[p]+b\hat{y} = w[0] * x[0] + w[1] * x[1] + \cdots + w[p] * x[p] + by^​=w[0]∗x[0]+w[1]∗x[1]+⋯+w[p]∗x[p]+b 这里x[0]x[0]x[0]

ZhShy 2238
上一篇: AcWing 53. 最小的k个数(堆+快速排序的轴点选择函数)
下一篇: sklearn代码实例学习目录
Zee_Chao
博客等级 码龄11年 168粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值