泛化误差:学习器在新样本上的误差为泛化误差。显然,我们希望得到泛化误差小的学习器。
过拟合:学习器把训练样本学得‘太好’了的时候,很可能把训练样自身的一些特点当作了所有潜在样本都会具有的一般性质,这样导致泛化性能下降。此现象称为‘过拟合’。过拟合是机器学习的关键障碍,无法彻底避免,只能缓解。
模型评估方法:有三种。
1.留出法:
将数据集D分为训练集S与测试集T,训练集应该尽量与测试集互斥,即测试样本尽量不要在训练集中出现。S训练出模型后,以T来评估测试误差,作为泛化误差的估计。数据的划分要保持数据分布的一致性。实际中,往往采用若干次随机划分、每次产生一个训练/测试集用于实验评估,100次就有100个结果,最后以100次的结果作为均值。缺点:有时候由于T太小,模型的评估未必准确。如果增大T,则S与D差别更大,被评估的模型与用D训练出的模型相比可能有比较大的差别,降低了评估结果的保真性。
2.交叉验证法:
将数据集D分为k个大小相似的互斥子集。k-1个子集作为训练集、剩下的一个作为测试集。这样进行k次训练和测试,最终返回k个测试结果的均值。
存在一个特例:留一法:数据集D有m个样本,令k=m,留一法不受样本随机划分的影响,所以评估结果比较准确。但如果数据集较大时留一法比较消耗资源,成本过大。
查准率与查全率:
查准率:被查出来是糖尿病的人有多少是真正的糖尿病患者(鉴别假阳性)。
查全率:真正的糖尿病人有多少被查了出来(鉴别出没有被查出的糖尿病患者)。
ROC与AUC:
很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值分为正类、小于阈值为反类。根据这个实值或概率预测结果对样本进行排序,最可能是正例的排在前面,最不可能是正例的排在后面。
这样分类就相当于在排序过程中以某个截断点将样本分为两部分,前一部分判作正例,后一部分作反例。
所以排序性能的好坏体现了学习器泛化性能的好坏。ROC即是从此角度出发来研究学习器泛化性能的。对样例的预测结果进行排序,按照排序顺序逐个把样本作为正例进行预测,每次计算出‘真正例率(TPR)’与‘假正例率(FPR)’。横轴为‘假正例率’、纵轴为‘真正例率’。
进行学习器比较时若一个学习器的ROC曲线被另一个完全包住,则可断言后者性能优于前者,若两个学习器的roc曲线发生交叉此时则用ROC曲线下的面积AUC进行判断。
偏差、方差、噪声
泛化误差可以分解为偏差、方差与噪声之和。
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题的本身难度,是客观存在的。