一文弄懂线性回归模型
1、引言
今天,我们将深入探讨机器学习中的三个关键概念:线性回归、代价函数和梯度下降。这些概念构成了许多机器学习算法的基础。起初,我决定不写一篇关于这些主题的文章,因为它们已经被广泛涉及。不过,我改变了主意,因为理解这些概念对于理解神经网络等更高级的主题至关重要。
闲话少说,我们直接开始吧!
2、问题引入
与任何机器学习问题一样,我们首先要回答一个具体的问题。在本例中,我们的朋友马克正在考虑出售他 2400 平方英尺的房子,并向我们寻求帮助,以确定最合适的挂牌价格。

凭直觉,我们首先要查找朋友所在社区的同类房屋。经过一番挖掘,我们找到了附近三栋房子的清单,并查看了它们的售价。当然,一个典型的数据集会有数千甚至数万个数据点,但我们只用这三栋房子就够了。


接着,让我们来绘制这些数据:

通过观察数据,房屋价格似乎与房屋面积呈线性关系。为了模拟这种关系,我们可以使用一种称为线性回归的机器学习技术。这需要在散点图上画出一条最能代表数据点模式的线。我们的模型可能是这样的:

根据这条线,2400 平方英尺的房子应该卖多少钱?

大概$260,000。这就是答案。
现在最大的问题是:我们如何确定数据的最佳拟合线?
3、 确认最佳拟合方程
经过上述分析,我们的问题转化为如何确定数据的最佳拟合线?我画的线可能有点偏,就像这样:

我们可以清楚地知道,这种情况下对数据的拟合程度远不如第一种情形。要找出最佳的拟合线,我们首先要做的就是用数学方法来衡量一条糟糕的线。
让我们来看看这条 "相对糟糕 "的拟合线,根据这条线,一栋 2000 平方英尺的房子应该卖 14 万美元,而我们知道它实际上卖了 30 万美元:

线上其他数值也有明显差异:

平均而言,这条线的上预测差额约为 94,000 美元(50,000 美元 + 160,000 美元 + 72,000 美元/3)。
事实上,我们有预测差额更小的预测线,如下:

这条线路的平均预测差额约为 44 000 美元,这要好得多。这 4.4 万美元被称为使用这条线的cost。cost就是用来衡量这条线与真实数据的偏差程度。与真实数据偏差最小或cost最低的预测线就是最佳选择。要找出哪条线是最佳线,我们需要使用损失cost函数。
4、损失函数
以上章节我们利用平均绝对误差 (MAE) 代价函数来确定实际房价与预测房价的偏差。这基本上是计算实际房价(用 y 表示,因为它代表 y 轴上的值)与预测房价(用 ŷ 表示)偏离程度的平均值。我们可以这样用以下数学公式来计算 MAE:

注:在计算 MAE 时使用绝对值,因为绝对值可确保预测值与实际值之间的差值始终为正值,无论预测值是高还是低。这样就可以公平地比较不同预测值之间的误差,因为如果不采用绝对值,正负差值就会抵消。
根据不同机器学习算法,我们可以采用不同类型的成本代价函数,也叫损失函数。对于我们的问题,我们将不使用 MAE,而是采用一种更加常用的方法,即平均平方误差 (MSE),它计算的是预测房价与实际房价之差的平方平均数。

归根结底,任何代价函数的目的都是使其取值最小化,并尽可能降低损失。
5、 直线方程
在深入研究损失函数之前,让我们先回顾一下基础知识。下面是一条直线的示例:
y = 1 + 2x,第一项数字称为截距,它告诉我们起始线应该有多高。

第二项告诉我们直线的角度(或专业术语,斜率):

既然我们已经理解了直线方程的工作原理,那么我们只需要确定这两个值的最佳值–斜率和截距,就可以得到线性回归问题的最佳拟合线。为了让事情变得更简单,让我们假设我们已经神奇地得到了斜率值 0.069。因此,我们的线性回归线方程如下:

要获得某一面积房屋的预测价格,我们只需输入截距值和所需房屋面积。例如,如果房屋面积为 1000 平方英尺,截距为 0时,如下:

得出预测房价为 69,000 美元。因此,我们现在要做的就是找到截距的最佳值,从而得到线性回归模型。
6、求解截距
如何来求解截距呢?有一种方法(我们很快就会发现这种方法非常乏味,而且并不有趣)是"暴力枚举",即反复猜测截距值,画一条 LR 线,然后计算 MSE。为了实验起见,让我们尝试一下这种方法。
首先随机猜测一个截距值(从 0 开始),然后绘制直线:

然后我们计算这条线的 MSE:

为了获得直观的理解,让我们在图表上绘制截距值和相应的 MSE:

接下来,我们将测试另一个截距值(比如 25),绘制相应的直线,并计算 MSE。

我们可以用不同的截距值(0、25、50、75、100、125、150 和 175)继续这一过程,直到最后得到如下图形:

从图中绘制的点可以看出,当截距设置为 100 时,MSE 最低。不过,在 75 和 100 之间可能还有另一个截距值,会导致更低的 MSE。寻找最小 MSE 的一种缓慢而痛苦的方法是,如下图所示,为截距设置更多的值:

尽管我们做出了努力,但仍无法确定我们已经找到了最低的 MSE 值。测试多个截距值的过程既繁琐又低效。幸运的是,梯度下降可以帮助我们解决这个问题,以更高效的方式找到最优解。这正是我们将在本系列第二部分中探讨的问题!
相关文章:
一文弄懂线性回归模型
1、引言 今天,我们将深入探讨机器学习中的三个关键概念:线性回归、代价函数和梯度下降。这些概念构成了许多机器学习算法的基础。起初,我决定不写一篇关于这些主题的文章,因为它们已经被广泛涉及。不过,我改变了主意&…...
uniApp获取实时定位
通过你获取的key放到项目manifest.json里面,对应填写你所需要的key值,还有高德用户名 用户名: key值的位置: 代码: html: <view class"intList pdNone"><view class"label">详细地…...
linux的source命令
用法 source file 也可以用.空格file来代替 . file 作用 在当前bash环境下读取并执行FileName中的命令. source(或点)令通常用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile等配置文件. 简单的说就是: source命令会把file里的命令在当前shell里一…...
特种作业操作证(焊接与热切割作业)2024年理论考试题库。
1.关于隐弧排烟罩下列说法正确的是()。 A.这类排烟罩适用于焊接大而长的焊件时排除电焊烟尘和有毒气体 B.这类排烟罩对焊接区实行密闭,能最大限度地减少臭氧等有毒气体的弥散 C.利用压缩空气从主管中高速喷出时,在副管形成负压…...
免交互和嵌入执行模式
目录 概念 语法格式 统计行数 赋值变量 修改密码编辑往文件里添加内容 编辑编辑引入变量 整体赋值编辑 加引号不赋值变量 expect实现免交互 免交互设置密码 免交互切换用户 嵌入执行模式 添加用户并免交互设置密码 免交互登录 传参实现ssh 练习 概念 …...
Hadoop版本演变、分布式集群搭建
Hadoop版本演变历史 Hadoop发行版非常的多,有华为发行版、Intel发行版、Cloudera Hadoop(CDH)、Hortonworks Hadoop(HDP),这些发行版都是基于Apache Hadoop衍生出来的。 目前Hadoop经历了三个大的版本。 hadoop1.x:HDFSMapReduce hadoop2.x…...
【Qt C++实现绘制仪表盘】
要在Qt C中绘制仪表盘,您可以使用QChart、QSeries、QBarSeries、QPointSeries等类。以下是一个简单的示例,演示如何使用这些类创建一个绘图仪表盘: #include <QApplication> #include <QChart> #include <QChartView> #in…...
一文看懂LLaMA 2:大型多模态模型的新里程碑
一文看懂LLaMA 2:大型多模态模型的新里程碑 LLaMA 2是OpenAI继GPT-3之后推出的又一重磅模型,它不仅在文本生成方面有所突破,而且在图像处理和语音识别等领域也展现出了令人印象深刻的能力。本文将全面介绍LLaMA 2的背景、技术细节、应用场景…...
基于Spring Boot构建淘客返利平台
基于Spring Boot构建淘客返利平台 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将讨论如何基于Spring Boot构建一个淘客返利平台。 淘客返利平台通过…...
Qt—贪吃蛇项目(由0到1实现贪吃蛇项目)
用Qt实现一个贪吃蛇项目 一、项目介绍二、游戏大厅界面实现2.1完成游戏大厅的背景图。2.2创建一个按钮,给它设置样式,并且可以跳转到别的页面 三、难度选择界面实现四、 游戏界面实现五、在文件中写入历史战绩5.1 从文件里提取分数5.2 把贪吃蛇的长度存入…...
Java导出Excel并邮件发送
一、导出Excel 添加maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.10-FINAL</version></dependency><dependency><groupId>org.apache.poi</groupI…...
【课程总结】Day12:YOLO的深入了解
前言 在【课程总结】Day11(下):YOLO的入门使用一节中,我们已经了解YOLO的使用方法,使用过程非常简单,训练时只需要三行代码:引入YOLO,构建模型,训练模型;预测…...
保护隐私,释放智能:使用LangChain和Presidio构建安全的AI问答系统
保护隐私,释放智能:使用LangChain和Presidio构建安全的AI问答系统 在人工智能(AI)飞速发展的今天,AI问答系统已经成为企业与客户互动的重要工具。然而,随之而来的个人数据隐私问题也日益凸显。如何在不泄露…...
【高考志愿】自动化
目录 一、专业概述 二、课程设计 三、就业前景与方向 四、志愿填报 五、自动化专业排名 一、专业概述 高考志愿自动化专业选择,无疑是迈向现代化工业与科技发展的一把金钥匙。自动化专业,作为现代工程领域的重要支柱,融合了计算机、电子…...
技巧类题目
目录 技巧类题目 136 只出现一次的数字 191 位1的个数 231. 2 的幂 169 多数元素 75 颜色分类 (双指针) 287. 寻找重复数 136 只出现一次的数字 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均…...
Vue3自定义指令参数修饰符值(3)
自定义指令参数修饰符值 在vue3中我们如何获取自定义的参数的内容,并根据业务来修改展示的内容呢,需要依靠mounted方法中的bindings参数来获取。 参考实例 directives/unit.js文件 export default function directiveUnit(app){app.directive("unit",{…...
HTML(23)——垂直对齐方式
垂直对齐方式 属性名:vertical-align 属性值效果baseline基线对齐(默认)top顶部对齐middle居中对齐bottom底部对齐 默认情况下浏览器对行内块,行内标签都按文字处理,默认基线对齐 导致图片看起来会偏上,文字偏下。 示例&#…...
linux查看二进制文件
在Linux中,查看二进制文件可以使用hexdump或xxd命令。 例如,要查看一个名为example.bin的二进制文件的内容,可以使用以下命令之一: 使用hexdump: bash hexdump -C example.bin使用xxd: bash xxd exam…...
营销翻车,杜国楹出面道歉,小罐茶的“大师作”故事仓皇结尾
“小罐茶,大师作”,这句slogan曾一度在央视平台长时间、高密度播放,成为家喻户晓的广告词,也打响了小罐茶品牌的名号。但同时,市场上关于“大师作”真实性的质疑也从未停息。 就在6月25日小罐茶十二周年发布会上&#…...
linux server下人脸检测与识别服务程序的系统架构设计
一、绪论 1.1 定义 1.2 研究背景及意义 1.3 相关技术综述 二、人脸检测与识别技术概述 2.1 人脸检测原理与算法 2.2 人脸识别技术及方法 2.3 人脸识别过程简介 三、人脸检测与识别服务程序的系统架构 3.1 系统架构设计 3.2 技术实现流程 四、后续设计及经验瞎谈 4.…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
