【Stanford Machine Learning Open Course】8. 过拟合问题解决以及在回归问题和分类问题上的应用
这里是斯坦福大学机器学习网络课程的学习笔记。课程地址是:https://class.coursera.org/ml-2012-002/lecture/index
一、过拟合:是指因过分强调对训练样本的效果导致过度拟合,使得对未知预测样本效果就会变差的一种情况。
二、什么情况下出现过拟合:
当你拟合的函数中,一些特征权重阶数越高时,过度拟合的情况越有可能发生,反之阶数越小,过拟合发生概率越小,甚至会欠拟合。
比如有三个拟合函数:
a0 + a1x1+ a2x2
a0 + a1x1+ a2x2 + a3x12 + a4x22
a0 + a1x1+ a2x2 + a3x12 + a4x22 + a5x13 + a6x23
则最后这个过拟合的可能最高。
三、如何解决过拟合问题:
1. 将那些特征权重阶数高的特征删除。比如在上面的例子中删除特征x13 、x23。
删除方式有两种:
一种:人工查看样本集合筛选
另一种:有机器学习的规则用于筛选这种特征,后续才会讲到。
2. 正则化:特征全部保留,但特征系数进行最小优化。
设一般情况下的成本函数为costFucntion(a,x,y)
为了时特征系数减小,以使axj变小,新的成本函数为 costFunction_reg(a,x,y) = costFunction(a,x,y) + sum(aj2)
我们将这种处理叫做正则化
新增的正则化项为 a02 + a12 + ... + an2, 惯例上不要a02这项(他是1的系数),但即使加上效果影响不大。
四、正则化的线性回归问题
成本函数:costFunction(a,X,y) = 1/2m *sum((h(a,X)-y).^2), 其中h(a,X)=Xa;
正则化后:costFunctionReg(a,X,y) = costFunction(a,X,y) + lambda*sum(aj2)
梯度下降法:aj = aj - 1/m *alpha * ( h(a,X)-y ) * Xj
正则化后:aj = aj - 1/m * alpha * ( h(a,X)-y ) * Xj - 1/m * alpha * lambda * aj
正规方程组解法 a = (XT*X)-1*XT*y
正则化后:a = (XT*X - lambda * I )-1*XT*y
五、logistic分类问题过拟合解决
成本函数:costFunction(ha(x),y) = -y*log( ha(x) ) - (1-y)*log( 1- ha(x))
正则化后:costFunctionReg(ha(x),y) = costFunction(ha(x),y) + lambda*sum(aj2)
梯度下降法:aj =aj - 1/m*(ha(x)-y )* Xj;
正则化后:aj =aj - 1/m*(ha(x)-y )* Xj -1/m*lambda*a