Regression Case Study

回归案例

Regression Case Study
我们评估一只宝可梦在进化后的战斗力,这里有当前战斗力,宝可梦种类,宝可梦血量,重量,高度等特征值,我们将宝可梦放入一个函数里,其实就是将这些特征值放入函数里,然后输出进化后的cp值。

步骤1

Regression Case Study
我们假设只与当前cp值有关,且假设是一个线性回归模型。我们要在函数集合里面挑选一个最优的函数,也就是挑选最优的w和b。
w和b会有一个初始值,然后不断被训练,直到得到最好的。

步骤2

Regression Case Study

Regression Case Study上图是我抓了十只宝可梦当作训练集,初始cp值和进化后的cp值都是真实数据,然后用于训练模型。
Regression Case Study那么我们怎么知道得到模型是最好的??这里需要一个损失函数去度量。如上图所示,将一个函数作为参数输入给损失函数,然后输出值是一个百分比,越小越好。
Regression Case Study

步骤3

Regression Case Study我们采用梯度下降的方式找出最好的函数,也就是最好的w和b。
Regression Case Study如上图,假设b为0,先考虑w,对损失函数的w求导,也就是找一条切线,然后慢慢向最低点移动。
Regression Case Studyη是学习率,也就是切线以什么速率移动。
Regression Case Study
但要注意,是局部最小还是全局最小。
Regression Case Study上图是考虑了w和b的梯度下降。
Regression Case Study上图是考虑了w和b的梯度下降的过程,是怎么走到相对很好的区域。

Regression Case Study
Regression Case Study
如上图,是有w1和w2的情况,也是有局部最低点存在的。
Regression Case Study
Regression Case Study

训练结果

Regression Case Study如上图是在训练集上得到的曲线

Regression Case Study如上图是在测试集上得到的曲线,很明显,测试集的错误率高,这是因为我本身就是用训练集训练的模型,所以用训练集训练出的模型去预测训练集的数据自然比测试集的精确度高。

测试一下其他模型

Regression Case Study
Regression Case Study
Regression Case Study

Regression Case Study
看上面几张图,当多项式次数过多反而得到的结果很差。
Regression Case Study
如上图,多项式次数多的包含了次数少的,自然次数多了可能会有太多很废的函数!!!

Regression Case Study
如上图,多项式次数过多(函数过于复杂)会导致过拟合,也就是对数据的敏感性太大,数据稍微变一下,那么预测结果就跑偏了。

加入一些其他特征值

Regression Case Study
Regression Case Study模型的好坏是否与宝可梦的品种有关??我们来测试一下。

Regression Case Study
Regression Case Study上面所示加入了品种的判断,每个品种有自己的模型。

Regression Case Study那么我们再加一些其他因素?
Regression Case Study

Regression Case Study如上图,因素(特征)太多就过拟合了。
Regression Case Study上图是我们用正则化去使损失函数更加平滑,也就是对数据变化不要那么敏感,下图是正则化后的结果。
Regression Case Study