【吴恩达机器学习笔记】四、多变量线性回归

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
视频地址:吴恩达机器学习系列课程
❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力

四、多变量线性回归

1. 多功能

在之前的课程中,我们利用房屋的大小这一个特征来那个来预测房屋的价格,但是当特征量变多之后,就得改变应付此类问题的策略了,下图所介绍的是一些常用的表达。

  • n:表示有n个特征值。

  • x(i):表示第i个训练样本的输入特征值。

  • xj(i):表示第i个训练样本中第j个特征量的值。

【吴恩达机器学习笔记】四、多变量线性回归_第1张图片

接下来,我们将定义多特征量的表达式,如下:

【吴恩达机器学习笔记】四、多变量线性回归_第2张图片

表达式中的x1到xn为n个特征量的值,但是在开头的θ0并没有相应的特征量在旁边,所以我们为了方便记录,额外定义了一个特征量x0并让它的值恒等于1。这样,当将x于θ的值分别对应到矩阵中之后,就可以一目了然,就像上图中的x与θ的两个向量。而想要得到h(x),只需将θ进行一次转置再与x向量相乘即可得到最终表达式。

小结

这以上的内容也就是所谓的多线性回归,有多个特征量来决定最终值。

2. 多元梯度下降法

因为现在设计到了多个特征量,所以我们的多元梯度下降算法也与之前的梯度下降算法有些许不同,如下所示:

【吴恩达机器学习笔记】四、多变量线性回归_第3张图片

跟之前的算法相比,其实本质上并没有什么区别,所用的算式也大同小异,只不过在多元当中,需要算的θ值就比之前要多很多,只是在θ0和θ1之后有添加了θ2等特征量的计算。

特征缩放(Feature Scaling)

【吴恩达机器学习笔记】四、多变量线性回归_第4张图片

因为J(θ)的函数图像会受到特征量的影响,所以如果当特征量之间数值相差很大时,就会得到一个非常窄的椭圆形,这会让梯度下降的步伐变得十分缓慢,它可能回来会横跳最终找到最优值。

相反,如果让特征量之间数值相差很小时,就如上图右侧所示,我们会得到一个更加圆的一个曲线图,这样的话会使梯度下降的路径变得更加直接快速,这其中所用到的方法就是特征缩放

所以我们对于特征值的处理就要更加注意,下图就是给出相关的规范原则。

【吴恩达机器学习笔记】四、多变量线性回归_第5张图片

我们通常会将特征值通过各种方式限制在大约-1≤xi≤1这个范围内,但是如果稍微有所偏差是可以在接收范围内的,一般可以将这种“红线”扩大到-3到3或-1/3到1/3之间,如果偏差超过这些范围,那还需要多加考虑了。

除上述之外,我们在进行特征缩放时,有时也会进行 均值归一化(Mean normalization) 的工作,就是将xi替换成xi减μ,让特征量具有0的平均值。通俗点来讲,就是一种缩小特征值的方法,通过这种方法,我们可以将特征量的范围大致缩小在-0.5≤x≤0.5范围附近。

【吴恩达机器学习笔记】四、多变量线性回归_第6张图片

上图式中的μ1代表训练集中特征x1的平均值,而S1代表特征值的范围,也就是用x1的最大值减去最小值。

接下来,我将介绍两种测试自己梯度下降的算法正在正确的工作。

【吴恩达机器学习笔记】四、多变量线性回归_第7张图片

一般我们会更倾向于用第一种方法,也就是上图的左侧,通过得到minJ(θ)与迭代次数的函数图像,可以很清楚地观察梯度下降时候往对的方向进行。

而第二种方法就是上图的右侧,我们可以通过自动收敛测试观察是否已经收敛,也就是说通过判断J(θ)的值是否小于一个阈值来进行判断,但是这种阈值一般很难去取,所以通常会用上面的一个方法去判断。

通过上述的第一种方法,我们就可以对梯度下降正误进行判断,通常情况下造成图像不正常的情况是因为选取的α即学习率过大,使梯度下降的步伐过大,导致每次下降时都会越过最低点,这时就要减小α的值,例如下图所示:

【吴恩达机器学习笔记】四、多变量线性回归_第8张图片

  • 实验发现,只要α足够小,J(θ)就总能找到最优值。
  • 如果α过大的话,J(θ)可能不会在每一次迭代都下降,甚至可能不收敛(有些情况下也可能会出现收敛速度慢);如果α过小的话,梯度下降的步伐就会很小,要经过漫长岁月才能找到最优值。

故通常情况下,我们会尝试不同的α值,通过观察J(θ)的变化情况,找到下降最快的所对应的α值。

【吴恩达机器学习笔记】四、多变量线性回归_第9张图片

3. 特征与多项式回归

现在我们考虑的特征量变多了,特征可以任意的进行选取,所以不能单单用一条直线就可以很好的拟合我们的数据,所以这时候要引入其他的函数,例如二次函数、三次函数等,这就是所谓的多项式回归(Polynomial regression)。

如果要用到梯度下降的话,我们还要考虑特征量之间的差值,如果相差太大就需要用到上节课所讲的特征缩放。

【吴恩达机器学习笔记】四、多变量线性回归_第10张图片

下面就是一个例子:

【吴恩达机器学习笔记】四、多变量线性回归_第11张图片

用二次函数可能不能拟合我们的数据,因为随着x的增大,二次函数反而会减小,所以这时候就可以用其他的函数例如带根号的函数,线性回归后能够更好地拟合数据。

4. 正规方程

前面我们是通过梯度下降来得到θ的最优解,但其实还有其它求θ最优解的办法,只用一个式子便可以求出,就是接下来要讲的。

正规方程(Gradient Descent)

【吴恩达机器学习笔记】四、多变量线性回归_第12张图片

下面就是一个例子:

【吴恩达机器学习笔记】四、多变量线性回归_第13张图片

我们可以假设一个x0恒等于1的特征量,然后将所有特征量放入一个矩阵,将目标值放入另一个矩阵,就能计算上面式子。

接下来,我将详细为你介绍求解的具体步骤,首先来看矩阵X与向量y是怎么得到的。

【吴恩达机器学习笔记】四、多变量线性回归_第14张图片

我们将数据集的每一个例子中的特征量分别转置放入矩阵X,也就是将每一个例子的特征量作为X的每一行,而目标值就直接竖着放入向量y。

用正规方程还有一个优点,就是它不用像梯度下降一样要进行特征缩放,它允许你的特征量之间的差值很大。

下面我将为你总结梯度下降与正规方程的优缺点。

  • 梯度下降
    • 优点:当n的值非常大的时候,它计算的效果任然会很好。
    • 缺点:它需要通过很多测试去画J(θ)的图像得到α的最优值,并且想要得到最终的结果需要很多次的迭代。
  • 正规方程
    • 优点:它不用去选取α值,也不用进行迭代计算,只用一个式子便能得到最终结果。
    • 缺点:因为式子中要计算(XTX)-1,所以如果n值特别大的话,计算这个式子会非常的慢。

小结

如果n值小于一万,则优先选择正规方程计算;如果n值大于一万,就建议去用梯度下降进行计算。

当然,你在计算(XTX)-1时可能会遇到有些矩阵没有逆矩阵的情况,那你可以有两个方法去解决:

  • 检查是否有多余的特征
    • 例如有些特征之间是有线性关系的,这时你可以删除其中一个特征。

【吴恩达机器学习笔记】四、多变量线性回归_第15张图片

  • 检查特征是否过多了(e.g. m
  • 这时候你就要删除一些特征,或者采用正则化(regularization)。

你可能感兴趣的:(机器学习,人工智能,python,c++,算法)