我们知道,同一个问题,可采用多种机器学习模型来解决,那如何评价这些模型的好坏呢?这时,就需要构建一系列“靠谱”的标准。因此,提及机器学习,性能评估是一个绕不开的话题。
训练误差与测试误差
性能评估,主要用于反映所构建学习模型的效果。在预测问题中,要评估模型的性能,就得将预测结果和真实标注进行比较。对于监督学习而言,假设我们有 m 个样本,其中有 a 个被模型错误分类,那么一种简易的评价标准—分类错误率(error rate)可以定义为 a/m。
通常,我们将学习模型在训练集上的误差称为训练误差(training error),将在测试集上的误差称为测试误差(test error),而将在新样本上的误差称为泛化误差(generalization error)。这里的“泛化”,是指模型在新情况、新样本上的性能表现,你也可以把它理解为“通用”。
显然,训练模型的终极目的,不仅是希望它在训练集上表现很好,还希望它在新环境中对新样本表现也不逊色。机器学习算法对于新样本的适应能力,称为泛化能力。
这就好比,如果在家里我们把孩子训练得服服帖帖,事事符合我们的预期,这可能并非好事,因为孩子最终还是要走出家门,踏上社会。如果在新环境下,孩子还能表现得适应能力很强(用机器学习的术语来说,就是泛化能力强),这才是我们想要的。
然而,