ML1 单变量线性回归

简介: 有一个数据集,里面没有任何标签/或者相同的标签,机器在这组数据集中找规律,并归纳总结

⏰本节内容:有监督学习与无监督学习,代价函数,梯度下降算法,线性回归


有监督学习与无监督学习


1.有监督学习


⚡给机器大量的数据集,该数据集中包含正确的答案,然后机器根据数据集拟合出一条曲线


  • 分类


预测离散输出,例如:预测肿瘤的良性、恶性


202204211155853.png


  • 回归


预测连续的输出,例如:预测房价走势


202204211155344.png


2.无监督学习


🔥有一个数据集,里面没有任何标签/或者相同的标签,机器在这组数据集中找规律,并归纳总结


  • 聚类


例如:音频分离(如人声和背景声的分离)、百度新闻归档


202204221325005.png


代价函数


代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。


⭐J(θ0, θ1):误差平方代价函数


⭐hθ(x) :拟合函数,就是你预测的函数


image.png


202204211241103.png


代价函数三维图,以θ0, θ1为x、y坐标轴


d5ea98d5cd45b1f307ea8da4e61d75ce.png


梯度下降算法


梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数J ( θ 0 , θ 1 )的最小值


1.随机θ0, θ1分配初值

2.不断改变,找到正确的θ0、θ1,使得J(θ0, θ1)最小


5d13583bae065a75eeeef7480fb6b817.png


92646eac78607356c078a8d45f2ec81e.png


梯度下降背后的思想是:开始时我们随机选择一个参数的组合( θ 0 , θ 1 , . . . . . . , θ n ) ,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到找到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。


1.数学定义


image.png


  • :=:赋值运算符,a:=b相当于取b的值赋给a;


🔓为什么不用a=b?


🔑答:在教学视频中,a=b被认为是真假判断,声明a=b是对的。所以我们不能写a=a+1,因为这永远都是错的


  • α:学习率,用来控制我们在梯度下降的幅度,α越大,梯度下降的越快


2.同步更新


202204212020768.png


✅梯度下降算法应满足同步更新的条件,即θ0, θ1应同时改变,如图1️⃣


❌图2️⃣则是先计算了θ0,然后再用新的θ0去计算θ1


所以图1和图2区别在于,temp1的值不同


3.偏微分导数项


image.png


在这里,image.png是梯度函数的斜率,乘以α则表示梯度变化幅度


202204221316374.png


所以当θ1已经处在一个局部最优点时,它所在点的曲线斜率为0,即image.png


此时由image.png得:


θ 1 : = θ 1,θ1不会变化,如下图:


2f664eb32b99e0c85fcec6669900f227.png


🚀注意:α永远是正数


  • α过小


c976bbe737dfe4d5e6751a48fb7d120b.png


不断拟合,去努力接近最低点,这样就需要很多步才能到达最低点,耗费大量时间,它会需要很多步才能到达全局最低点


  • α过大


ca5070cd32ff3c4983ff21fc060a54bf.png


拟合的时候左右横跳,难以达到最低点,反而远离最低点了,所以,如果a aa太大,它会导致无法收敛,甚至发散


所以斜率不断减小,梯度下降的幅度也不断减少,这样就可以无限逼近于最低点


例如:品红色👉绿色👉红色👉蓝色👉最低点


因为曲线在下降的时候是不断变缓的,所以它的斜率也不断减小,你可以看到越靠近最低点,不同颜色的点就越密集


278cc6456dd67846b77b7a9e3f8c84ca.png


线性回归算法


使用梯度下降算法,去求误差代价函数的最小值


推导过程


image.png


凸函数


线性回归的代价函数曲线通常都是一个碗状的,这被称为凸函数/弓函数,这个函数只有全局最优解,而没有局部最优解,可以视作是三维的二次函数


cbe6f54e14d6b62b92f0fc0c7ac4e20f.png

相关文章
|
7月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【tensorflow】连续输入的线性回归模型训练代码
  get_data函数用于生成随机的训练和验证数据集。首先使用np.random.rand生成一个形状为(10000, 10)的随机数据集,来模拟10维的连续输入,然后使用StandardScaler对数据进行标准化。再生成一个(10000,1)的target,表示最终拟合的目标分数。最后使用train_test_split函数将数据集划分为训练集和验证集。
|
4天前
|
资源调度 数据可视化 数据挖掘
Python用PyMC贝叶斯GLM广义线性模型、NUTS采样器拟合、后验分布可视化
Python用PyMC贝叶斯GLM广义线性模型、NUTS采样器拟合、后验分布可视化
|
4天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
|
8天前
|
数据可视化
R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化
R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化
18 3
|
17天前
|
数据可视化 Python
PYTHON贝叶斯推断计算:用BETA先验分布推断概率和可视化案例
PYTHON贝叶斯推断计算:用BETA先验分布推断概率和可视化案例
35 7
|
17天前
|
数据可视化
R语言非参数模型厘定保险费率:局部回归、广义相加模型GAM、样条回归
R语言非参数模型厘定保险费率:局部回归、广义相加模型GAM、样条回归
19 0
|
18天前
R语言向量自回归模型(VAR)及其实现
R语言向量自回归模型(VAR)及其实现
13 0
|
18天前
R语言实现向量自回归VAR模型
R语言实现向量自回归VAR模型
|
18天前
|
机器学习/深度学习 Python
Python用PyMC3实现贝叶斯线性回归模型
Python用PyMC3实现贝叶斯线性回归模型
15 0
|
18天前
|
供应链 算法 vr&ar
Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
42 0