模型评估

模型在训练集上的误差通常称为 “训练误差” 或 “经验误差”,而在新样本上的误差称为 “泛化误差”。显然,机器学习的目的是得到泛化误差小的学习器。然而,在实际应用中,新样本是未知的,所以只能使训练误差尽量小。

当模型在训练集上表现很好而在新样本上误差很大时,称为 “过拟合”;反之,模型在训练集上误差就很大时,称为 “欠拟合”。

  • 欠拟合通常容易解决,如 增加数据、增大训练次数、增大学习率或使用更复杂的模型 等。
  • 过拟合则很难解决,常用的方法包括 简化模型,减少特征,更多的数据,交叉验证,正则化,Dropout,Shuffling 等。

奥卡姆剃刀定律:如无必要,勿增实体。即机器学习模型越简单,那么久越可能获得泛化误差小的学习器。

所以,为了得到泛化误差小的模型,并避免过拟合,在构建机器模型时,通常将 数据集拆分 为相互独立的训练数据集、验证数据集和测试数据集等,而在训练过程中使用验证数据集来评估模型并据此更新超参数,训练结束中使用测试数据集评估训练好的最终模型的性能。

评价指标

评价指标(也称性能度量)是评估机器学习泛化能力的标准,不同的指标往往会导致不同的评判结果。并且,不同的机器学习任务也有着不同的评价指标。

常用的评价指标有

  • 错误率:分类错误的样本数占样本总数的比例。
  • 准确率(精度):分类正确的样本数占样本总数的比例。在很多情况下,准确率是一个欠佳或具有误导性的指标,比如在不同类型错误具有不同代价时(典型为分类不平衡,即正类别或负类别极其罕见)。
  • 对数损失函数(置信度)log_loss=1Ni=1Nyilogpi+(1yi)log(1pi)log\_loss=-\frac{1}{N}\sum_{i=1}^{N}y_i log p_i + (1-y_i)log(1-p_i),其中 yiy_i 是指第 ii 个样本所属的真实类别(0 或者 1),而 pip_i 表示第 ii 个样本属于类别 1 的概率。
  • 查准率和查全率:查准率是指分类器分类正确的正样本(True Positive,TP)的个数占该分类器所有分类为正样本个数(TP+FP (false positive))的比例;而查全率是指分类器分类正确的正样本个数(TP)占所有的正样本个数(TP+FN (false negative))的比例。这两者通常是一对矛盾的变量,查准率高时,查全率往往偏低
  • F1 度量:基于查准率和查全率的调和平均定义, F1=2PRP+RF1=\frac{2PR}{P+R}F1β=(1+β2)PRβ2P+RF1_\beta=\frac{(1+\beta^2)PR}{\beta^2P+R} ,其中 β\beta 是查全率对查准率的相对重要性。
  • 受试者工作特征(Receiver Operating Characteristic,ROC):ROC 曲线描述真正例率(TPR)与假正例率(FPR)的关系。在比较 ROC 时,需要比较 ROC 曲线下面的面积(Area Under ROC Curve,AUC),AUC 越大,分类效果越好
  • 代价敏感错误率:用于非均等代价的情景,根据任务的领域知识设定代价矩阵,计算的错误率称为代价敏感错误率;而对应的 ROC 曲线叫代价曲线。

比较检验

机器学习中,性能比较是比较复杂的

  • 我们希望比较的是泛化性能,而实际中只能得到测试集上的性能,两者的结果未必相同
  • 测试集上的性能跟测试集本身的选择有很大关系
  • 很多机器学习算法本身有一定的随机性,即便用相同参数运行在同一个测试集上,多次的运行的结果也有可能不同

所以,我们需要运用统计假设检验(hypothesis test)得到模型的泛化性能是否在统计意义上较优。常用的方法包括

  • 二项检验
  • t 检验
  • 交叉验证 t 检验
  • McNemar 检验
  • Friedman 检验
  • Nemenyi 后续检验

偏差与方差

泛化误差可以分解为偏差、方差与噪声之和,偏差 - 方差分解(bias-variance decomposition)是解释泛化性能的重要工具。

  • 偏差度量了算法的期望预测与真实结果的偏离程度。
  • 方差度量了同样大小训练集变动导致的性能变化。
  • 噪声涉及问题本身的难度。

所以,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度共同决定的。

但偏差与方差是有冲突的,即偏差 - 方差窘境(bias-variance dilemma)。在训练程度不足时,学习器拟合程度不强,训练数据的扰动不足以产生显著变化,此时偏差主导泛化错误率。随着训练程度加深,学习器拟合能力增强,训练数据的扰动逐渐可以被学习器学到,方差逐渐主导泛化错误率。如果继续加深训练,则有可能发生过拟合。

参考文档

© Pengfei Ni all right reserved,powered by GitbookUpdated at 2018-03-04 22:29:59

results matching ""

    No results matching ""