1. 经验误差与过拟合
通常我们把分类错误的样本数占样本总数的比例称为”错误率“ (error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m;相应的,1-a/m称为“精度”(accuracy).更一般的,我们把在学习器的实际预测输出与样本的真实输出之间的差异称为“误差”(error), 学习器在训练器上的误差称为“训练误差”(training error)或“经验误差“(empirical error),在新样本上的误差称为“泛化误差”(generalization error).
我们能做的就是将经验误差最小化,在很多情况下,我们可以学习得到一个经验误差、在训练集上表现很好的分类器,即分类的精度为100%,但是这样的分类器在多数情况下都不好。学习器将训练样本学习的太好了,这样会导致泛化能力下降,这种现象在机器学习中称“过拟合”(overfitting).
2.评估方法
一、留出法 留出法(hand-out)直接将数据集D划分成两个互斥的集合,其中一个集合作为训练集S,另外一个作为测试集T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。以二分类为例,假设D包含1000个样本,将其划分为S包含700个样本,T包含300个样本,用S进行训练后,如果模型在T上90个样本分类错误,那么错误率为30%,相应的,精度为70%.
二、交叉验证法 “交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集,即D=D1∪D2∪...∪Dk, Di∩Dj =∅ (i≠j).每个子集Di都尽可能保持数据分布的一致性(即从D中分层采样取得)。每次用k-1个子集作为训练集,余下的那个子集作为测试集;这样可以获得k组训练集/测试集,最终返回的是这k个测试结果的均值。交叉验证法评估的结果很大程度上取决于k的取值,为了强调这一点,通常把交叉验证称“k折交叉验证”。k最常取的值是10.