什么是Regression
Regression就是通过找到一个函数Function,通过输入特征x,输出符合预期的数值。
Regresion例子
如何实现Regression
第一步 model(线性模型)
从最简单的单个特性开始建立模型(后续考虑更多的特征属性)
model
第二步 goodness of function(loss函数)
loss函数
第三步 best function(梯度下降法)
当loss函数是可导的,我们可以用求导(求偏导)的方式,确定参数的移动方向。
什么是梯度
在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率。
在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向。
梯度下降是什么
简单来说就是一种寻找目标函数最小化的方法。
如何利用梯度下降法寻找这个模型的最佳参数
- 随机选取一个点w0
- 算出当前点的微分(即斜率),根据斜率来判定移动的方向。
- 根据步长和移动方向确定参数的大小
-
重复以上步骤,直到找到最小的loss点
learning rate即步长
-
注:若为多个参数,则求偏导进行计算参数的移动方向
多个参数
梯度下降法有什么问题
只能求出局部最优,求出的最优参数依赖于随机选取的初始值的选择(看脸)
梯度下降法
对回归的结果进行分析
经过训练集的训练后,将测试集放到模型中进行测试
[图片上传失败...(image-443db0-1591253540725)]
测试结果
改进model
方法一 尝试加入高次的多项式,优化这个model的欠拟合情况
1. 各个模型的表现情况
二次项拟合情况
三次项拟合情况
从四次项开始,出现了过拟合情况,即模型受到训练集的影响过大,但是在测试集上的表现不佳
四次项拟合情况
五次项拟合情况
从各个模型中挑选最好的
越复杂的model能包含越多的信息,但是过于复杂的model受到训练集的影响过大,造成过拟合现象
model选择
在本次案例中,从四次开始,model出现过拟合现象,则最好的model为三次
model选择
方法二 加入更多的特征(考虑影响结果的其他因素)
考虑了神奇宝贝的种族问题,得到的model如下
考虑种族的model
这个模型的表现如下
种族model的表现
把更多的特征因素考虑进去
image
结果发生了过拟合,说明加入的特征中有无关因素
image
如何解决过拟合问题
可采用正则化的方式解决过拟合的问题,正则化就是在损失函数上加上一个与w(斜率)相关的值,那么要是loss function越小的话,w也会越小,w越小就使function更加平滑(function没那么大跳跃)
L2正则化
正则化虽然能够减少过拟合的现象,但是因为加在损失函数后面的值是平白无故加上去的,所以正则化过度的话会导致bias偏差增大
- 注:关于L1和L2正则化的问题,参考解释https://blog.csdn.net/red_stone1/article/details/80755144