西瓜书学习笔记-第二章 模型评估与选择

第二章 模型评估与选择

2.1 经验误差与过拟合

  • 错误率(error rate):分类错误的样本数占样本总数的比例

  • m个样本中有a个样本分类错误,则错误率E=a/m

  • 1-a/m称为精度(accuracy),即精度=1-错误率,精度常写为百分比形式

  • 误差(error):学习器的实际预测输出与样本的真实输出之间的差异

    • 学习器在训练集上的误差称为“训练误差”(training error)/“经验误差”(empirical error)

    • 在新样本上的误差称为“泛化误差”(generalization error)

  • 过拟合(overfitting):把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,导致泛化性能下降

  • 欠拟合(underfitting):对训练样本的一般性质尚未学好

  • 过拟合的主要原因是学习能力太过强大,欠拟合通常是由于学习能力低下造成的

  • 欠拟合比较容易解决,过拟合则很麻烦,而且过拟合无法彻底避免,只能尽量缓解

  • 模型选择(model selection)问题:在面对实际任务时,该选用哪个算法,哪种参数配置

2.2 评估方法

  • 使用测试集(testing set)来测试学习器对新样本的判别能力,然后以测试集上的测试误差(testing error)作为泛化误差的近似

  • 测试集应尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用

  • 通过对数据集D进行适当的处理,从中产生出训练集S和测试集T

2.2.1 留出法

  • 留出法(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,D=S\cup T,S\cap T=\empty,在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计

  • 训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响

  • 保留类别比例的采样方式称为“分层采样”(stratified sampling)

  • 若S、T中样本类别比例差别很大,则误差估计将由于训练/测试数据分布的差异而产生偏差

  • 单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分,重复进行实验评估后取平均值作为留出法的评估结果

  • 训练集S过大时,T比较小,会导致评估结果不够稳定准确

  • 测试集T过大时,S偏小,被评估的模型与用D训练出的模型可能差别较大,降低了结果的保真性(fidelity)

  • 常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试

2.2.2 交叉验证法

  • 交叉验证法(cross validation)先将数据集D划分为k个大小相似的互斥子集,即D=D_1\cup D_2 \cup ...\cup D_k, D_i\cap D_j=\empty(i\neq j),每个子集D_i都尽可能保持数据分布的一致性,即从D中通过分层采样得到

  • 每次用k-1个子集的并集做训练集,剩下的那个子集做测试集,这样就可获得k组训练集/测试集,可以进行k次训练和测试,最终返回k个测试结果的均值

  • 交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,因此通常把交叉验证法称为k折交叉验证(k-fold cross validation)

  • k最常用的取值是10,此时称为10折交叉验证,其他常用的k值有5,20等

  • 为了减少因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,常见的有10次10折交叉验证

  • 交叉验证法的特例:留一法(Leave-One-Out,简称LOO)

    • 留一法不受样本随机划分方式的影响

    • 留一法使用的训练集与初始数据集相比只少了一个样本,使得留一法中被实际评估的模型与期望评估的用D训练出来的模型很相似,因此评估结果被认为比较准确

    • 缺陷:在数据集比较大时,计算开销可能会非常巨大;估计结果也未必永远比其他评估方法准确

2.2.3 自助法

  • 自助法(bootstrapping)直接以自助采样法(bootstrap sampling)为基础

  • 通过自助采样,初始数据集中约有36.8%的样本未出现在采样数据集D'中,于是将D'用作训练集,D\setminus D'用作测试集

  • 实际评估的模型与期望评估的模型都使用m个训练样本,仍有约1/3的,没在训练集中出现的样本用于测试,这样的测试结果,称为"包外估计"(out-of-bag-estimate)

  • 自助法在数据集较小,难以有效划分训练/测试集时很有用,对集成学习等方法有很大的好处

  • 缺点:产生的数据集改变了初始数据集的分布,会引入估计偏差,在初始数据量足够时,留出法和交叉验证法更常用

2.2.4 调参与最终模型

  • 参数配置不同,学得模型的性能往往有显著差别

  • 训练集:用于训练模型

  • 验证集:用于验证模型,根据情况不断调整模型,选择表现最好的

  • 测试集:评估最终模型

2.3 性能度量

  • 性能度量(performance measure):衡量模型泛化能力的评价标准

  • 回归任务最常用的性能度量是“均方误差”(mean squared error)
    E(f;D)=\frac{1}{m}\sum^{m}_{i=1}{(f(x_i)-y_i)^2}

  • 对于数据分布D和概率密度函数p(·),均方误差可描述为:
    E(f;D)=\int^{}_{x\sim D}{(f(x)-y)^2p(x)dx}

2.3.1 错误率与精度

2.3.2 查准率、查全率与F1

  • 我们更关心的是挑出的西瓜中有多少比例是好瓜或者所有好瓜中有多少比列被挑出来了,此时错误率无法精准度量

  • 查准率(precision)与查全率(recall)更适合此类需求的度量

  • 二分类问题可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive),假正例(false positive),真反例(true negative),假反例(false negative),分别用TP,FP,TN,FN表示

  • TP+FP+TN+FN=样例总数

  • 分类结果的混淆矩阵(confusion matrix):

    预测结果
    真实情况 正例 反例
    正例 TP(真正例) FN(假反例)
    反例 FP(假正例) TN(真反例)
  • 查准率P与查全率R分别定义为:
    P=\frac{TP}{TP+FP}
    R=\frac{TP}{TP+FN}

  • 查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;查全率高时,查准率往往偏低

  • 选瓜的查准率P代表挑出的西瓜中有多少比例是好瓜,查全率R代表好瓜中有多少比例的被挑出来了

  • 以查准率为纵轴,查全率为横轴作图,就得到了查准率-查全率曲线,简称P-R曲线

  • P-R图直观地展示出学习器在样本总体上的查全率、查准率

  • 在进行比较时,若一个学习器的P-R曲线被另一个学习器的曲线完全包住,则可断言后者的性能优于前者

  • 如果两个学习器的P-R曲线发生了交叉,则难以一般性地断言两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较

  • 这时一个合理的判据是比较P-R曲线下面积的大小,由于该值不太容易估算,所以引入平衡点

  • 平衡点(Break-Event Point,简称BEP)是查准率=查全率时的取值

  • 由于BEP过于简化,更常用的是F1度量
    F1=\frac{2\times P \times R}{P+R}=\frac{2\times TP}{sampleNums+TP-TN}

  • 在一些应用中,对查准率和查全率的重视程度有所不同,F1度量的一般形式F_\beta更能表达出对查准率/查全率的不同偏好
    F_\beta=\frac{(1+\beta^2)\times P\times R}{(\beta^2\times P)+R},\beta >0

  • β>1时查全率更重要,β<1时查准率更重要,β=1即为F1

  • 宏查准率(macro-P),宏查全率(macro-R),宏F1(macro-F1)

  • 微查准率(micro-P),微查全率(micro-R),微F1(micro-F1)

2.3.3 ROC与AUC(略)

2.3.4 代价敏感错误与代价曲线(略)

2.4 比较检验(略)

2.4.1 假设检验

2.4.2 交叉验证t检验

2.4.3 McNemar检验

22.4.4 Friedman检验与Nemenyi后续检验

2.5 偏差与方差(略)

你可能感兴趣的:(西瓜书笔记,机器学习)