机器学习中的模型评估与选择

转自:[香草_冰激凌](https://www.jianshu.com/p/d01992f6aaf0)

错误率(error rate): 分类错误样本数占样本总数的比例, E=a/m
精度(accuracy):= 1 - 错误率, 1-a/m

误差:学习器实际预测输入 VS 样本真实输出
训练误差(training error)/经验误差(empirical error):在训练集上的误差
泛化误差:在新样本上的误差


过拟合(overfitting)VS 欠拟合(underfitting)

过拟合是无法避免的 只能缓解或减小其风险


评估方法

混淆矩阵(confusion matrix)

查准率 P: P = TP/(TP+FP) (选出的瓜中 好瓜比例好 有把握才下手 会漏掉一些好瓜)
查全率 R: R = TP(TP+FN) (好瓜尽可能多的选出 选上全部西瓜 查准率低)
二者大部分时是矛盾的

根据学习器的预测结果排序,“最可能” -> “最不可能”,按此顺序逐个把样本作为正例预测,得出P-R图



若曲线被完全“包住”,则性能优 e.g. A性能优于C
若交叉,则难以判断(如A与B)。可以考虑特定点下比较 或比较曲线面积。

平衡点(Break-Even Point) BEP: 查准率 = 查全率 (A is better than B)
F1度量: F1 = 2*P*R/(P+R) = 2*TP/(样例总数+TP-TN)
F_β:F1度量的一般形式,表达对P和R的不同偏好 F_β = (1+β2)*P*R/(β2*P)+R, 其中 β>0
β<1: 查准率影响大;β=1: 与F1相同;β>1: 查全率影响大

宏查准率/宏查全率/宏F1 (macro-XX): 先计算出各混淆矩阵对应的P,R,再平均
微查准率/微查全率/微F1 (micro-XX):先对混淆矩阵各元素平均,再公式计算P R F1

ROC (Receiver Operating Characteristics) 曲线:纵轴 真正例率 TPR = TP/(TP+FN); 横轴 假正例率 FPR = FP/(TN+FP)
AUC (Area Under ROC Curve): ROC曲线下的面积

非均等代价 (unequal cost):权衡不同类型错误造成的不同损失
以二分类任务为例,代价矩阵为:


在非均等代价下,ROC曲线不能直接反应出期望的总体代价,需要 代价曲线
横轴为[0,1]的正例概率代价 (p为样例为正的概率)

纵轴为[0,1]的归一化代价

ROC上每一点 计算FNR 绘制(0, FPR) - (1,FNR)的线段 取所有线段的下届 围成的面积即为学习器的期望总体代价


Motivation:希望比较不同学习器的泛化性能

  • 测试集性能≠泛化性能
  • 测试性能 与 测试集本身 相关性大
  • 机器学习算法本身有一定的随机性

So we propose:
统计假设检验:基于假设检验结果,若测试集上 A 优于 B, 则A的泛化性能是否在统计意义上优于B, 及这个结论的把握有多大。
假设:对学习器 泛化错误率(性能)分布的某种判断与猜想

假设检验

偏差(bias):期望输出与真实标记的差别 — 学习算法本身的拟合能力
方差:同样大小训练集的变动导致的学习性能变化 — 数据扰动影响
噪声:能达到的期望泛化误差的下届 — 学习问题本身的难度

泛化误差可分解为 偏差、方差与噪声之和
由学习算法的能力、数据的充分性、学习任务本身的难度 共同决定

偏差-方差窘境(bias-variance dilemma):

猜你喜欢

转载自blog.csdn.net/taolusi/article/details/81297131