精读西瓜书(第二章-模型评估与选择)-性能度量, 比较检验

写在前面

  • 在这篇文章中, 我们将继续学习模型评估与选择中的性能度量与比较检验这两个小节. 这两个小节中涉及到的概念性的东西比较多, 我们提炼了一些比较重要的点出来进行讲解.

性能度量

  • 性能度量(Performance Measure): 对学习器的泛化性能机型评估, 不仅需要有效可行的实验估计方法, 还需要有度量模型泛化能力的评价标准, 这就是性能度量(Performace Measure). 性能度量反映了任务需求, 在对比不同模型的能力时, 使用不同的性能度量往往会导致不同的评判结果; 这意味着模型的'好坏'是相对的, 什么样的模型是好的, 不仅取决于算法和数据, 还决定于任务需求.
  • 在预测任务中, 给定样例集 , 其中 是示例 的真实标记. 要评估学习器 的性能, 就要把学习器预测结果 与真实标记 进行比较.
  • 回归任务最常用的性能度量是'均方误差'(Mean Squared Error), 也被简称为MSE.

  • 更一般的, 对于数据分布 和概率密度函数 , 均方误差可描述为:

错误率与精度

  • 对于样例集 , 分类错误率定义为:

  • 对于样例集 , 精度定义为:


  • 更一般的, 对于数据分布 和概率密度函数 , 错误率与精度可分别描述为:



查准率, 查全率与F1

  • 关于查准率, 查全率与F1的一些基本概念, 请参考<Accuracy, Precision, Recall, F-Score>一文.
  • 在很多情况下, 我们可根据学习器的预测结果对样例进行排序, 排在前面的是学习器人为'最可能'是正例的样本, 排在最后的则是学习器人为'最不可能'是正例的样本. 按此顺序逐个把样本作为正例进行预测, 则每次可以计算出当前的查全率, 查准率. 以查准率为纵轴, 查全率为横轴作图, 就得到了查准率-查全率曲线, 简称'P-R曲线', 显示该曲线的图称为'P-R图'.
  • P-R图直观地显示出学习器在样本总体上的查全率, 查准率. 在进行比较时, 若一个学习器的P-R曲线被另一个学习器的曲线完全'包住', 则可断言后者的性能优于前者. 如上图, 学习器A的性能优于学习器C; 如果两个学习器的P-R曲线发生了交叉, 如图中的A与B, 则难以一般性的断言两者孰优孰虐, 只能在具体的查准率或查全率条件下进行比较. 然而, 在很多情形下, 人们往往仍希望把学习器A与B比出个高低. 这事一个比较合理的判据是比较P-R曲线下面积的大小, 他在一定程度上表征了学习器在查准率和查全率上取得相对'双高'的比例. 单这个值不太容易估算, 因此, 人们设计了一下综合考虑查准率, 查全率的性能度量.
  • 平衡点(Break-Event Point, 简称BEP): 查准率=查全率时的取值, 在上图中, 学习器C的BEP是0.64, 而基于BEP的比较, 可认为学习器A优于B. 但是BEP还是过于简化了些, 更常用的是F1度量. 具体参见<Accuracy, Precision, Recall, F-Score>一文.

ROC与AUC

  • ROC(Receiver Operating Characteristic): 受试者工作特征曲线, 纵轴是'真正例率'(True Positive Rate, 简称TPR), 横轴是'假正例率'(False Positive Rate, 简称FPR).
  • 基于上图, 两者分别定义为:



  • 如上图a, 显然, 对角线对应于'随机猜测'模型, 而点(0, 1)则对应于将所有整列排在所有反例之前的'理想模型'.
  • 进行学习器的比较时, 与P-R图相似, 若一个学习器的ROC曲线被另一个学习器的曲线完全'包住', 则可断言后者的性能优于前者; 若两个学习器的ROC曲线发生交叉, 则难以一般性地断言两者孰优孰虐. 此时如果一定要进行比较, 则较为合理的判据是比较ROC曲线下的面积, 即AUC(Aera Under ROC Curve).
  • AUC可通过对ROC曲线下各部分的面积求和而得. 假定ROC曲线是由坐标为 的点按顺序连接而形成 , 参考上图b, 则AUC可估算为:

  • 形式化地看, AUC考虑的是样本预测的排序质量, 因此它与排序误差有紧密联系. 给定 个正例和 个返利, 令 分别表示正, 反例集合, 则排序'损失'(loss)定义为:

  • 因此有:

代价敏感错误率与代价曲线

  • 以二分类任务为例, 我们可以根据任务的领域知识设定一个'代价矩阵'(Cost Matrix), 如下图, 其中 表示将第i类样本预测为第j类样本的代价. 一般来说, ; 若将第0类判别为第1类所造成的损失更大, 则 ; 损失程度相差越大, 值的差别越大.
  • 则代价敏感(Cost-Sensitive)错误率为:

  • 在非均等代价下, ROC曲线不能直接反映出学习器的期望总体代价, 而'代价曲线'(Cost Curve)则可达到该目的. 代价曲线图的横轴是取值为 的正例概率代价.

  • 其中p是样例为正例的概率; 纵轴是取值为 的归一化代价.

  • 围成的面积即为在所有条件下学习器的期望总体代价:

比较检验

  • 比较检验: 有了实验评估方法和性能度量, 就可以对学习器的性能进行评估比较. 先使用某种实验评估方法测得学习器的某个性能度量结果, 然后对这些结果进行比较. 需要重点考虑: 泛化性能; 测试集上的性能与测试集本身的选择有很大关系, 且不论使用不同大小的测试集会得到不同的结果, 即便使用相同大小的测试集, 若包含的测试样例不同, 测试结果也会不同; 很多机器学习算法本身有一定随机性, 即便用相同的参数设置在同一个测试集上多次运行, 其结果也会有不同.
  • 统计假设检验(Hypothesis Test): 为我们进行学习器性能比较提供了重要依据. 基于假设检验结果我们可以推断出, 若在测试集上观察到学习器A比B好, 则A的泛化性能是否在统计意义上由于B, 以及这个结论的把握有多大.

假设检验

  • 假设检验: '假设'是对学习器泛化错误率分布的某种判断或猜想, 例如' '. 现实任务中, 我们并不知道学习器的泛化错误率, 只能获知其测试错误率 , 但直观上, 二者接近的可能性应比较大, 相差很远的可能性比较小. 因此, 可根据测试错误率估推出泛化错误率的分布.
  • 泛化错误率为 的学习器在一个样本上犯错的概率是 ; 测试错误率 意味着在m个测试样本中恰有 个被误分类. 假定测试样本是从样本总体分布中独立采样而得, 那么泛化错误率为 的学习器将其中 个样本误分类, 其余样本全都分类正确的概率是:
  • 由此可估算出其恰将 个样本错误分类的概率如下:

写在后面

  • 这篇文章中, 着重介绍了性能度量的概念, 查准率, 查全率, F1, ROC, AUC与代价曲线. 对于新手来说, 一下接触这么多概念可能会比较吃力, 不过没关系, 这里先有个概念, 后面遇见问题了, 知道如何去搜, 是一种很好的学习方法.
  • 在下一篇文章中, 我们会重点讨论偏差与方差.

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据