模型评估与选择----经验误差与过拟合
1.错误率与精度
在通常情况下,我们会对错误率和精度进行如下定义:
错误率:分类错误的样本占样本总数的比例,即如果在m个样本中右n个样本分类错误,那么错误率E=n/m;
精度:分类正确的样本占样本总数的比例。
错误率与精度之间的关系:精度=1-错误率
2.经验误差与泛化误差
一般地,学习器的实际预测输出和真实样本之间的差距叫做“误差”。此外,误差还可以细分为经验误差(训练误差)和泛化误差。
其中,经验误差是指学习器在训练集上的误差,泛化误差则是指在测试集上的误差。
3.过拟合和欠拟合
一般地,我们希望一个在训练集上训练的很好的学习器可以在测试集上也能得到很好的效果,为了达到这个目的,应该从训练样本中尽可能学到适用于所有潜在样本的“普遍规律”,这样在对新的样本进行分类处理时才能得到一个较好的效果。
此时,就需要考虑到一个问题,当一个学习器在训练集中的训练效果特别好的时候,此时的学习器很有可能会把训练样本自身的特点当做了所有样本的特点进行训练,也就是说该学习器可以很好的学习训练集中已有的特征,但是当测试集中的样本出现了与训练集中未出现的特征时,学习器在测试集上的效果相较于训练集就会变得非常低,这就说明了该学习器的泛化能力比较差。这种现象在机器学习中被称为“过拟合”。
与过拟合相对应就是欠拟合,欠拟合就是指在训练集中并没有训练得到一个效果很好的学习器,因此也就是说明该学习器在训练集和测试集中的效果都不是很好,则称为“欠拟合”。
我们可以从下面一张图中来比较一下过拟合和欠拟合:
其中,导致过拟合的因素有很多,最常见的就是模型的学习能力过于强大,以至于学到了训练集中所有样本的特征都学到了,包括了一些不太一般的特征;与此相反,欠拟合则是由于学习能力低下造成的。
相比于过拟合,欠拟合更容易克服,一般可以通过在学习过程中增加训练轮次解决问题;但是对于过拟合的问题,解决起来则是比较困难,在各类机器学习算法中,都会采取一些针对措施来防止过拟合。此外,我们必须认识到,过拟合是无法避免的,我们可以做的只是来“缓解”过拟合。
在现实中,对于某一个特定的任务我们可能会有好多种算法可以选择,对于同一个算法还可以使用不同的参数配置,也就会产生不同的模型,选择何种模型何种配置就会涉及到机器学习中的“模型选择”(model selection)问题。
理想的解决方案就是选择对候选模型的误差最小的那个,但是我们无法直接获取泛化误差,而训练集中得到的训练误差又会涉及到过拟合等问题,不适合作为标准,因此模型的评估和选择又是一个比较重要的问题,该问题在后续的博客中会继续推出。