一文弄懂线性回归模型

1、引言

今天,我们将深入探讨机器学习中的三个关键概念:线性回归、代价函数和梯度下降。这些概念构成了许多机器学习算法的基础。起初,我决定不写一篇关于这些主题的文章,因为它们已经被广泛涉及。不过,我改变了主意,因为理解这些概念对于理解神经网络等更高级的主题至关重要。

闲话少说,我们直接开始吧!

2、问题引入

与任何机器学习问题一样,我们首先要回答一个具体的问题。在本例中,我们的朋友马克正在考虑出售他 2400 平方英尺的房子,并向我们寻求帮助,以确定最合适的挂牌价格。
在这里插入图片描述

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

在这里插入图片描述

接着,让我们来绘制这些数据:
在这里插入图片描述

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

根据这条线,2400 平方英尺的房子应该卖多少钱?
在这里插入图片描述

大概$260,000。这就是答案。

现在最大的问题是:我们如何确定数据的最佳拟合线?

3、 确认最佳拟合方程

经过上述分析,我们的问题转化为如何确定数据的最佳拟合线?我画的线可能有点偏,就像这样:
在这里插入图片描述

我们可以清楚地知道,这种情况下对数据的拟合程度远不如第一种情形。要找出最佳的拟合线,我们首先要做的就是用数学方法来衡量一条糟糕的线。

让我们来看看这条 "相对糟糕 "的拟合线,根据这条线,一栋 2000 平方英尺的房子应该卖 14 万美元,而我们知道它实际上卖了 30 万美元:

在这里插入图片描述

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

在这里插入图片描述

平均而言,这条线的上预测差额约为 94,000 美元(50,000 美元 + 160,000 美元 + 72,000 美元/3)。

事实上,我们有预测差额更小的预测线,如下:

在这里插入图片描述

这条线路的平均预测差额约为 44 000 美元,这要好得多。这 4.4 万美元被称为使用这条线的costcost就是用来衡量这条线与真实数据的偏差程度。与真实数据偏差最小或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 值。测试多个截距值的过程既繁琐又低效。幸运的是,梯度下降可以帮助我们解决这个问题,以更高效的方式找到最优解。这正是我们将在本系列第二部分中探讨的问题!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小白快速入门canvas画海报

小编以微信小程序原生语言举例 wxml页面&#xff1a; <canvas type"2d" id"myCanvas" style"width:375px;height:667px;"></canvas> js页面&#xff1a; import drawQrcode from ../../../utils/qrcode/weapp.qrcode.esmdata: {…

IDEA SpringBoot整合SpringData JPA(保姆级教程,超详细!!!)

目录 1. 简介 2. 创建SpringBoot项目 3. Maven依赖引入 4. 修改application.properties配置文件 5. Entity实体类编写 6. Dao层接口开发 7. 测试接口开发 8. 程序测试 1. 简介 本博客将详细介绍在IDEA中&#xff0c;如何整合SpringBoot与SpringData JPA&#xff0c;以…

EtherCAT笔记(四)——EtherCAT数据帧结构

EtherCAT数据包含2B的数据头和44~1948B的数据区。数据区由多个子报文组成。由于EtherCAT本身是通过以太网数据帧的形式传输&#xff0c;因此其协议帧中会携带以太网的帧头。 其中&#xff0c;解释如下&#xff1a; &#xff08;1&#xff09;以太网数据帧头&#xff1a;EtherC…

AUTOSAR NvM模块(一)

NvMBlockDescriptor [ECUC_NVM_00061] 用于存储所有特定于块的配置参数的容器。对于每个非易失性随机存取存储器&#xff08;NVRAM&#xff09;块&#xff0c;应该指定这个容器的一个实例。 NvMBlockCrcType 定义了NVRAM块的CRC数据宽度。根据Autosar标准&#xff0c;此参数…

KVB外汇:澳元/美元、澳元/纽元、英镑/澳元的走势如何?

摘要 本文对近期澳元/美元、澳元/纽元、英镑/澳元的技术走势进行了详细分析。通过对关键支撑位和阻力位的分析&#xff0c;我们可以更好地理解澳元在不同货币对中的表现。随着全球经济形势的变化&#xff0c;各国央行的货币政策对外汇市场的影响也愈发明显。本文旨在帮助投资者…

观成科技:证券行业加密业务安全风险监测与防御技术研究

摘要&#xff1a;解决证券⾏业加密流量威胁问题、加密流量中的应⽤⻛险问题&#xff0c;对若⼲证券⾏业的实际流量内容进⾏调研分析&#xff0c; 分析了证券⾏业加密流量⾯临的合规性⻛险和加密协议及证书本⾝存在的⻛险、以及可能存在的外部加密流量威 胁&#xff0c;并提出防…

用GAN生成奖杯

数据集链接&#xff1a;https://pan.baidu.com/s/19Uxc2ELiMG3acUtLeSTDTA?pwdwsyw 提取码&#xff1a;wsyw 我设置的图片大小为128*128&#xff0c;如果内存爆炸可以将batch_size调小&#xff0c;epoch我设置的2000&#xff0c;我感觉其实1000也够了。代码如下&#xff1a; …

信创认证 | Smartbi Insight V11成功适配申威3231处理器

在信息技术飞速发展的浪潮中&#xff0c;软硬件的深度融合与协同发展已成为推动行业创新的关键因素。 近日&#xff0c;思迈特商业智能与数据分析软件[简称&#xff1a;Smartbi Insight]V11在统信服务器操作系统V20和中电科申泰信息科技有限公司产品申威3231处理器环境下完成适…

CAN和CANFD数据写入.asc文件的dll

因为工作需要&#xff0c;需要做一些硬件不是CANoe的上位机&#xff08;比如说周立功CAN,NI-CAN&#xff09;&#xff0c;上位机需要有记录数据的功能&#xff0c;所以用Qt制作了一个记录数据的dll&#xff0c;方便重复使用&#xff08;因为有的客户指定了编程软件&#xff0c;…

51循迹小车(蓝牙+循迹+超声波+舵机+避障L298N)

基本驱动 L298N电机驱动模块负责供电和控制电机驱动 将电池12V供电接到12V供电上&#xff0c;作为输入。单片机及其他器件供电可以使用5V供电&#xff0c;这里的GND都接到一起。 输出A和输出B接到电机上&#xff0c;负责给电机供电和控制电机。 通道A使能和通道B使能以及逻…

【Windows下使用vckpg下载protoc之后环境变量问题】

使用vcpkg进行下载的protoc&#xff1a; vcpkg install protobuf protobuf:x64-windows 检查protoc版本时出现问题&#xff1a; “protoc”不是内部或外部命令&#xff0c;也不是可运行程序或批处理文件 尝试添加系统环境变量后没有反应。 这个时候找到vckpg下的packages目录…

如何利用ChatGPT寻找科研创新点?分享5个有效实践技巧

欢迎关注&#xff1a;智写AI&#xff0c;为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥交流&#xff1a;yida985 地表功能最强大的高级学术专业版已经开放&#xff0c;拥有全球领先的GPT学术科研应用&#xff0c;有兴趣…

鸿蒙开发设备管理:【@ohos.brightness (屏幕亮度)】

屏幕亮度 该模块提供屏幕亮度的设置接口。 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import brightness from ohos.brightness;brightness.setValue setValue(value: number):…

【Linux】网络编程套接字

一、预备知识 1.1 理解源IP地址和目的IP地址 在IP数据报的头部中&#xff0c;有两个IP地址&#xff0c;分别叫做源IP地址和目的IP地址。 源IP地址和目的IP地址是网络通信中常用的两个概念&#xff0c;他们代表了通信中的两个节点。 源IP地址是指发起通信的节点的IP地址&#…

在WSL Ubuntu中启用root用户的SSH服务

在 Ubuntu 中&#xff0c;默认情况下 root 用户是禁用 SSH 登录的&#xff0c;这是为了增加系统安全性。 一、修改配置 找到 PermitRootLogin 行&#xff1a;在文件中找到 PermitRootLogin 配置项。默认情况下&#xff0c;它通常被设置为 PermitRootLogin prohibit-password 或…

老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩?举个例子你就彻底懂了!!

老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩&#xff1f;举个例子你就彻底懂了&#xff01;&#xff01; 缓存穿透发生场景解决方案 缓存击穿解决方案 缓存雪崩发生场景解决方案 总结三者区分三者原因三者解决方案 想象一下&#xff0c;你开了一家便利店&#xff0c;店里…

FastAPI教程I

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…

从我邮毕业啦!!!

引言 时间过的好快&#xff0c;转眼间就要从北邮毕业了&#xff0c;距离上一次月度总结又过去了两个月&#xff0c;故作本次总结。 PS: https://github.com/WeiXiao-Hyy/blog整理了后端开发的知识网络&#xff0c;欢迎Star&#xff01; 毕业&#x1f393; 6月1号完成了自己的…

Windows server 2016.2019 .NET Framework 3.5安装包、安装步骤

windows server2019 操作系统 安装 sqlserver2008时提示缺少 .NET Frameword 3.5&#xff0c; 在功能里选择 .NET Frameword 3.5安装报错&#xff0c; 下载安装包&#xff0c;下载地址 https://download.csdn.net/download/qq445829096/89450429这里指定备份源路径 安装包解…

多供应商食品零售商城系统的会员营销设计和实现

在多供应商食品零售商城系统中&#xff0c;会员营销是提升用户粘性和增加销售的重要手段。一个有效的会员营销系统能够帮助平台更好地了解用户需求&#xff0c;提供个性化服务&#xff0c;进而提高用户满意度和忠诚度。本文将详细探讨多供应商食品零售商城系统的会员营销设计与…