【机器学习李宏毅课程笔记】01.Regression


前言

本系列文章主要按照博主学习《李宏毅2023年春机器学习课程》的进度持续更新,如有错误希望大家能够指正。


一、Regression可以做什么

Regression可以通过过去的股价走势来预测股票,通过红外线设备获得道路信息来预测方向盘要有多少度的偏角,李宏毅老师则使用Regression来预测宝可梦进化后的CP值(宝可梦的攻击力)介绍什么是Regression。

在这里插入图片描述

如上图所示我们向一个函数中input一个宝可梦的一些特征(如身高,体重,进化前的CP值等),然后函数的输出y则是宝可梦的进化后的CP值。
当了解到这些后,如何找到这个函数呢?
我们接下来将按照机器学习的常规思路分三步逐步解决这个问题
1、寻找个一个model(就是找个一个函数)
2、评价函数的好坏
3、找到最好的那个函数

二、解决问题

1、Model

在这里插入图片描述

如上图我们建立一个只与进化前cp值有关的一个线性函数y = b + w * x,而x是进化前的cp值,通过输入x就可以得到一个输出值y也就是进化后宝可梦的cp值。

w,b在这里表示为参数,他们可以是任意的
如:y=0.8*x+4、y=-0.2*x-1.2

因此如何找到w,b的值成为了解决问题的关键

2、Goodness of Function

现在我们搜集了十只宝可梦的数据,并将其标注在一个xy坐标图中

x和y的上标表示这是第几组数据,这里头上带尖括号的y表示实际数据

在这里插入图片描述
我们要做的就是寻找一个函数最能拟合这条曲线,也可以粗略理解为有一条曲线能够经过图中的大部分点(实际情况下也可能一个不经过)从上文我们已经直到w和b的值是任意的,为了找到最合适的w和b的值我们要建立一个Loss Function(损失函数)。
在这里插入图片描述
Loss Function如上图所示,它能够将一个函数作为输入,用真实值减去预测函数得到的值,并进行平方求和得到训练数据与真实数据的误差,误差越大函数拟合效果越大。
我们可以通过挨个输入b和w的值来找拟合效果最好的函数,但这样的效率太低,因此我们将要介绍一种具有普适性的算法Gradient Descent。

3、Grandient Descent

为了方便介绍,我们假设L(w)只含有一个参数w,不含有参数b

我们要做的就是找到能够时损失函数L(w)最小的数值w,计算方法也很简单,我们先随机给w赋予一个初值,然后用现在w的值减去L对w求导乘以η (一个认为设置的正数)的值,当导数大于0时w的值会减小,小于零时会增大当导数等于0时则L(w)会达到最小值。
在这里插入图片描述
当我们有两个或多个参数时也可以进行如下相同的计算
在这里插入图片描述

4、How about result?

当我们找到拟合度最高的函数时,我们可以计算一下这个函数在训练数据上的误差,就是用真实值减去预测值的绝对值求和,我们也可以再找十组数据去测试这个函数的误差。
在这里插入图片描述
可见误差分别是35.0和31.9,这个误差还是有点大,因此我们要去优化它即选择新的模型,如二次函数,三次函数等
在这里插入图片描述
其实这些函数是相互包含的,如当二次函数的二次项系数等于0时,他就是一个一次函数,所以这些函数在训练集上的误差越来越小,但随着未知项次数增大,这个函数在测试集上的误差确出现不降反升的Overfitting(过拟合现象)。
在这里插入图片描述
所以模型不是越复杂越好,要选择一个适合的模型。

总结

希望这篇文章对您有所帮助。

猜你喜欢

转载自blog.csdn.net/weixin_63614711/article/details/130667900