当前位置: 首页 > article >正文

吴恩达机器学习笔记复盘(四)线性回归模型概述

线性回归模型

简介

是用一条直线拟合数据的模型,是当今比较常用的学习模型。

举例

以根据房子大小预测价格为例,使用波特兰的房屋大小和价格数据集。若客户想卖房(房子 1250 平方英尺),可通过建立线性回归模型,根据数据拟合直线,预测房子能卖约 22 万美元。

监督学习

监督学习是通过给出正确答案的数据来训练模型,如上述房屋数据集中既有房子大小,也有每栋房子对应的价格。(通过人为标记数据是否为正确答案)

回归模型与分类模型区别

线性回归模型属于回归模型,其预测数字作为输出;分类模型预测类别,如预测图片是猫、狗还是狼,或预测病人所患疾病。分类问题输出可能有限,回归问题模型可输出无限多个数字。

数据可视化表示

数据除了可视化为图,还可通过数据表呈现,表中包含输入(房子大小)和输出(要预测的价格)。用于训练模型的数据集叫训练集,输入用小写 X 表示,也叫特征或输入特征;输出用小写 Y 表示,也叫目标值。训练样本总数用小写 M 表示,如该数据集中 M = 47。特定训练例子用 X 上标在括号 I,逗号 Y 上标在括号 I 表示,I 指表中的特定行。

学习过程

训练集包含输入特征(如房子大小)和输出目标(如房子价格),将它们提供给学习算法,算法会产生函数 F(也叫模型),F 的任务是根据新输入 X 输出预测值 Y 帽,Y 帽是对真实值 Y 的估计。

线性函数的表示

让函数F为直线,可写成F_{W,B}(X) = WX + B(W和B是数字,其取值决定预测值Y),有时也写成F(X)

选择线性函数的原因

线性函数相对简单、容易处理,以它为基础有助于获得更复杂的非线性模型,本次讨论的是有一个变量(输入变量X即房子大小)的线性回归,也叫单变量线性回归。

扩展学习

线性回归是一种经典的机器学习算法,用于建立一个线性关系模型来预测连续型的目标变量。

原理

线性回归假设自变量 x与因变量 y之间存在线性关系,可以用一个线性方程来表示:y = \theta_0 + \theta_1x_1 + \theta_2x_2 + \cdots + \theta_nx_n + \epsilon,其中\theta_0, \theta_1, \cdots, \theta_n是模型的参数,\epsilon 是误差项。线性回归的目标就是通过给定的训练数据找到一组最优的参数\theta,使得模型预测值与真实值之间的误差最小。

求解方法

通常使用最小二乘法来求解线性回归模型的参数。最小二乘法的目标是最小化预测值与真实值之间的平方误差之和,即J(\theta)=\sum_{i = 1}^{m}(y^{(i)}-\hat{y}^{(i)})^2=\sum_{i = 1}^{m}(y^{(i)}-\theta_0-\theta_1x_1^{(i)}-\cdots-\theta_nx_n^{(i)})^2,其中m是训练数据的样本数量,y^{(i)}是第i个样本的真实值,\hat{y}^{(i)}是第i个样本的预测值。通过对J(\theta)求偏导数并令其为0,可以得到一组关于\theta的方程组,解这个方程组就可以得到最优的参数值。

评估指标

常用均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)和 \(R^2\) 分数等来评估线性回归模型的性能。

示例

假设我们有一组关于房屋面积(平方米)和房价(万元)的数据,如下表所示:

| 房屋面积(\(x\)) | 房价(\(y\)) | | ---- | ---- | | 100 | 200 | | 120 | 240 | | 80 | 160 | | 150 | 300 | | 90 | 180 |

我们希望通过线性回归算法建立一个房屋面积和房价之间的线性关系模型,以便根据房屋面积来预测房价。

首先,设线性回归模型为 y = \theta_0 + \theta_1x

使用最小二乘法求解参数\theta_0\theta_1。经过计算(计算过程见后面解题原理),得到\theta_0 = 0\theta_1 = 2。所以,得到的线性回归方程为 y = 2x。 接下来,我们可以用这个模型来进行预测。例如,当房屋面积为130平方米时,根据模型预测房价为 y = 2×130 = 260(万元)。 然后,我们可以用上述提到的评估指标来评估模型的性能。比如计算均方误差,先计算每个样本的预测误差的平方,再求平均值。以这组数据为例,计算可得均方误差为0(因为数据是完全线性的),这表明模型在这组数据上的拟合效果非常好。但在实际情况中,数据往往不会这么理想,均方误差会是一个大于0的值,值越小说明模型的拟合效果越好。

模型解题过程原理

设我们有m个样本点(x^{(i)}, y^{(i)})i = 1,2,\cdots,m,线性回归模型为y=\theta_0 + \theta_1x

最小二乘法的目标函数是误差平方和:J(\theta_0,\theta_1)=\sum_{i = 1}^{m}(y^{(i)} - (\theta_0+\theta_1x^{(i)}))^2

为了找到使J(\theta_0,\theta_1)最小的\theta_0\theta_1,我们对J(\theta_0,\theta_1)分别求关于\theta_0\theta_1的偏导数,并令偏导数等于0。

 对\theta_0求偏导数

 \frac{\partial J(\theta_0,\theta_1)}{\partial \theta_0}=2\sum_{i = 1}^{m}(y^{(i)} - (\theta_0+\theta_1x^{(i)}))\times(- 1)= - 2\sum_{i = 1}^{m}(y^{(i)} - \theta_0-\theta_1x^{(i)})

\frac{\partial J(\theta_0,\theta_1)}{\partial \theta_0} = 0,则有:\sum_{i = 1}^{m}(y^{(i)} - \theta_0-\theta_1x^{(i)})=0\) \(\sum_{i = 1}^{m}y^{(i)} - m\theta_0-\theta_1\sum_{i = 1}^{m}x^{(i)}=0\) \(m\theta_0=\sum_{i = 1}^{m}y^{(i)}-\theta_1\sum_{i = 1}^{m}x^{(i)}\) \(\theta_0=\frac{1}{m}\sum_{i = 1}^{m}y^{(i)}-\frac{\theta_1}{m}\sum_{i = 1}^{m}x^{(i)}(式子1)

\theta_1求偏导数:

\frac{\partial J(\theta_0,\theta_1)}{\partial \theta_1}=2\sum_{i = 1}^{m}(y^{(i)} - (\theta_0+\theta_1x^{(i)}))\times(-x^{(i)})=-2\sum_{i = 1}^{m}(y^{(i)} - \theta_0-\theta_1x^{(i)})x^{(i)}

\frac{\partial J(\theta_0,\theta_1)}{\partial \theta_1}=0,则有:\sum_{i = 1}^{m}(y^{(i)} - \theta_0-\theta_1x^{(i)})x^{(i)} = 0\) \(\sum_{i = 1}^{m}y^{(i)}x^{(i)}-\theta_0\sum_{i = 1}^{m}x^{(i)}-\theta_1\sum_{i = 1}^{m}(x^{(i)})^2=0(式子2)

将式子1代入式子2中

\sum_{i = 1}^{m}y^{(i)}x^{(i)}-\left(\frac{1}{m}\sum_{i = 1}^{m}y^{(i)}-\frac{\theta_1}{m}\sum_{i = 1}^{m}x^{(i)}\right)

\sum_{i = 1}^{m}x^{(i)}-\theta_1\sum_{i = 1}^{m}(x^{(i)})^2=0

\sum_{i = 1}^{m}y^{(i)}x^{(i)}-\frac{1}{m}\sum_{i = 1}^{m}y^{(i)}\sum_{i = 1}^{m}x^{(i)}+\frac{\theta_1}{m}(\sum_{i = 1}^{m}x^{(i)})^2-\theta_1\sum_{i = 1}^{m}(x^{(i)})^2=0

\sum_{i = 1}^{m}y^{(i)}x^{(i)}-\frac{1}{m}\sum_{i = 1}^{m}y^{(i)}\sum_{i = 1}^{m}x^{(i)}

=\theta_1\left(\sum_{i = 1}^{m}(x^{(i)})^2-\frac{1}{m}(\sum_{i = 1}^{m}x^{(i)})^2\right)\\

\theta_1=\frac{\sum_{i = 1}^{m}y^{(i)}x^{(i)}-\frac{1}{m}\sum_{i = 1}^{m}y^{(i)}\sum_{i = 1}^{m}x^{(i)}}{\sum_{i = 1}^{m}(x^{(i)})^2-\frac{1}{m}(\sum_{i = 1}^{m}x^{(i)})^2}

对于我们给出的样本数据

(100,200),(120,240),(80,160),(150,300),(90,180),(m = 5)。\sum_{i = 1}^{5}x^{(i)}=100 + 120+80 + 150+90=540

\sum_{i = 1}^{5}y^{(i)}=200 + 240+160 + 300+180=1080

\sum_{i = 1}^{5}(x^{(i)})^2=100^2+120^2 + 80^2+150^2+90^2=10000 + 14400+6400+22500+8100=61400

\sum_{i = 1}^{5}y^{(i)}x^{(i)}=200\times100+240\times120 + 160\times80+300\times150+180\times90\) \(=20000+28800+12800+45000+16200=122800

\theta_1=\frac{122800-\frac{1}{5}\times1080\times540}{61400-\frac{1}{5}\times540^2}\)\(= 2

\theta_1 = 2代入式子1

\theta_0=\frac{1}{5}\times1080-\frac{2}{5}\times540\)\(=0

所以,得到的线性回归方程为y = 2x。


http://www.kler.cn/a/585576.html

相关文章:

  • 【Java】——运算符详解
  • PGSQL基本使用
  • SQLite?低调不是小众...
  • 红色警戒2:共和国之辉红警语音台词是什么?
  • 自适应二值化及伪影
  • RabbitMQ消息持久化与Lazy模式对比分析
  • 每日一题——逆波兰表达式
  • DeepSeek API 客户端使用文档
  • Spring Boot对接twilio发送邮件信息
  • Docker 部署Spring boot + Vue(若依为例)
  • Linux系统下安装Gedit文本编辑器的完整指南
  • C++能力测试题
  • 深入 Python 网络爬虫开发:从入门到实战
  • 完善 Django 框架以实现传递视频、图片给算法模块进行识别分析
  • 防止手机验证码被刷:React + TypeScript 与 Node.js + Express 的全面防御策略
  • WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现
  • JVM 的不同组成部分分别有什么作用?
  • URL 中的参数通常用于跟踪和传递信息,特别是在在线广告和营销活动中。
  • 鸿蒙初学者学习手册(HarmonyOSNext_API14)_UIContext(@ohos.arkui.UIContext (UIContext))
  • tensorflow与torch并行读取数据机制