机器学习01-模型评估与选择
1、经验误差与过拟合
错误率 E = a / m E=a/m E=a/m=样本分类错误/样本总数
精度=1-错误率
在训练集上的误差称为训练误差或经验误差
新样本上的误差称为泛化误差
2、评估方法
测试集->测试误差 作为泛化误差的近似
测试集应尽可能与训练集互斥
产生训练集S和测试集T
2.1、留出法
直接将数据集 D D D分为两个互斥的集合,训练集 S S S,测试集 T T T,正反例按照相同的比例
缺陷:如 T T T较小,评估结果会不够准确;如 T T T较大, S S S和 D D D的差距会变大,被评估的模型与用 D D D训练出的模型可能有较大差别,降低了评估结果的保真性
2.2、交叉验证法
将 D D D划分为 k k k个大小相同的互斥子集,每次用 k k k-1各子集并集作为训练集,余下的子集作为测试集,进行 k k k次训练和测试,返回 k k k次测试结果的均值
交叉验证评估结果的稳定性和保真性很大程度上取决于 k k k的取值,故称为“ k k k折交叉验证”,通常 k k k取10
为减少样本划分不同引入的差别, k k k折交叉验证随机使用不同的划分重复 p p p次,最终返回均值,称为“ p p p次 k k k折交叉验证”
如令 k k k= m m m个样本,则称为留一法,不受随机样本划分的影响,训练出的模型更接近于期望的 D D D训练出的模型;但数据量很大时,计算开销过大
2.3、自助法
解决实际评估的模型所使用的训练集小于 D D D带来的估计偏差
自助采样:每次从 D D D取一个样本放入 D ′ D' D′并放回,有一部分样本多次出现,另一部分不出现,不被采样到的概率为
则 D ′ D' D′作为训练集, D − D ′ D-D' D−D′作为测试集
优点:在数据集较小,难以划分训练、测试集时很有用
缺点:改变了初始数据集的分布,引入估计偏差
在数据量足够时,留出法和交叉验证法更常用
2.4、调参和最终模型
在进行模型评估和选择时,除了要对算法进行选择,还要对算法参数进行设定
常用做法:对每个参数选定一个范围和变化步长,在候选值中产生选定值
由于通常训练集小于 D D D,在使用训练集选定算法和参数后,应用数据集D重新训练模型,此为最终模型
3、性能度量performance measure
回归中常用的性能度量为均方误差
分类任务
3.1、错误率和精度
错误率为分类错误的样本数占样本总数的比例
精度为分类正确的样本数占样本总数的比例
更一般,对于概率密度函数 p ( ⋅ ) p(·) p(⋅)
3.2、查准率precision,查全率recall和F1
查准率 P P P,预测的正例中的真正例
查全率 R R R,真实正例中预测出的正例
两者矛盾
查准率高时,查全率低,只挑选最有把握的正例预测,则预测的正例中真正正例较多,但漏掉了很多正例
查全率高时,查准率低,把所有都判为正例,则查全率为1,查准率较低
P − R P-R P−R图
将预测结果按照正例的比例进行排序,前面为可能性高的样本,后面越来越低,按顺序把样本当作正例,可计算出此时的查全率和查准率,画出 P − R P-R P−R图
A曲线完全包裹C曲线,认定学习器A的性能优于C;如有交叉如AB,则不能轻易断言两者优劣
平衡点BEP,Break-Event Point为查全率=查准率时的取值,则可比较A>B>C
由于BEP过于简化,更常用F1度量
F1基于调和平均
当对于查准率和查全率重视程度不同时,如疾病判断中查全率更重要,此时用 F β F_\beta Fβ
β \beta β>0, β \beta β=1时为标准F1, β \beta β>1是查全率有更大影响, β \beta β<1时查准率有更大影响
在n个二分类混淆矩阵上综合考察查准率和查全率
宏macro ,每个混淆矩阵上计算出查准率和查全率再求平均
微micro,由TP,FP,TN,FN平均值计算
3.3、ROC与AUC
ROC 受试者工作特征 Receiver Operating Characteristic
与P-R曲线类似,但横轴为”假正例率“FPR 真实反例中被预测为正例的比率
纵轴为”真正例率“ TPR ,等于召回率R,真实正例中预测出的正例
如何利用有限个测试样例绘制ROC图
给定 m + m^+ m+=TP+FN个正例和 m − m^- m−=TN+FP个反例,根据学习器预测结果对样例进行排序
- 把分类阈值设到最大,则全为反例,TPR和FPR均为0,对应点(0,0)
- 依次将每个样例划分为正例
- 前一个标记点为 ( x , y ) (x,y) (x,y)
- 若当前样例为真正例,则TP=TP+1,新坐标点为 ( x , y + 1 / m + ) (x,y+1/m^+) (x,y+1/m+)
- 若当前样例为假正例,则FP=FP+1,新坐标点为 ( x + 1 / m − , y ) (x+1/m^-,y) (x+1/m−,y)
- 然后用线段连接
如何比较优劣
- 与P-R图类似,包裹曲线由于被包裹曲线
- 如两个学习器的ROC曲线交叉,则难以断言,合理的判据是比较ROC曲线下的面积AUC,Area Under ROC Curve
特性
-
排序损失为 l r a n k l_{rank} lrank,对每一对正反例,若正例的预测值小于反例,即排序在反例之后,记一个罚分,此时曲线沿x轴增加,AUC变小;若相等,则记0.5个罚分
-
l r a n k l_{rank} lrank为ROC曲线之上的面积
-
若一个正例在ROC曲线上对应标记点的坐标为 ( x , y ) (x,y) (x,y),则 x x x恰是排序在其之前的反例所占的比例,即假正例率
3.4、代价敏感错误率与代价曲线
实际生活中不同类型的错误所造成的后果不同,如医疗误诊。为权衡不同类型错误所造成的不同损失,可为错误赋予”非均等代价“ unequal cost
代价矩阵,重要的是 c o s t 01 cost_{01} cost01和 c o s t 10 cost_{10} cost10的比值而不是绝对值
正例预估错误的代价为 c o s t 01 cost_{01} cost01,反例预估错误的代价为 c o s t 10 cost_{10} cost10,代价敏感错误率为
非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,此时使用代价曲线 cost curve
横轴为取值[0,1]的正例概率代价, p p p为样例为正例的概率
纵轴为取值为[0,1]的归一化代价,FPR为假正例率,真实反例中被预测为正例的比率,
FNR=1-TPR假反例率,真实正例中被预测为反例的比率
绘制
- ROC曲线上每一点对应了代价平面上的一条线段
- 设ROC曲线上点的坐标为(TPR,FPR)
- 在代价平面上连一条(0,FPR)到(1,FNR)线段
- 连接完所有线段后,取所有线段的下界,围成的面积为在所有条件下学习器的期望总体代价
4、比较检验
测得性能度量后如何比较
若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上由于B,以及这个结论的把握有多大
4.1、假设检验
当以错误率 ϵ \epsilon ϵ为性能度量
“假设”是对学习器泛化错误率分布的某种判断或猜想,但泛化错误率不能直接获得,只能获得测试错误率 ϵ ^ \hat{\epsilon} ϵ^,根据测试错误率推出泛化错误率的分布
泛化错误率为学习器在一个样本上犯错的概率 ϵ \epsilon ϵ
测试错误率为在 m m m个测试样本中恰有 ϵ ^ ∗ m \hat{\epsilon}*m ϵ^∗m个样本被误分类的概率
如将
m
′
m'
m′个样本误分类,泛化错误率为
ϵ
\epsilon
ϵ的学习器被测得测试错误率为
ϵ
^
\hat{\epsilon}
ϵ^的概率公式为
给定 ϵ ^ \hat{\epsilon} ϵ^,对上式求 ϵ \epsilon ϵ的偏导数,得到 P P P在 ϵ \epsilon ϵ= ϵ ^ \hat{\epsilon} ϵ^时最大, ∣ ϵ − ϵ ^ ∣ |\epsilon-\hat{\epsilon}| ∣ϵ−ϵ^∣增大时 P P P减小,符合二项分布
如图,若 ϵ \epsilon ϵ=0.3,则10个样本中测得3个被误分类的概率最大
使用二项检验考虑假设 ϵ ⩽ ϵ 0 \epsilon\leqslant\epsilon_0 ϵ⩽ϵ0,则在 1 − α 1-\alpha 1−α的置信度内能观察到的最大错误率为
ϵ ‾ \overline{\epsilon} ϵ得到后如小于 ϵ 0 \epsilon_0 ϵ0,则在 α \alpha α的显著度内,即以 1 − α 1-\alpha 1−α的置信度,确信假设成立
当使用多次重复留出法或交叉验证法进行训练、测试,会得到多个测试错误率,此时使用t检验
假设得到k个测试错误率,则
考虑到k个测试错误率可看作泛化错误率 ϵ 0 \epsilon_0 ϵ0的独立采样,则变量 τ t \tau_t τt服从自由度为 k − 1 k-1 k−1的 t t t分布
对假设“ μ = ϵ 0 \mu=\epsilon_0 μ=ϵ0",可计算出测试错误率均值为 ϵ 0 \epsilon_0 ϵ0时,在 1 − α 1-\alpha 1−α概率内能观察到的最大错误率,即临界值。
若平均错误率 μ \mu μ与 ϵ 0 \epsilon_0 ϵ0之差 ∣ μ − ϵ 0 ∣ |\mu-\epsilon_0| ∣μ−ϵ0∣位于临界值范围 [ t − α / 2 , t α / 2 ] [t_{-\alpha/2},t_{\alpha/2}] [t−α/2,tα/2]内,则假设在置信度1- α \alpha α内成立
4.2、交叉验证t检验
如检验两个学习器效果是否相同,使用k折交叉验证法得到k对错误率,看其差值是否在置信度内。
4.3、McNemar检验
对二分类问题
如量学习器性能相同,则应有 e 01 = e 10 e_{01}=e_{10} e01=e10,
符合自由度为1的 χ 2 \chi^2 χ2分布,即标准正态分布的平方。
4.4、Friedman检验与Nemenyi后续检验
一组数据集上进行多个算法的比较
-
对每个数据集上的算法进行评分,并求平均
-
没看懂
4.5、偏差与方差
对测试样本 x x x,另 y D y_D yD为 x x x在数据集中的标记, y y y为 x x x的真实标记,有可能出现噪声使 y D ≠ y y_D\neq y yD=y, f ( x ; D ) f(x;D) f(x;D)为模型 f f f的预测输出
学习算法的期望预测为
使用样本数相同的不同训练集产生的方差为
噪声为
期望输出与真实标记的差别称为偏差bias,
算法的期望返泛化误差为
拆解为
于是
即泛化误差可分解为偏差,方差,噪声之和
偏差,度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
方差,度量了同样大小的训练集变动所导致的学习性能的变化,即刻画可数据扰动所造成的影响
噪声,表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度
一般,偏差和方差有冲突,称为偏差-方差窘境bias-variance dilemma。
训练不足时,拟合能力不够强,则训练数据的扰动较小,此时偏差主导了泛化错误率。
训练加深,拟合能力加强,训练数据发生的扰动会被学习器学到,方差逐渐主导了泛化错误率,若训练数据自身的非全局特性被学习器学到,则会发生过拟合。
了学习算法本身的拟合能力
**方差,**度量了同样大小的训练集变动所导致的学习性能的变化,即刻画可数据扰动所造成的影响
噪声,表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度
一般,偏差和方差有冲突,称为偏差-方差窘境bias-variance dilemma。
训练不足时,拟合能力不够强,则训练数据的扰动较小,此时偏差主导了泛化错误率。
训练加深,拟合能力加强,训练数据发生的扰动会被学习器学到,方差逐渐主导了泛化错误率,若训练数据自身的非全局特性被学习器学到,则会发生过拟合。