西瓜书 2. 模型评估与选择

评估方法

留出法

直接将数据集D划分为两个互斥的集合,一个作为训练集S,另一个作为测试集T

  • 保持数据分布一致性 (例如: 分层采样)
  • 多次重复划分、重复进行实验评估后取均值作为结果 (例如: 100次随机划分)
  • 测试集不能太大、不能太小 (例如:1/5~1/3)
    • 训练集S太大,则测试集T太小,评估结果可能不够稳定准确
    • 测试集T太大,则训练集S太小,训练出的模型与用D训练出的模型相比可能有较大差别

交叉验证法

将数据集D划分为 k 个大小相似的互斥子集,每次用 k- 1 个子集的并集作为训练集,余下的那个子集作为测试集;获得 k 组训练 /测试集,进行 k 次训练和测试,最终返回这 k 个测试结果的均值

  • 为减小因样本划分不同而引入的差别,k 折交叉验证通常要随机使用不同的划分重复 p 次,最终的评估结果是这 p 次 k 折交叉验证结果的均值(例如10次10折交叉验证)
  • 交叉验证法本质上是在进行多次留出法,且每次都换不同的子集做测试集,最终让所有样本均至少做 1 次测试样本
  • 留一法:假定数据集D中包含 m 个样本,令 k= m
    • 留一法不受随机样本划分方式的影响
    • 留一法中被实际评估的模型与期望评估的用 D 训练出的模型很相似
    • 在数据集比较大时,训练成本过大

自助法

“自助采样” (bootstrap sampling),亦称“有放回采样”、“可重复采样”

  • 样本在 m 次采样中始终不被采到的概率是 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1m1)m,即通过自助采样,初始数据集 D 中约有 1 e = 36.8 \frac{1}{e}=36.8% e1=36.8的样本未出现在采样数据集 D’ 中
  • 将 D’ 用作训练集,D\ D’ 用作测试集;这样,实际评估的模型与期望评估的模型都使用 m 个训练样本,而我们仍有数据总量约1/3的、没在训练集中出现的样本用于测试
  • 自助法在数据集较小、难以有效划分训练/测试集时很有用
  • 自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差

验证集

交叉验证法操作起来较为复杂,实际中更多采用的是:

  • 先用留出法将数据集划分出训练集和测试集,
  • 然后再对训练集采用留出法划分出训练集和新 的测试集,称新的测试集为验证集,
  • 接着基于验证集的测试结果来调参选出最优参数配置方案,
  • 最后将验证集合并进训练集(训练集数据量够的话也可不合并),用选出的最优参数配置在合并后的训练集上重新训练,
  • 再用测试集来评估训练得到的模型的性能。

性能度量

真实情况预测为 + (positive)预测为 - (negative)
+TP(true positive)FN(false negative)
-FP(false positive)TN(true negative)
  • 查准率 (precision ):被学习器预测为正例的样例中有多大比例是真正例
    • P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
  • 查全率(recall):所有正例当中有多大比例被学习器预测为正例
    • R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
  • P 和 R 是一对矛盾的度量,一个高则另一个低

P-R曲线

  • 根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本
  • 按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的P、R。
  • 以查准率为纵轴、查全率为横轴作图,就得到了查准率- 查全率曲线,简称“P-R曲线”
    P-R 图
  • 学习机 A 的 P-R 曲线包住了 C,因此 A 的性能优于 C
  • 学习机 A 的 P-R 曲线下面积大于 B,因此 A 的性能优于 B
  • 学习机 A 的平衡点高于 B 和 C,因此 A 的性能优于 B 和 C
    • 平衡点(Break-Event Point,简称BEP)是“查准率=查全率”时的取值

F1度量

  • F1是基于查准率与查全率的调和平均: 1 F 1 = 1 2 ( 1 P + 1 R ) \frac{1}{F1}=\frac{1}{2}(\frac{1}{P}+\frac{1}{R}) F11=21(P1+R1)
  • F β F_{\beta} Fβ对查准率和查全率有不同的偏好: 1 F β = 1 1 + ( β ) 2 ( 1 P + ( β ) 2 R ) \frac{1}{F_{\beta}}=\frac{1}{1+(\beta)^2}(\frac{1}{P}+\frac{(\beta)^2}{R}) Fβ1=1+(β)21(P1+R(β)2)
    • β > 0 \beta> 0 β>0度量了查全率对查准率的相对重要性
    • β = 1 \beta=1 β=1时退化为标准的F1
    • β > 1 \beta>1 β>1时查全率有更大影响
    • β < 1 \beta<1 β<1时查准率有更大影响

ROC曲线

  • 真正例率(True Positive Rate):正例当中有多大比例被预测为正例
    • T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
  • 假正例率(False Positive Rate):反例当中有多大比例被预测为正例
    • F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP
  • 根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算 出TPR和FPR,就得到了“ROC曲线”
  • AUC:ROC 曲线下方的面积
  • 对角线对应于“随机猜测” 模型,而点(0,1)则对应于将所有正例排在所有反例之前的 “ 理想模型”
     ROC&AUC
  • 计算 AUC:
    计算 AUC
    计算 AUC

代价敏感错误率

  • 为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”

  • 二分类的代价矩阵中,若将第0类判别为第1类所造成的损失更大,则 c o s t 01 > c o s t 10 cost_{01}>cost_{10} cost01>cost10 ;损失程度相差越大,二者之间差值越大
    二分类代价矩阵

  • 代价敏感错误率:
    代价敏感错误率

  • 正例概率代价:
    正例概率代价

    • p:样例为正例的概率(一般用比例近似代替)
    • c o s t + − = c o s t − + cost_{+−} = cost_{−+ } cost+−=cost−+时,本公式可化简为 P ( + ) c o s t = p P(+)cost=p P(+)cost=p
  • 归一化代价:
    归一化代价

    • FPR是假正例率,FNR= 1 - TPR是假反例率
    • 公式推导见南瓜书
  • ROC曲线上每 一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR, FPR),则可相应计算出FNR,然后在代价平面上绘制 一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价
    代价曲线

比较检验

  • 两学习器比较
    • 交叉验证 t 检验 (基于成对 t 检验)
    • McNemar 检验 (基于列联表,卡方检验)
  • 多学习器比较
    • Friedman检验 (基于序值,F检验; 判断”是否都相同”)
    • Nemenyi 后续检验 (基于序值,进一步判断两两差别)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值