1.代价敏感错误率与代价函数
真实情况 | 预测正例 | 预测反例 |
---|---|---|
正例 | 0 | cost01 |
反例 | cost10 | 0 |
“代价敏感”错误率为
E(f;D;cost)=1m(∑xi∈D+II(f(xi≠yi))×cost01+∑xi∈D−II(f(xi)≠yi)×cost10)
在非均衡代价下,ROC曲线不能满足学习器的期望总体代价,而“代价曲线”则可达到该目的。横轴为正例概率代价:
P(+)cost=p×cost01p×cost01+(1−p)×cost10,
纵轴为归一化代价:
costnorm=FNR×p×cost01+FPR×(1−p)×cost10p×cost01+(1−p)×cost10
FNR为假阴性率,FPR为假阳性率。
2.比较检验
2.1 假设检验
假设检验中的“假设”是对于学习器泛化错误率分布的某种判断或者猜想。现实中我们并不知道泛化错误率,只能获知其测试错误率
ϵˇ
.泛化错误率与测试错误率未必相同。但可根据测试错误率估推出泛化错误率的分布。
对于泛化错误率为
ϵ
的学习器;假设有m个测试样本,测试错误率
ϵˇ
意味着在m个测试样本中恰有
ϵˇ×m
个被误分类。则得到错误率为
ϵˇ
的概率为
P(ϵˇ;ϵ)=(mϵˇ×m)ϵϵˇ×m(1−ϵ)m−ϵˇ×m
ϵˇ=ϵ 时P最大,且这符合二项分布
我们根据图表粗略估计ε0,比如这幅图当中ε0可取5,6,7都可以,然后求出总体概率α,我们把大多数样本分布的区间1-α称为置信区间,所以只要不超过ε0,即在置信度下就是符合条件的假设 ,否则被抛弃,即在α显著度下。
包含m个样本的测试集上,泛化错误率为的学习器被测得测试错误率为的概率:
很多时候我们并非仅做一次留出估计,而是通过多次留出法或是交叉验证法,得到k个测试错误率 ϵˇ1 、 ϵˇ2 、…..、 ϵˇk ,此时可以使用“t-检验”。
平均错误率 μ 和方差 σ2 为
μ=1k∑i=1k ϵˇi
σ2=1k−1∑i=1k(ϵˇi−μ)2
考虑到这k个测试错误率可看成泛化错误率 ϵ0 的独立采样,则变量
τt=k√(μ−ϵ0)σ
服从自由度为k-1的t分布。
对假设“ μ=ϵ0 ”和显著性 α 我们可计算出错误率均值为 ϵ0 的 1−α 概率内能观察到的最大错误率,即临界值。双边t验证的常见临界值。
2.2交叉验证t检验
对于学习器A、B,若我们使用k折交叉验证法得到各种的k组测试错误率。若两个学习器的性能相同,则他们使用相同的训练/测试集得到的测试错误率应相同,即
ϵAi
=
ϵBi
对每对结果求查
δi=ϵAi−ϵBi
;若两个学习器的性能相同,则差值均值应为零。此时再应用前面相同的分析,两个学习器显著度分析结果。
2.3 McNemar 检验
对于二分类问题学习器A和B:
如果假设两学习器性能相同,则应该有
e01=e10
,那么变量
|e01−e10|
应当服从正态分布。McNemar考虑变量:
τχ2=(|e01−e10|−1)2e01+e10
服从自由度为1的 χ2 分布,给定显著度 α ,即可用分析两个学习器的性能差别。
2.4 Friedman检验与 Nemenyi后续检验
- Friedman检验
多个数据集每个数据集对多个算法A、B、C、D的性能排序,求得服从自由度为k-1的 χ2 分布的变量:
τF=(N−1)τχ2N(k−1)−τχ2
检测是否所有算法的性能相同
2.Nemenyi后续检验
若算法的性能是不一样的,则需要进行后续检验来进一步区分各算法。常见的为Nemenyi后续检验。
Nemenyi检验计算平均序列值差别的临界值域:
CD=qαk(k+1)6N−−−−−−−√
2.5 偏差和方差
“偏差和方差分解”是分析学习器泛化能力的一种重要工具。
学习器的期望预测为:
f(x)¯¯¯¯¯¯¯=ED[f(x;D)]
不同训练集产生的方差为
var(x)=ED[(f(x;D)−f(x)¯¯¯¯¯¯¯)2]
偏差为
bias(x)2=(f(x)¯¯¯¯¯¯¯−y)2
于是泛化误差为
E(f;D)=var(x)+bias(x)2+ϵ2
偏差、方差、噪声的含义为:偏差表示学习器的期望预测与实际之间的偏离程度,表征学习器对数据的拟合能力;方差表示同样大小的训练集的变动导致学习性能的变化,即刻画了数据扰动所造成的影响;噪声表示当前任务下所能达到的期望泛化误差的下限。
偏差和方差是存在冲突的,在训练程度不足时,拟合程度不够,训练数据的扰动不大,偏差主导泛化错误率,称为欠拟合;训练加深后,拟合程度充足,但训练集的轻微扰动都会造成结果的显著波动,方差主导泛化错误率,称为过拟合。