7.回归案例pokemon
pokemon开始啦,来做一个基于对pokemon进化后cp的值的回归预测
- estimating the combat power of a pokeom after evolution
体重,身高,血量,种族,目前的cpp都是input,也可以说是特征,$x_{w},x_{h},x_{hp},x_{cp},x_{xhp}$
step 1: Model
找一个function set,假设我们猜测的是线性方程,那么就是$y = b + w * X_{cp} $
step 2: Goodness of Function
之后就是收集各种pokemon的资料,可以收集记录当一个pokemon进化时的资料,以及进化后的cp变化值,进化后的值就是正确的标签,设定为$\hat y$
假设目前有10只pokemon,我们画图标记坐标,绘制图如下所示:
可以看到有一些值特别高,这个特别高的值就是伊布,因为伊布比较稀有,他的数值各方面都非常高。
对于如何定义为不好的function,那么就是对于标签值即真实值和函数的预测值的差距特别大,因此loss可以写成estimation error
step3: Best Function
那么最好的function就一定是loss,也就是误差最小的function,而我们的任务就是找出loss最小的function,也就是组成这个function的参数,比如w和b。
如何找loss最小的方式呢?方式就是通过梯度下降来求loss,
selecting another Model
如果选择的回归模型并不能很好拟合,那我们就可以尝试使模型变复杂,不再使用一元,而是三元,甚至四元,使模型复杂。
可见模型复杂后的预测效果是更好了,但是引入五元后训练集的error很小,可是test上就产生了较大的误差,就有了overfitting。
redesgin the model
因为pokemon不同种族值有一定影响,我们可以引入one-hot来对于不同的种有不同的函数。
进行模型修改后就会有三条不同的线,对应三个不同的宝可梦。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 锅巴要写编译器!