模型评估与选择-ML读书笔记01

周志华的《机器学习》书阅读,笔记记录。(好记性不如烂笔头)

目录

一些概念

  • 错误率(error rate):被使用的总m个样本中有a个分类错误,E=a/m;
  • 精确率/精度(accuracy):A=1-a/m;
  • 训练误差(training error)=经验误差(empirical error):在训练集上的误差
  • 测试误差(test error)=泛化误差(generalization error):在新样本上的误差
  • 过拟合(overfitting)
  • 欠拟合(underfitting)

评估方法

1)留出法(hold-out)

  • 训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响
  • 约2/3~4/5的样本用于训练,剩余样本用于测试

2)交叉验证法(cross validation)

  • 将数据集划分为k个大小相似的互斥子集
  • 每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集
  • 返回的k个测试结果求均值
  • k最常用的取值为10
  • 若数据集包含m个样本,且k=m,则称为留一法(Leave one out)

3)自助法(bootstrapping)

  • 自助采样法(bootstrap sampling)为基础
  • 给定包含m个样本的数据集D,采样产生数据集D1(有放回的采样m次)
  • 将D1作为训练集,D\D1作为测试集(经过验证,剩余数量约1/3)
  • 这种方法的测试结果,也叫做包外估计(out-of-bag setimate)
  • 优点:在数据集较小、难以有效划分训练/测试集时,很有用
  • 缺点:改变了初始数据集的分布,引入估计偏差

性能度量

衡量模型的泛华能力的评价标准
常用的性能度量有:
- 错误率 = 分类错误的样本数/样本总数
- 精度 = 分类正确的样本数/样本总数
混淆矩阵

真实情况 预测正例 预测反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

- precision=TP(TP+FP)
- recall=TPTP+FN
- 查准率和查全率两者不可兼得,于是就有了平衡点(Break-Event Point,BEP),即查准率=查全率时的取值。
- 更常用 F1 度量: F1=2×P×RP+R=2×TP+TPTN
- 更多情况下,查准率和查全率的重要程度不同,使用更一般的度量标准 Fβ Fβ=(1+β2)×P×R(β2×P)+R
- ROC(受试者工作特征,Receiver Operating Characteristic)
真正例率 TPR=TPTP+FN
假正例率 FPR=FPTN+FP
- AUC(Area Under ROC Curve)
- 非均匀等价(unequal cost)

比较检验

统计假设检验(hypothesis test),几种常用方法:
- 交叉验证t检验
基本思想:若两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同,即 ϵAi=ϵBi
有效的假设检验,有一个重要前提是测试错误率均为泛化错误率的独立采样。但是,通常由于样本有限,不同轮次的训练集会有一定重叠,使测试错误率并不独立,会过高估计假设成立的概率。所以,采用5x2交叉验证
- McNemar检验
比较两个二分类算法的性能,使用正态分布
- Friedman检验
- Nemenyi后续检验

偏差与方差

偏差-方差分解(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。
泛化误差可分解为偏差、方差与噪声之和;
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差下界,即刻画了学习问题本身的难度。
也就是说,泛化性能是由学习算法的能力、数据的充分性、学习任务本身的难度共同决定。

猜你喜欢

转载自blog.csdn.net/xxx_puppy/article/details/71104823