李宏毅机器学习课程笔记——第二章 回归 Regression

发布于:2022-12-17 ⋅ 阅读:(420) ⋅ 点赞:(0)

李宏毅机器学习课程笔记——第二章 回归 Regression

我们在前面提到,监督学习的两大问题就是回归与分类,回归问题的一大特征就是输出的结果是输出结果为一系列的数字

现在我们以一个场景为例,便于大家更好地理解回归问题。

在进入场景之前,麻烦大家先回忆一下机器学习中监督学习的流程是什么?

1.找到一个函数集

2.评估函数

3.从函数集中选出最好的函数

现在给出场景,我们需要对宝可梦的CP值进行预测

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6bzXGBS-1663173864348)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915003431930.png)]

按照流程,我们依次确定做法:

  1. 找到函数——线性回归模型
  2. 评估函数——损失函数
  3. 挑选函数——梯度下降

下面我们来讲讲细节

step1:Model

目前大家学到的最简单的线性函数就是一次函数
y = w x c p + b y=wx_{cp}+b y=wxcp+b
w:权重,b:偏差

w和b的值我们可以先随意给定。

再来看看我们有哪些数据

我们有十只宝可梦初始的CP值和他们进化后的CP值,分别作为x和y

我们思考一下可能有哪些因素会影响宝可梦的cp值,比如体力,身高,体重……

这些都可以作为x

我们把这些x称为特征feature

好了,现在我们的model已经初步确定
y = b + ∑ w i x i y=b+\sum w_{i}x_{i} y=b+wixi
step2: Goodness of Function

函数我们已经知道了,现在要明白输入和输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZF7Sw2Vh-1663173864351)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915003629267.png)]

我们挑选10只宝可梦作为训练集,将数据绘制在图表上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3D7O2Eom-1663173864352)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915003650675.png)]

根据图表,我们可以给出损失函数,所谓的损失函数,其实就是一个用来测评的函数,输入的是函数,输出的结果是衡量w和b好坏的指标

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eOJLc7mO-1663173864354)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915003725756.png)]

为了更直观地体现,我们同样可以绘制出图像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Ei8fk6j-1663173864355)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915003735510.png)]

step3: Best Function

我们现在要根据损失函数的值来挑选出最好的函数

我们这里使用梯度下降法

从数学的角度来将,就是求函数图像上某一点的导数,根据导数来确定增减趋势,从而确定出最小值

从生活的角度来讲,梯度下降类似于下山,我们站在函数上某一点左右望,朝下降的地方走,走了几步再左右望,一直重复,直到走到最低点

现在我们加上b

对于两个参数,我们处理方法一样

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5XJPNg6X-1663173864357)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915003833875.png)]

结果怎么样呢?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pskkPNbv-1663173864358)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915003951414.png)]

我们发现好像有点准,又不是特别准,只能准一点点(doge)

我们可不可以选择另一种函数模型呢?

当然是可以的
y = b + w 1 ∗ x c p + w 2 ∗ ( x c p ) 2 y=b+w_{1}*x_{cp}+w_{2}*(x_{cp})^2 y=b+w1xcp+w2(xcp)2
同样的步骤,得到这样的结果。发现确实有用,那三次函数呢?四次函数?五次函数呢?……

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JLDlZ9fR-1663173864360)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915004030511.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N7dLBJ8h-1663173864361)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915004114630.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JOUoJCk8-1663173864363)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915004137999.png)]

经过对比,我们发现真的有用,但用处不大,甚至起到了反效果

由此可见,并不是越复杂越好

为什么会这样呢,这里我们就要引入过拟合的概念

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UcrxDJEQ-1663173864364)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915004210229.png)]

到此为止,我们已经做完了针对一个x的所有处理,但是读者会问,我们当时不是说还有其他特征吗,他们呢?

我们现在加上其他的因素,一股脑全加进去

有读者又有疑问,这样还能是线性吗?

我们可以这样做

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NqnGC6Iy-1663173864366)(C:\Users\Ferry\AppData\Roaming\Typora\typora-user-images\image-20220915004249476.png)]

这样就可以将许多变量的公式转变为线性模型
不是说还有其他特征吗,他们呢?

我们现在加上其他的因素,一股脑全加进去

有读者又有疑问,这样还能是线性吗?

我们可以这样做

[外链图片转存中…(img-NqnGC6Iy-1663173864366)]

这样就可以将许多变量的公式转变为线性模型