机器学习:过拟合和交叉印证
过拟合
过拟合的概念:表示在训练数据集上表现的优良但是在测试数据上表示的却很不好,本质上就是表示Eout和Ein的差距很大.如左下图,红色的线完美的拟合数据。在趋于右面的时候会表现的更好。但是一旦到了测试数据集上就不行了。红色线是三次函数,但是蓝色的线却是二次函数。vc维太高,就是学习器复杂度很高,根据vc维理论,测试数据上的结果,由两方面因素决定,一个是置信风险,一个是经验风险。例如:给定的样本数量越大,学习结果越有可能正确,此时置信风险越小;分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大最合适的model就是同时让这两个条件都同时减小。SVM的牛掰之处就是,他可以对置信风险为约束条件,去优化置信风险。而之前的算法都是在提高经验风险的同时却又增加了置信风险。就例如右下面的图片。
例如右上面的图片,在vc维增加的同时,可以看到蓝色的错误率在下降的同时紫色的线却在上升,越往右蓝色和紫色线的差越来越大。我们需要找的就是找到一个合适的vc维,使得紫色和蓝色的差最小。过拟合产生的原因如下:
<1>数据集中存在噪声。也就是把噪声当做数据去拟合。
<2>vc维太高,模型太复杂。
<3>训练数据太小。
如上图:左面表示在低vc维较低情况,右面表示vc维较复杂的情况。黑色的线表示理论的误差,可以看出在vc维度较复杂的情况下,即使数据集再大,黑色和红色的之间的差距依然很大。那个时候即使增加数据量也没办法提高效率。
上面对于最小二乘添加上了一个约束条件,蓝色的椭圆表示损失函数,红色表示的是约束条件,因为这里本质使用的L2正则项。右图是一个等高线。最好的方向就是和蓝色以及红色相切的地方。在相切的这点处的法向量下降的最快。当然我们只会在在红色的线上面进行滑动。形象点儿说,就是在蓝色区域逼近中心的时候总是会受到红色的制约,所以也仅仅会在蓝红相交的地方滑动。最终一般都是上拉格朗日。结果和岭回归结果相同。岭回归加入了一个单位矩阵来解决样本数目小于数据及数目矩阵不可逆的情况。那么参数如何确定(那木大)?一般我们都取0.001
这个表达式中,注意到在增加系数的时候,也就是加大了惩罚,vc维会降低,模型变得简单。例如上图所示,从左到右越大,模型却简单,等于1的时候直接在训练集上都不能工作。等于0的时候相当于没约束。那么大等于0,和c趋近于无穷,以及c>>||w||^2都表达的是一个意思。
交叉验证: