一、过拟合
第一种是欠拟合,高偏差。第二种拟合较好。第三种过拟合,高方差。
过拟合:当特征很多,训练集可能拟合的很好,甚至代价函数的值约等于0,但是这个模型却不能泛化到新的数据集中,预测新的数据并不好。
上图与最开始说的一样,第一种是欠拟合,高偏差。第二种拟合较好。第三种加入了多个高阶项,过拟合,不能很好的泛化到新样本。
矫正过拟合的方法:
1、减少特征数(手动或采用相关模型自动减少无用的特征)。
2、正则化。
二、代价函数
以下图为例,右边拟合的曲线增加了高阶项,使得模型过拟合,那么我们可以在代价函数中,构建对高阶项的惩罚,比如加上用一个很大的数乘以θ3和θ4的平方,那么为了使代价函数J(θ)很小,那么只能使得θ3和θ4都很小且趋近于0,那么拟合出来的模型就有变成类似有图的二次项模型。
假设有多个特征,我们并不知道其中哪些特征要惩罚,则可以对所有特征进行惩罚,如下图
一般不对θo(即常数项,X全为1)进行惩罚,加入了正则化项的代价函数为:
λ为正则化参数,可以控制代价函数前一项(为了更好地拟合数据)和正则化项(为了使θ参数尽可能小,从而使模型相对简单,避免过拟合)的平衡。
经过正则化处理的模型与原模型的可能对比如下图所示:
如果选择的正则化参数λ过大,那么为了使代价函数J(θ)尽可能的小,则会把所有的参数都最小化了,导致模型变成hθ(X)=θo,也就是成了一条直线(如上图红线所示),造成欠拟合。所以对于正则化,需要取一个合理的λ。
三、线性回归的正则化
确定线性回归的模型的参数,有两种方法:梯度下降和正规方程。
正则化线性回归的代价函数为:
正则化线性回归的代价函数为:
因为未对θo进行正则化,所以使用梯度下降法令这个代价函数最小化时分为两种情况;
对上面算法中j=1,2,...,n的式子进行调整可得:
α很小,而m通常比较大,所以α*λ/m通常很小,可以发现,每次都使θj减少了一个额外的θj。
利用正规方程来求解正则化线性回归模型,方法如下所示:
图中的矩阵尺寸为:(n+1)*(n+1)。
四、逻辑回归的正则化
加入正则化项之后,逻辑回归的代价函数为:
要最小化该代价函数,通过求导,得出梯度下降算法为:
注意:
1、虽然正则化的逻辑回归中的梯度下降和正则化的线性回归中的表达式看起来一样,但由于两者的hθ(X)不同,所以差别很大。
2、θo不参与其中的任何一个正则化。
微信公众号:BioLearner
定期更新,欢迎关注
网友评论