小小白从零进行机器学习(多个特征量的线性回归算法)

本文开始介绍一种新的线性回归版本,此版本适用于多个变量或多个特征量的情况,下图为假设函数对应多个变量和多个特征量时的假设形式

小小白从零进行机器学习(多个特征量的线性回归算法)

接下来为一些具体补充

小小白从零进行机器学习(多个特征量的线性回归算法)

以下是当只有一个变量和有多个变量的梯度下降(多元梯度下降法)更新时的对比

小小白从零进行机器学习(多个特征量的线性回归算法)

梯度下降的一种实用方法 (特征缩放):

如果你有一个机器学习问题,这个问题具有多个特征量,如果你能确保这些特征量都在一个相近的范围内,这样梯度下降算法就能更快的收敛

小小白从零进行机器学习(多个特征量的线性回归算法)

小小白从零进行机器学习(多个特征量的线性回归算法)

可以看到上两个例子是可以的,下两个例子因范围精度或大小差距与1到-1过大而不符合标准

特征缩放的另一种方式(均值化一):

如果遇到这一种情况,这些房子中平均每个房子的大小为2000,并且这些房子平均每个房子都含有两个卧室,那么可以进行下图的变换

小小白从零进行机器学习(多个特征量的线性回归算法)

学习率:

小小白从零进行机器学习(多个特征量的线性回归算法)

一般进行梯度下降算法时最好绘制出代价函数值图像,正常来说图像应该如上图所示,代价函数的值越来越小,随着迭代次数的增加代价函数的值图像曲线也应该会变得越来越平坦,也就是收敛,以下为常见异常情况的应对方法

第一类:

小小白从零进行机器学习(多个特征量的线性回归算法)

如果代价函数的值图像越来越大,在代码没问题的情况下,应该就是学习率太大的问题,而代价函数的函数图像情况(大体相同)也应该如下图所示

小小白从零进行机器学习(多个特征量的线性回归算法)

因为学习率太大,当梯度下降算法接近最小值时会直接跳过最小值,这样反复横跳会就会使代价函数的值越来越大

第二类:

小小白从零进行机器学习(多个特征量的线性回归算法)

遇见上图这种情况时通常也是学习率太大的关系导致的,这里就不说明原因了

总结:

总的来说,学习率太小的话就会遇到梯度下降算法收敛速度过慢的一种情况,学习率太大的,代价函数的值可能不会在每次迭代时都下降,甚至可能不收敛,所以今后可能的从很小的学习率开始10倍10倍的进行增加,推荐使用3的倍数,直到找到最适合学习率

正规方程:

对于某些线性回归问题,正规方程会给我们更好的方法来求得代价函数的参数的最优值,正规方程给了我们一个解析解法让我们不用靠梯度下降算法迭代便能得到代价函数参数的最优值

小小白从零进行机器学习(多个特征量的线性回归算法)

如上图所示,面对这样的代价函数图像,如果对此代价函数求导,并令其导数等于零,就能得到令代价函数得到最小值的

小小白从零进行机器学习(多个特征量的线性回归算法)

小小白从零进行机器学习(多个特征量的线性回归算法)

举个例子,如果把m个数据的房价模型的特征量换为n+1维矩阵,那么它的特征方程就是X的矩阵的转置乘以X取逆乘以X的转置乘以y

梯度下降算法和正规方程的使用情景:

梯度下降算法需要多次选择学习率并且运行多次导致速度较慢,正规方程不需要选择学习率并且只运行一次,但当特征量极多时正规方程的运算量就会呈现三次方增长,故当有极多个特征变量时使用梯度下降算法,反之则使用正规方程

正规方程在矩阵不可逆情况下的解决方法:

正规方程在计算时难免会遇到矩阵不可逆的情况,但这是极少数的,如果遇到矩阵不可逆的情况,可以检查下问题特征里是否有多余特征,如果有的话可以对其进行删除不用全部保留,如果没有多余特征则可以检查是否有过多特征,可以进行一些删除

Original: https://blog.csdn.net/qq_66812327/article/details/124600385
Author: 夢在远方
Title: 小小白从零进行机器学习(多个特征量的线性回归算法)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/635394/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球