机器学习入门(15)--过度拟合
定义
对于线性回归或逻辑回归的损失函数构成的模型,可能会有些权重很大,有些权重很小,导致过拟合(就是过分拟合了训练数据),使得模型的复杂度提高,泛化能力较差(对未知数据的预测能力)。
下面左图即为欠拟合,中图为合适的拟合,右图为过拟合:
拟合情况分析:过拟合问题往往源自过多的特征。
解决方法
1)减少特征数量:减少特征会失去一些信息,即使特征选的很好。可用人工选择要保留的特征;也可根据模型选择算法;
2)正则化:特征较多时比较有效,保留所有特征,但减少θ的大小
正则化方法
正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化项就越大。从房价预测问题开始,这次采用的是多项式回归。左图是适当拟合,右图是过拟合:
直观来看,如果我们想解决这个例子中的过拟合问题,最好能将x3,x4的影响消除,也就是让θ3=0,θ4=0.。假设我们对θ3,θ4进行惩罚,并且令其很小,一个简单的办法就是给原有的Cost函数加上两个略大惩罚项,例如:
通过这样的代价函数选择出的θ3和θ4对预测结果的影响就比之前要小许多。假如我们有非常多的特征,我们并不知道其中哪些特征我们要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的能防止过拟合问题的假设:
备注:注:根据惯例,我们不对θ0进行惩罚。
其中λ又称为归一化参数(Regularization Parameter)。如果它的值很大,说明对模型的复杂度惩罚大,对拟合数据的损失惩罚小,这样它就不会过分拟合数据,在训练数据上的偏差较大,在未知数据上的方差较小,但是可能出现欠拟合的现象;如果它的值很小,说明比较注重对训练数据的拟合,在训练数据上的偏差会小,但是可能会导致过拟合。经过归一化处理的模型与原模型的可能对比如下图所示:
如果选择的归一化参数λ过大,则会把所有的参数都最小化了,导致模型变成hθ(x)=θ0也就是上图中红色直线所示的情况,造成低度拟合。
如果我们要使用梯度下降发令这个代价函数最小化,因为我们未对θ0进行归一化,
对上面的算法中j=1,2,...,n时的更新式子进行调整可得:
可以看出,归一化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令θ值减少了一个额外的值。
我们同样也可以利用正规方程来求解归一化线性回归模型,也就求使J(θ)min的θ,令J(θ)对θj求导的所有导数等于0,有公式如下:正则化后的线性回归的Normal Equation的公式为:
同样对于逻辑回归,我们也给代价函数增加一个归一化的表达式,得到:
要最小化该代价函数,通过求导,得出梯度下降算法为:
注:看上去同线性回归一样,但是知道hθ(x)=g(θTX),所以与线性回归不同。