[有监督学习]1.详细图解线性回归

news2025/1/17 5:51:59

线性回归(linear regression)是用于预测回归问题的算法。该算法不难理解,算法中根据训练数据计算使损失最小的参数的做法是有监督学习算法的共同之处。


概述
线性回归是对“目标变量随着某个特征变量的增大而增大(或者减小)”这种关联性建模的方法。这里以表 2-1 所示的特征变量x和目标变量y的组合数据为例。图 2-1 是对该数据进行线性回归建模而得到的直线。
▼表 2-1 特征变量 [插图] 和目标变量 [插图] 的组合数据


▲图 2-1 线性回归
图 2-1 的直线可写为 这是我们在中学阶段学过的一次函数,w1 是斜率(或者叫权重),w0 相当于在 y 轴上的截距。斜率w1和截距 w0 是由有监督学习的算法学到的参数,所以我们称之为学习参数。线性回归的学习参数是如何求得的呢?下面的“算法说明”部分将对此进行讲解。
另外,线性回归算法一般使用一个以上的特征变量创建模型,其中只有一个独立的特征变量的情况叫作一元回归。


算法说明
对于直线 ,只要给定不同的两个点,我们就能求出唯一的 w0 和 w1。但在线性回归中,我们需要根据不在一条直线上的点求出学习参数。下面使用表 2-2 的数据介绍学习参数的求法。


▼表 2-2 用于线性回归的数据

图 2-2a 和图 2-2b 是根据表 2-2 的数据绘制的两条不同的直线,分别是。这两条直线中的哪一条更好地表示了数据的关联性呢?我们可以通过均方误差进行定量判断。均方误差指的是目标变量和直线的差 的平方的平均值。当存在n 个数据时,可如下表示:


对图 2-2 的数据计算均方误差,得到图 2-2a 的均方误差约为 2.89,图 2-2b 的均方误差约为 5.83,前者的均方误差更小,因此图 2-2a 能比图 2-2b 更好地表示数据的关联性。

▲图 2-2 均方误差的比较


现在我们知道图 2-2a、图 2-2b 这两条直线的均方误差的值是不同的。
这两条直线的区别就是学习参数w0、w1。也就是说,改变学习参数 w0、w1,那么计算出的均方误差也会发生变化。这种表示误差和学习参数之间关系的函数叫作误差函数(或损失函数)。线性回归需要在各条直线中找出使误差函数值最小的参数(更具体的计算方法请参考后文的“均方误差的最小化方法”部分)。这种计算出使误差函数值最小的参数的思路在其他有监督学习算法中也是通用的。


示例代码
下面尝试对前面的表 2-1 的数据进行线性回归。使用 LinearRegression 类创建线性回归模型,并使用 fit 方法训练后,输出 intercept_ 的值以查看截距,输出 coef_ 的值以查看斜率。
▼示例代码

from sklearn.linear_model import LinearRegression
X = [[10.0], [8.0], [13.0], [9.0], [11.0], [14.0], [6.0], [4.0], [12.0], [7.0], [5.0]]
y = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]
model = LinearRegression()
model.fit(X, y)
print(model.intercept_) # 截距
print(model.coef_) # 斜率
y_pred = model.predict([[0], [1]])
print(y_pred) # 对x=0,x=1的预测结果

结果:

3.0000909090909094

[0.50009091]

[3.00009091 3.50018182]


详细说明
线性回归不成功的例子
我们发现线性回归适用于表 2-1 的数据,但是对于有些数据,线性回归可能不成功。
表 2-1 及示例代码中使用的数据是由统计学家 F.J. 安斯库姆(F.J. Anscombe)制作的数据集安斯库姆四重奏(Anscombe's Quartet)中的一部分。这个数据集的目的是说明可视化的重要性,其中汇总了包含表 2-1 在内的 4 组数据。
图 2-3 显示了对安斯库姆四重奏数据集的每一组数据分别进行线性回归的结果。尽管图 2-3 中的 4 张图是不同的散点图,但线性回归的学习参数(截距和斜率)却相同。另外,这些数据的平均值、方差和相关系数也几乎相同。


▲图 2-3 对安斯库姆四重奏数据集应用线性回归


下面来仔细看一下各组数据。图 2-3b 的数据看上去是沿曲线分布的,所以假定这组数据是线性分布的就不合适。图 2-3c 中有离群值,应考虑对其进行去除离群值的预处理,或者应用便于处理离群值的其他方法。图 2-3d 是对数据两两之间没有相关关系但存在离群值的数据集应用线性回归而得到回归直线的例子。对原本不遵循线性分布的数据强行进行线性回归也得不到好的结果。拿到数据之后,首先应该进行可视化,再考虑是否进行线性回归。


均方误差的最小化方法
在“算法说明”部分,我们了解了均方误差可用于评估具有不同学习参数的直线。
然而,虽然通过如表 2-3 所示的数据比较了不同的学习参数产生的误差大小,但我们还不了解具体的学习参数的计算方法。

▼表 2-3 学习参数和均方误差的关系

从表 2-3 可以看出,由于学习参数的变化,作为误差函数的均方误差也会发生变化。也就是说,均方误差可以使用学习参数的函数表示:

这时将表 2-2 的数据代入目标变量yi和特征变量xi,就可以仅用 w0、w1 表示均方误差:

该式是 w0、w1 的二次函数,函数图形如图 2-4 所示。从图 2-4 可以看出,当 w0、w1 发生变化时,误差的值也各不相同。另外,图 2-4 上标记星号的点对应于表 2-3 中的两种情况。表 2-3 中的 (a) 的学习参数与误差函数取最小值时的学习参数一致,可以看出这是数据点的最佳学习参数。

▲图 2-4 均方误差的最小化


各种线性回归和非线性回归
本节主要说明了一元回归。一元回归是指独立特征变量只有一个时的线性回归,独立特征变量为两个及以上时的线性回归叫作多元回归。另外,尽管独立特征变量只有一个,但包含 这种特征变量的次方项的线性回归叫作多项式回归。表 2-4 列出了一元回归、多元回归、多项式回归的例子,图 2-5 展示了与这些例子相应的图形。多项式回归对于特征变量 不是线性的,所以称之为“线性”回归可能让人觉得不太合适。

▲图 2-5 各种线性回归的例子
但是,是否为线性回归不是从特征变量来看的。从学习参数(在这个例子中是 的系数)的角度来看是线性的回归,我们才称为线性回归,所以多项式回归也属于线性回归。
▼表 2-4 各种线性回归的例子

下面再看一下非线性回归的例子。图 2-6 是 的图形。这些函数中的学习参数 w1和目标变量 y 之间的关系不是线性关系,所以被分类为非线性回归。

▲图 2-6 非线性回归的例子

———————————————————————————————————————————

文章来源:书籍《图解机器学习算法》

作者:秋庭伸也 杉山阿圣 寺田学

出版社:人民邮电出版社

ISBN:9787115563569

本篇文章仅用于学习和研究目的,不会用于任何商业用途。引用书籍《我的第一本算法书》的内容旨在分享知识和启发思考,尊重原著作者宫崎修一和石田保辉的知识产权。如有侵权或者版权纠纷,请及时联系作者。
———————————————————————————————————————————
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1720171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何利用智能算法降低成本,扩大收益?

算法交易(Algorithm Trading)是一种投资策略,它使用计算机算法来分析市场数据,制定交易决策,并自动执行交易。算法交易的主要目标是利用市场价格波动来获取利润,同时降低人为干预的风险和成本。 量化交易中…

django中,出现CSRF verification failed. Request aborted.错误

这是跨站点访问的防范机制&#xff0c;csrf是一个令牌&#xff0c;会验证登录&#xff0c;需要在setting中把 "django.middleware.csrViewMiddleware" 注释掉 并在html文件中的<body>内添加 {% csrf token %} 就可以了

使用shell命令开启隧道转发的方式

1.适用场景 中转电脑可以通公网&#xff0c;也可以通内网&#xff0c;想把内网映射出去&#xff0c;公网其他电脑就可以通过该隧道远程访问内网的情况 2.命令 开隧道&#xff08;21235是自定义的转发端口&#xff09;&#xff1a; ssh -R 21235:内网地址:ssh端口 用户名公网服…

DuDuTalk:营业厅智能质检终端在通信运营商线下营业厅应用价值

在通信行业日益竞争的今天&#xff0c;线下营业厅网点是企业与客户互动的黄金触点&#xff0c;但由于缺乏有效管控和人员能力素质的层次不齐&#xff0c;如何提升线下营业厅的服务质量、提高运营效率&#xff0c;成为各大通信运营商亟待解决的问题。 在此背景下&#xff0c;我…

本地电脑通过远程服务器进行ssh远程转发

☆ 问题描述 想要实现这样一个事情&#xff1a; 我想要提供一个ai服务&#xff0c;但是租计算服务器太贵了&#xff0c;我自己有配的台式机。那么用我的台式机作为服务器&#xff0c;租一个服务器做端口转发可行吗&#xff1f; ★ 解决方案 1. 修改服务器上的sshd_config文件…

一、初识Qt 之 Hello world

一、初识Qt 之 Hello world 提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 初识Qt 之 Hello world文章目录 一、Qt 简介二、Qt 获取安装三、Qt 初步使用四、Qt 之 Hello world1.新建一个项目 总结 一、Qt 简介 C &#xf…

html+css web前端 多边形

<!DOCTYPE html><html><head><meta charset"UTF-8"><title>多边形</title><style type"text/css">#pentagon_6_1 {position: absolute;top: 0px;height: 0; width: 100; border-left: 100px solid rgb(255, 255…

5.31——进军MYSQL

目录 简略版&#xff1a; 详解版&#xff1a; 一. myaql概述&#xff1a; 数据库&#xff1a; 数据库管理系统&#xff1a; SQL&#xff1a; 二. masql的安装&#xff1a; 启动与停止&#xff1a; 1. MYSQL提供的命令行 2. windows提供的命令行工具 三.数据模型 …

快手发布大模型产品“可图”,超20种创新AI图像玩法限免上线

近日&#xff0c;快手自研大模型产品“可图”&#xff08;Kolors&#xff09;正式对外开放&#xff0c;支持文生图和图生图两类功能&#xff0c;已上线20余种AI图像玩法。目前&#xff0c;用户可以通过“可图大模型”官方网站和微信小程序&#xff0c;免费使用各项AI图像功能。…

光学仪器镀膜上下料设备:智能化生产的引领者

当智能技术与制造业相融合&#xff0c;富唯智能镀膜上下料设备成为智能化生产的新引擎。它不仅将智能化、自动化理念融入到生产的各个环节&#xff0c;更为企业带来了生产效率的提升和成本的降低。 富唯智能镀膜上下料设备以其卓越的性能&#xff0c;在实现单面和两面镀膜的上料…

RocketMQ学习(2) 深入学习

RokcetMQ的介绍和基础知识见这篇博客——RocketMQ学习(1) 快速入门 本篇为上一篇的深入学习&#xff0c;很多基础知识不再赘述。 目录 消息重复消费问题(去重;幂等)布隆过滤器 重试机制死信消息 SpringBoot集成RocketMQ集成SpringBoot发送不同消息模式(同步消息)异步消息单向消…

预编码算法(个人总结)

引言 预编码算法是现代无线通信系统中的关键技术&#xff0c;特别是在多输入多输出&#xff08;MIMO&#xff09;系统中。它们通过在发送端对信号进行处理&#xff0c;减少干扰并提高信道容量。这种技术广泛应用于5G、Wi-Fi和卫星通信系统中。本教程将详细介绍预编码算法的背景…

高精度GNSS模块的无人机导航

高精度GNSS模块提供更高的精度和可靠性&#xff0c;有助于提高无人机的安全性和效率。这些模块允许无人机遵循预定的飞行路线&#xff0c;与障碍物保持安全距离&#xff0c;并以更高的精度悬停。高精度GNSS模块广泛应用于测绘、农业建设、石油天然气、公安等行业。 GNSS模块技…

文件系统小册(FusePosixK8s csi)【1 Fuse】

文件系统小册&#xff08;Fuse&Posix&K8s csi&#xff09;【1 Fuse&#xff1a;用户空间的文件系统】 Fuse(filesystem in userspace),是一个用户空间的文件系统。通过fuse内核模块的支持&#xff0c;开发者只需要根据fuse提供的接口实现具体的文件操作就可以实现一个文…

LNMP部署及应用

目录 1.LNMP概述 Nginx 特点 Nginx 作用 2.分布式部署LNMP操练 Nginx主机&#xff1a;CentOS 7-1 PHP主机: CentOS 7-2 1.LNMP概述 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&…

idea中使用maven-helper插件阅读排查【经典版】2

一 maven-helper的使用 1.1 helper页面 打开pom文件&#xff0c;并可以切换tab&#xff0c;简单使用&#xff0c;如下图&#xff1a; Conflicts&#xff08;查看冲突&#xff09; All Dependencies as List&#xff08;列表形式查看所有依赖&#xff09; All Dependencies …

字符串和字符串函数(2)

前言&#xff1a; 在字符串和字符串函数&#xff08;1&#xff09;-CSDN博客中&#xff0c;已将将字符串和字符函数的使用了解&#xff0c;并且实现模拟了一些字符串的库函数。 接下来将继续深入学习字符串和字符串函数。并且模拟实现一些较为复杂的函数。 可控制字符…

香港云服务器好还是国内的好?

香港云服务器与国内云服务器各有其优点和缺点&#xff0c;选择哪种类型的云服务器主要取决于业务需求、用户群体、网络需求以及成本考虑。以下是对两者进行详细比较的内容。 首先&#xff0c;从网络速度和稳定性来看&#xff0c;香港云服务器具有独特的优势。由于香港是全球数据…

day18

第一题 493. 翻转对 这道题我们采用分治的思想&#xff0c;通过单调性和双指针的策略来解决&#xff1a; 策略一&#xff1a; 我们通过递归将每一个分的左区域和右区域变成降序排列&#xff0c;最后在同一层的左右区域进行判断&#xff0c;当前数组为降序时&#xff0c;固定每…

Redis-Cluster模式基操篇

一、场景 1、搞一套6个主节点的Cluster集群 2、模拟数据正常读写 3、模拟单点故障 4、在不停服务的情况下将集群架构改为3主3从 二、环境规划 6台独立的服务器&#xff0c;端口18001~18006 192.169.14.121 192.169.14.122 192.169.14.123 192.169.14.124 192.169.14.125 192…