一文弄懂线性回归模型

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 值。测试多个截距值的过程既繁琐又低效。幸运的是,梯度下降可以帮助我们解决这个问题,以更高效的方式找到最优解。这正是我们将在本系列第二部分中探讨的问题!

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

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

相关文章

[图解]SysML和EA建模住宅安全系统-02-现有运营领域-块定义图

1 00:00:00,840 --> 00:00:02,440 首先我们来看画在哪里 2 00:00:02,570 --> 00:00:08,310 你看,这是图的类型,图里面内容 3 00:00:08,320 --> 00:00:10,780 这是元素类型 4 00:00:10,790 --> 00:00:14,900 这是位置,哪个包 …

Halcon 文本文件操作,形态学

一文件的读写 *******************************************************向文本文件写入字符串内容*************************************************************read_image (Image, fabrik)threshold (Image, Region, 0, 120)area_center (Region, Area, Row, Column)open_…

嘉立创学习

1.两个设置,一般用左边那个 2.焊盘分类 基本焊盘 热风盘:也叫花焊盘(负片) 隔离焊盘:外面那圈黑色,用作隔离(负片) 钢网层:(锡膏) 阻焊层&…

【php】【mysql】【layui】 原生初级简易留言簿系统成品代码动态网站开发网页WEB浏览器端B/S结构

更多项目点击👆👆👆完整项目成品专栏 【php】【mysql】【layui】 原生初级简易留言簿系统成品代码动态网站开发网页WEB浏览器端B/S结构 获取源码方式项目说明:文件包含:项目运行环境项目运行截图 获取源码方式 加Q群…

MySQL高级-SQL优化- update 优化(尽量根据主键/索引字段进行数据更新,避免行锁升级为表锁)

文章目录 0、update 优化1、创建表2、默认是行锁3、行锁升级为表锁4、给name字段建立索引 0、update 优化 InnoDB的行锁是针对索引加的锁,不是针对记录加的锁,并且该索引不能失效,否则会从行锁升级为表锁。 1、创建表 create table course(…

CUDA 编程

## blocksize和gridsize设置 使用deviceQuery查看GPU相关信息(下图为1080 ti)blocksize的最大值建议不要超过Maximum number of threads per block(1024)由于每个block里的线程需要被分为数个wrap,而wrap size为32(Warp size&…

搭建企业内网pypi镜像库,让python在内网也能像互联网一样安装pip库

目录 知识点实验1.服务器安装python2.新建一个目录/mirror/pip,用于存储pypi文件,作为仓库目录3.下载python中的所需包放至仓库文件夹/mirror/pip3.1. 新建requirement.py脚本(将清华pypi镜像库文件列表粘贴到requirement.txt文件中&#xff…

【MATLAB源码-第231期】基于matlab的polar码编码译码仿真,对比SC,SCL,BP,SCAN,SSC等译码算法误码率。

操作环境: MATLAB 2022a 1、算法描述 极化码(Polar Code) 极化码(Polar Code)是一种新型的信道编码技术,由土耳其裔教授Erdal Arıkan在2008年提出。极化码在理论上被证明能够在信道容量上达到香农极限…

成熟ICT测试系统与LabVIEW定制开发的比较

ICT(In-Circuit Test)测试系统是电子制造行业中用于电路板(PCB)组件检测的重要工具。市场上有许多成熟的ICT测试系统,如Keysight、Teradyne、SPEA等公司提供的商用解决方案。此外,LabVIEW作为一种强大的图形…

单目操作符

目录 ! --- 逻辑反操作 & --- 取地址操作符 * --- 间接访问操作符(解引用操作符) sizeof --- 操作数的类型长度(单位为字节) ~ --- 对一个数的补码二进制按位取反 前置和前置-- 后置和后置-- (类型) --- 强制类型转换…

three.js场景三元素

three.js是一个基于WebGL的轻量级、易于使用的3D库。它极大地简化了WebGL的复杂细节,降低了学习成本,同时提高了性能。 three.js的三大核心元素: 场景(Scene) 场景是一个三维空间,是所有物品的容器。可以将…

安卓速度下载v1.0.5/聚合短视频解析下载

功能特色 短视频下载与高级管理 – 支持短视频下载,为您提供一系列高级视频管理功能包括视频内容提取、智能防重复技术、视频体积压缩以及视频转换成GIF图片等; 磁-力链接下载升级 – 现支持磁力链接下载,实现边下载边播放的便捷体验&#x…

构建基于LLMs混合型大模型的先进事实性问答系统架构

1.引言 传统搜索系统基于关键字匹配,缺少对用户问题理解和答案二次处理能力。本文探索使用大语言模型(Large Language Model, LLM),通过其对自然语言理解(Natural Language Understanding,NLU)…

阿里云常用的操作

阿里云常见的产品和服务 容器服务 可以查看容器日志、监控容器cpu和内存, 日志服务 SLS 可以查看所有服务的日志, Web应用防火墙 WAF 可以查看 QPS. 阿里云查看集群: 点击 “产品和服务” 中的 容器服务,可以查看 集群列表&…

第五节:如何使用其他注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好,我是网创有方,上节我们实践了通过Bean方式声明Bean配置。咱们这节通过Component和ComponentScan方式实现一个同样功能。这节实现的效果是从IOC中加载Bean对象,并且将Bean的属性打印到控制台。 第一步:创建pojo实体类studen…

Android进阶之路 - DialogFragment有没有了解的必要?

几个月前写到了弹框业务,以前经常用Dialog、ButtomDialog 、popupWindow 组件,为了契合项目结构参考了原有的 DialogFragment 组件,特此予以记录 我一般在项目中写弹框组件的话,主要用到 alertDialog、popupWindow 组件&#xff0…

用GPT-4纠错GPT-4 OpenAI推出CriticGPT模型

根据OpenAI周四(6月27日)发布的新闻稿,该公司新推出了一个基于GPT-4的模型——CriticGPT,用于捕获ChatGPT代码输出中的错误。CriticGPT的作用相当于让人们用GPT-4来查找GPT-4的错误。该模型可以对ChatGPT响应结果做出批评评论&…

有没有能用蓝牙的游泳耳机,性能超凡的4大游泳耳机力荐

在现代科技的推动下,越来越多具备蓝牙功能的游泳耳机正在改变游泳爱好者的体验方式。这些创新产品不仅在防水性能上有了显著提升,还能让您在水中享受到高质量的音乐。然而,选择一款优秀的蓝牙游泳耳机并不简单,需要考虑到防水等级…

【秋招突围】2024届秋招笔试-科大笔试题-01-三语言题解(Java/Cpp/Python)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 文章目录 &#x1f4d6…

基于SSM的大学生家教管理系统【附源码+LW】

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本大学生家教平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…