1、什么是regression(回归)
就是找到一个函数 function,通过输入特征x,输出一个数值Scalar。
2、实现回归的步骤
step1、model(确定一个模型)–线性模型
step2、goodness of function(确定评价函数)——损失函数
用真实的数据衡量模型的好坏。从数学的角度来讲,使用距离。即实际进化后的CP值与模型预测的CP值差,来判定模型的好坏。也就是使用损失函数(Loss function)来衡量模型的好坏,距离之和越小模型越好。
step3、best function(找出最好的一个函数)——梯度下降法
1、问题的实质:就是找最佳参数,也就是使损失函数最小的参数,也就是使距离之和最小的参数
2、一些概念
梯度:在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率。在多变量函数中,梯度是一个向量,其方向指出函数在给定点上升最快的方向,即方向导数取最大值的方向。
梯度下降:求“下山最快路径”的一种算法
learning rate学习率:每次移动的步长
3、先考虑一个参数w
步骤1:随机选取一个。
步骤2:计算微分,也就是当前的斜率,根据斜率来判定移动的方向。大于0向左移动,小于0向右移动
步骤3:根据学习率和微分的乘积移动。斜率越大移动的越快
重复步骤2和步骤3,直到找到最低点。
4、再考虑两个参数(w、b)
计算偏微分,按梯度方向移动直到找到最低点。
5、梯度下降算法的问题
递归下降只能找到局部最优解,甚至只是一个拐点
step4、回归结果分析
使用新的数据进行预测,并通过实际的结果计算与预测结果的差值来分析模型的好坏
3、进一步的改进方法:解决欠拟合
方法一:选择更加细致的线性模型,解决欠拟合Overfitting问题
问题:过于细致的模型会放大数据中的随机性,发生Overfitting
方法二:考虑更多的影响因素
问题:考虑过多的因素也会Overfitting,说明有些因素跟结果没有关系
4、再进一步的改进方法:防止过拟合
正则化Regularization:在loss function里面加一个与model高次项系数相关的term,它会让model里高次项的参数越小越好,也就是说曲线越平滑越好;这个新加的term前面可以有一个weight,代表你希望曲线有多平滑(weight代表平滑程度)
加了Regularzation之后,很不平滑的曲线就不会再出现,再增加weight,会让曲线变得更平滑
缺点:正则化能够减少过拟合的现象即减少测试误差,但可能会增加训练误差