【机器学习基础】一元线性回归(适合初学者的保姆级文章)

news/2024/5/30 10:53:02

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习的基本术语
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
💡本期内容:本篇文章开始机器学习的模型,我们从最简单的开始,所以从线性的开始,而线性模型中一元的最简单,最基础,所以先讲解一下一元线性回归~超级基础的文章,赶紧收藏学习吧!!!


文章目录

  • 1 线性模型
  • 2 一元线性回归
    • 2.1 引例及模型表示
    • 2.2 代价函数(Cost function)
  • 3 一元梯度下降求参数
    • 3.1 代价函数的简化
    • 3.2 二元的代价函数
    • 3.3 梯度下降
      • 3.3.1 理解梯度下降
      • 3.3.2 利用梯度下降求解线性回归


1 线性模型

给定由d个属性描述的示例x,其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
请添加图片描述
一般用向量形式写成请添加图片描述
w和b学得之后,模型就得以确定


2 一元线性回归

一元线性回归是一种统计分析方法,用于建立一个自变量和一个因变量之间的线性关系模型。在一元线性回归中,只有一个自变量(即解释变量)与一个因变量(即被解释变量)相关。

该模型的目标是找到一个最佳拟合直线,使得该直线能够最好地拟合已知的数据点并预测未知的数据点。最常用的评估拟合程度的指标是最小二乘法,它通过最小化观测值与拟合直线的差距的平方和来确定最佳拟合直线。

一元线性回归的模型可以表示为:Y = β₀ + β₁X + ε 其中,Y 是因变量,X 是自变量,β₀ 和 β₁ 是模型的系数,ε
是随机误差项。

通过一元线性回归,我们可以估计自变量和因变量之间的关系,并进行预测和推断。

以上是官方解释,看不懂没事,我们来举一个经典的例子:

2.1 引例及模型表示

这个例子是关于预测房屋价格的,我们已知这样一个数据集:
在这里插入图片描述
横坐标表示房屋的面积,纵坐标表示房屋的价格。我们的目标是预测在给定房屋面积的情况下,房屋的价格是多少。例如,如果你的朋友的房子是1250平方英尺大小,你可以使用上面的数据集来预测其可能售价。那么,我们应该如何进行预测呢?

你可以构建一个模型,比如拟合一条直线,如上图所示。从这个模型来看,也许你可以告诉你的朋友,他可以以大约220000(美元)左右的价格卖掉这个房子。这其实就是一个回归问题的例子!
在这里插入图片描述
Notation:

  • 𝑚:训练集中实例的数量
  • 𝑥 :特征/输入变量
  • 𝑦 :目标变量/输出变量
  • (𝑥, 𝑦) :训练集中的实例
  • (x(i), y(i)):第𝑖 个观察实例
  • ℎ :学习算法的解决方案或函数也称为假设(hypothesis)

ℎ是一个函数,也是模型,代表的是从输入到输出的一个映射。这里输入是房屋尺寸大小,输出是房屋的价格。
在这里插入图片描述
在一元线性回归模型中如何表示h呢?
在这里插入图片描述
这里表示的就是单变量(一元)线性回归,其图像描述如下图所示:
在这里插入图片描述

回到例子中,我们需要借助h来预测房价。实际上 ,我们是要将训练集(已知的部分数据)“喂”给我们的学习算法,进而学习得到一个函数ℎ,然后将我们要预测的房屋的尺寸作为输入变量输入给ℎ,预测出该房屋的交易价格作为输出变量输出为结果。这个过程类似于在中学学到的求解直线方程,只是需要多次迭代。

那这个迭代过程究竟跟我们中学阶段的求解有什么区别呢?这里就要引出下面这个概念:

2.2 代价函数(Cost function)

对于一元线性函数,每一对参数都可以得到一种曲线的画法
在这里插入图片描述
那么哪一种是最适合的呢?我们用假设函数来表示我们预测结果的模型。那么,这个模型好还是不好呢?我们需要有一个判别标准,这个标准就叫作代价函数。其表示形式如下:

在这里插入图片描述
对于代价函数的解释:

  • 通过训练集我们可以得到假设函数h,即我们建立的模型,
  • y是在这个点相应的ground truth
  • 通过输入测试集的自变量向函数h和y,得出预测出来的结果与实际的结果,让两者相减得到误差,通过误差可以看出我们预测的结果好还是不好
  • 求和再平方相当于求他们的方差,即预测值与真实值的差距的波动程度
  • 们的最终目标就是最小化代价函数

在这里插入图片描述
那么我们现在的问题就转化为了如何利用训练集最小化代价函数


3 一元梯度下降求参数

如何求解代价函数呢?我们通常使用梯度下降的方法。

3.1 代价函数的简化

我们先理解含有一个参数的代价函数。
在这里插入图片描述
下面是当 𝜃1 = 1时的代价函数与假设函数
在这里插入图片描述
下面是 𝜃1 = 0.5时的曲线
在这里插入图片描述
下面做出 𝜃1 = 0 时的曲线并把代价函数所有的点连起来
在这里插入图片描述
由图像我们可以知道,当J( θ 1 \theta _{1} θ1)取最小值时的参数所对应的假设函数是拟合数据最好的直线。

3.2 二元的代价函数

上面是之含有一个参数的代价函数,这里我们把另一个参数加上去,看看怎么求解:
在这里插入图片描述
再利用上面的方法,尝试每一个特殊的点,得到代价函数在坐标系中的位置后将他们连起来,我们就得到了一个二元代价函数,它是一个三维图形
在这里插入图片描述
同样利用上面的方法,遍历每一个参数 θ 0 \theta _{0} θ0 θ 1 \theta _{1} θ1,找到使得代价函数最小的参数。
在这里插入图片描述
在这里插入图片描述

多了一个参数相当于多了一个维度,图像也由一开始的二维拓展到了三维。求代价函数的最小值仍然是我们的目标。
可是要遍历的点太多了,我们怎么知道哪里是最小的点呢?下面介绍求代价函数最小值的方法:梯度下降

3.3 梯度下降

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降是最常采用的方法之一。

3.3.1 理解梯度下降

举个例子,梯度下降法就是从山顶找一条最短的路走到山谷最低的地方。在这个过程中,每次都会沿着当前点的梯度方向(即函数在该点的斜率)走一步,逐步向最低点靠近。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
在这里插入图片描述
那么具体到一元线性回归的代价函数,我们如何使用梯度下降呢?

3.3.2 利用梯度下降求解线性回归

接下来我们让梯度下降与线性回归相结合(关键在于对代价函数求偏导):

主要思想如下:
在这里插入图片描述
其中𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向 向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
在这里插入图片描述
偏导 ( φ φ θ j J ( θ ) ) (\frac{\varphi }{\varphi \theta _{j}}J(\theta )) (φθjφJ(θ))的目的是为了确定下山的方向
在这里插入图片描述
当偏导大于0或小于0时代表了函数的不同增长趋势,与导数的意义相同
在这里插入图片描述
每走一步(每一次迭代)我们都需要确定新的参数,因为只有更新了参数才能确定下一步的方向。
每走一步都计算其梯度,经过不断的迭代,最终就可以找到最小值了

公式的推导
在这里插入图片描述

在这里插入图片描述
这样,我们就可以通过迭代,更快的找到最小值了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【Python笔记-设计模式】装饰器模式

一、说明 装饰器模式是一种结构型设计模式,旨在动态的给一个对象添加额外的职责。 (一) 解决问题 不改变原有对象结构的情况下,动态地给对象添加新的功能或职责,实现透明地对对象进行功能的扩展。 (二) 使用场景 如果用继承来扩展对象行…

07 MyBatis之高级映射 + 懒加载(延迟加载)+缓存

1. 高级映射 例如有两张表, 分别为班级表和学生表 自然, 一个班级对应多个学生 像这种数据 , 应该如果如何映射到Java的实体类上呢? 这就是高级映射解决的问题 以班级和学生为例子 , 因为一个班级对应多个学生 , 因此学生表中必定有一个班级编号字段cid 但我们在学生的实体…

【风格迁移】CAST:对比学习,从图像特征而非其二阶统计量(Gram矩阵)中学习风格

CAST:对比学习,从图像特征而非其二阶统计量(Gram矩阵)中学习风格 提出背景5 why 分析5 so分析 CAST 框架多层风格投影器领域增强模块生成网络 效果对比 StyleGAN 提出背景 论文:https://arxiv.org/pdf/2205.09542.pdf…

Clickhouse的安装

1.准备工作 确定防火墙处于关闭状态 ulimit -a 2.CentOS取消打开文件数限制 (1)在 hadoop102 的 /etc/security/limits.conf 文件的末尾加入以下内容 sudo vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc …

Sora - 探索AI视频模型的无限可能

随着人工智能技术的飞速发展,AI视频模型已成为科技领域的新热点。而在这个浪潮中,OpenAI推出的首个AI视频模型Sora,以其卓越的性能和前瞻性的技术,引领着AI视频领域的创新发展。让我们将一起探讨Sora的技术特点、应用场景以及对未…

LeetCode206: 反转链表.

题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 解题方法 假设链表为 1→2→3→∅,我们想要把它改成∅←1←2←3。在遍历链表时,将当前节点的 next指针改为指向前一个节点。由于节点没有引用其前一…