机器学习--线性回归

这一块对应西瓜书第三章

03线性回归

3.1线性模型基本形式

其实 f(x)表达式可以理解为各属性的加权平均数。

3.2线性回归:

线性回归属于监督学习---目标值连续

常用于房价预测等情况:

3.2.1定义和公式:
线性回归 (Linear regression) 是利用回归方程 ( 函数 ) 对一个或多个自变量 ( 特征值) 和因变量 ( 目标值 ) 之间关系进行建模的一种分析方式。
只有一个自变量的情况称为 单变量回归 ,多于一个自变量情况的叫做 多元回归
通用公式其实就是上面的f(x)

3.2.2线性回归的特征与目标的关系分析

线性回归中主要有两种模型:线性关系 、非线性关系(线性关系就是一条直线,非线性关系就是曲线)
单变量线性关系 多变量线性关系

非线性关系

3.2.3线性回归的损失和优化

观察上面的图可以看出来,真实结果y和预测结果f(x)之间会存在误差---》损失。

3.2.3.1损失函数(最小二乘法):

进一步带入得到。(其中只有w/b未知)

像这种基于均方误差最小化进行模型求解的方法我们称为 最小二乘法

在线性回归中,最小二乘法就是试图找到一条直线,是所有样本到直线上的欧氏距离之和最小。

求解w b 使最小化的过程称为线性回归的最小二乘"参数估计",可以通过将J分别对w ,b

求偏导,令偏导=0的方法的到 w、b最优解。

3.2.3.2优化函数
找优化函数就是如何去求模型当中的 W ,使得损失最小?(目的是找到最小损失对应的W值)

常用两种方法:
正规方程、梯度下降法

2.1正规方程:

一般用于多元线性回归,即数据集并非单个属性,而是由多个属性构成

举例:

该解只适用于满秩矩阵,但实际我们往往遇到的不是满秩矩阵,遇到的变量数目超过样本量,导致X的列数大于行数,此时可解出多个w,均可使误差最小化,一般选哪个作为输出,常见做法是:引入正则项。

2.2梯度下降
以当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后 朝着山的高度下降的地方走,(同理,如果我们的目标是上山,也就是爬到山顶, 那么此时应该是朝着最陡峭的方向往上)。然后每走一段距离,都反复采用同一 个方法,最后就能成功的抵达山谷。
按照梯度下降算法的思想,它将按如下操作达到最低点:

第一步,明确自己现在所处的位置

第二步,找到相对于该位置而言下降最快的方向

第三步, 沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低

第四部, 回到第一步

第五步,终止于最低点

下降公式:
1.α 在梯度下降算法中被称作为学习率或者步长,我们可以通过 α来控制每一步走的距离。
但步子太大--》会跨过山谷,步子太小---》速度太慢
2. 中减号 便是负方向
ps:
梯度的方向是 函数在给定点上升最快的方向,那么梯度的反方向就是函数在给定点下降最快的方向,这正是我们所需要的。 所以我们只要沿着梯度的反方向一直走,就能走到局部 的最低点!(微积分定义)

算法举例过程:

2.3 对比

3.3梯度下降介绍:
都是为了正确地调节权重向量, 通过为每个权重计算一个梯度,从而更新权值,使目标函数尽可能最小化 。其差别在于样本的使用方式不同
全梯度下降算法 (Full gradient descent ) , 计算训练集所有样本误差,对其求和再取平均值作为目标函数
随机梯度下降算法( Stochastic gradient descent )
目标函数不再是全体样本误差,而仅是单个样本误差,即每次只代入计算一个样本目标函数的梯度来更新权重,再取下一个样本重复此过程,直到损失 函数值停止下降或损失函数值小于某个可以容忍的阈值。
,
小批量梯度下降算法( Mini-batch gradient descent ), 每次从训练样本集上随机抽取一个小样本集,
随机平均梯度下降算法( Stochastic average gradient descent )
会给每个样本都维持一个平均值 , 后期计算的时候 , 参考这个平均值

相关推荐
Elastic 中国社区官方博客1 天前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
chools1 天前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
郝学胜-神的一滴1 天前
深度学习必学:PyTorch 神经网络参数初始化全攻略(原理 + 代码 + 选择指南)
人工智能·pytorch·python·深度学习·神经网络·机器学习
leobertlan1 天前
好玩系列:用20元实现快乐保存器
android·人工智能·算法
笨笨饿1 天前
#58_万能函数的构造方法:ReLU函数
数据结构·人工智能·stm32·单片机·硬件工程·学习方法
jr-create(•̀⌄•́)1 天前
从零开始:手动实现神经网络识别手写数字(完整代码讲解)
人工智能·深度学习·神经网络
冬奇Lab1 天前
一天一个开源项目(第78篇):MiroFish - 用群体智能引擎预测未来
人工智能·开源·资讯
冬奇Lab1 天前
你的 Skill 真的好用吗?来自OpenAI的 Eval 系统化验证 Agent 技能方法论
人工智能·openai
数智工坊1 天前
Transformer 全套逻辑:公式推导 + 原理解剖 + 逐行精读 - 划时代封神之作!
人工智能·深度学习·transformer
GreenTea1 天前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端