误差的来源
误差的两个来源-偏差和方差
随着模型复杂度的提升会带来带来一些误差,而误差(Error)的主要来源了有两个方向,偏差(Bias)和方差(Variance)。
Error反映的是整个模型的准确度,Bias反映的是模型在样本的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次的输出结果与模型输出期望之间的误差,即模型的稳定性。
上图可以很直观的反映,误差(error)与偏差(Bias)和方差(Variance)之间的关系。只有当variance和bias两个都很小的时候才会满足实际的点正中靶心(如左上角的靶心所示)。
不同模型的方差与误差
假设对于一个机器学习案例运用不同的模型去去预测,不同的模型的得到的预测值是不一样的,所以不同的模型必然产生不同的误差。
通过实验可知,简单的模型得到的偏差较大,方差较小。复杂的模型得到偏差较小,方差较大。
理想的模型是方差和偏差的值都比较小,即误差比较小。
欠拟合与过拟合
在上图中,简单模型(左边)是偏差比较大造成的误差,这种情况叫做欠拟合,而复杂模型(右边)是方差过大造成的误差,这种情况叫做过拟合。
如果模型没有很好的训练,也就是偏差过大,也就是欠拟合;如果模型很好的训练,在训练集上的误差较小,但是在测试集上有较大的误差,那就是过拟合。
过拟合的解决方案:得到更多的数据集,适当降低模型的复杂度,使得模型的泛化能力增强。
欠拟合的解决方案:重新设计模型,考虑更多的特征,增大模型的复杂度。
模型的选择
现在在偏差和方差之间就需要一个权衡 想选择的模型,可以平衡偏差和方差产生的错误,使得总错误最小。
在训练模型的使用交叉验证的方式,使得训练的模型泛化能力更强。
“交叉验证法”(cross validation)先将数据集D划分为k个大小相同(或相似)的、互不相交的子集,每个子集称为一个"折叠"(fold),每次训练,轮流使用其中的一个作为测试集、其它作为训练集. 这样,就相当于获得了k组训练集、测试集,最终的预测结果为k个测试结果的平均值.