使用某种实验评估方法测得学习器的某个性能度量结果,之后对结果进行比较,但比较并非直接比较性能度量的值,性能比较涉及几个重要因素:
(默认错误率为性能度量,符合为 ϵ \epsilon ϵ)
统计假设检验为性能比较提供依据,2种基本假设检验如下:
对单个学习器泛化性能比较,使用了二项检验、t检验方法。
假设是指对学习器泛化错误率分布的某种判断或猜想。
实际中不清楚学习器的泛化错误率,只能得到其测试错误率 ϵ ^ \hat {\epsilon} ϵ^,二者未必相同,但接近可能性较大,故可根据测试错误率估推泛化错误率的分布。
泛化错误率 ϵ \epsilon ϵ:学习器在1个样本上犯错的概率= ϵ \epsilon ϵ。
测试错误率 ϵ ^ \hat \epsilon ϵ^:在m个测试样本中恰有 ( ϵ ^ ∗ m ) (\hat\epsilon* m) (ϵ^∗m)个被误分类。
若测试样本从样本总体分布中独立采样获得,而泛化错误率
ϵ
\epsilon
ϵ的学习器将其中m’个样本误分类、其余样本全都分类正确的概率是**
ϵ
m
′
(
1
−
ϵ
m
−
m
′
)
\epsilon ^{m^{'}}(1- \epsilon ^{m-m^{'}})
ϵm′(1−ϵm−m′)**;则估算出其恰将
ϵ
^
∗
m
\hat \epsilon * m
ϵ^∗m个样本全部误分类的概率如下所示,也表示包含m个样本的测试集上,泛化错误率为
ϵ
\epsilon
ϵ的学习器被测得测试错误率
ϵ
^
\hat { \epsilon }
ϵ^的概率:
P
(
ϵ
^
;
ϵ
)
=
(
m
ϵ
^
∗
m
)
ϵ
ϵ
^
∗
m
(
1
−
ϵ
)
m
−
ϵ
^
∗
m
(
2.4
−
1
)
P(\hat {\epsilon};\epsilon)=\binom{m}{\hat {\epsilon}*m}\epsilon ^{\hat {\epsilon}*m} (1-\epsilon)^{m-\hat{ \epsilon }*m } \qquad (2.4-1)
P(ϵ^;ϵ)=(ϵ^∗mm)ϵϵ^∗m(1−ϵ)m−ϵ^∗m(2.4−1)
给定测试错误率,则解偏导数得到, P ( ϵ ^ ; ϵ ) P(\hat {\epsilon};\epsilon) P(ϵ^;ϵ)在 ϵ = ϵ ^ {\epsilon}=\hat \epsilon ϵ=ϵ^时最大, ϵ 到 ϵ ^ {\epsilon}到\hat \epsilon ϵ到ϵ^距离增大时P减小,符合二项分布。
补充:
使用二项检验,考虑假设”
ϵ
≤
ϵ
0
{\epsilon} \le \epsilon_{0}
ϵ≤ϵ0“,则在
1
−
α
1-\alpha
1−α的概率内所能观测到的最大错误率如下:
ϵ
‾
=
m
a
x
ϵ
s
.
t
.
∑
i
=
ϵ
0
∗
m
+
1
m
(
m
i
)
ϵ
i
(
1
−
ϵ
)
m
−
i
<
α
(
2.4
−
2
)
\overline \epsilon = max\quad \epsilon \qquad s.t. \sum_{i=\epsilon _0 *m+1}^{m} \binom{m}{i} \epsilon ^i {(1-\epsilon)}^{m-i}< \alpha \qquad (2.4-2)
ϵ=maxϵs.t.i=ϵ0∗m+1∑m(im)ϵi(1−ϵ)m−i<α(2.4−2)
此时若
测试错误率
ϵ
^
<
临界值
ϵ
‾
测试错误率\hat {\epsilon} < 临界值 \overline \epsilon
测试错误率ϵ^<临界值ϵ,则根据二项检验可得出结论:在
α
\alpha
α的显著度下,假设”
ϵ
≤
ϵ
0
{\epsilon} \le \epsilon_{0}
ϵ≤ϵ0“不能被拒绝,即能以
1
−
α
1-\alpha
1−α的置信度认为,学习器的泛化错误率不大于
ϵ
0
\epsilon_{0}
ϵ0;否则该假设可被拒绝。
一般是多次重复留出法或交叉验证法等进行多次训练/测试,这会得到多个测试错误率,使用“t检验”。
假定得到了k个测试错误率,
ϵ
^
1
,
ϵ
^
2
,
.
.
.
,
ϵ
^
k
{\hat \epsilon}_1,{\hat \epsilon}_2,...,{\hat \epsilon}_k
ϵ^1,ϵ^2,...,ϵ^k,从而引入平均测试错误率
μ
\mu
μ和方差
σ
2
\sigma^2
σ2,如下:
μ
=
1
k
∑
i
=
1
k
ϵ
^
i
(
2.4
−
3
)
σ
2
=
1
k
−
1
∑
i
=
1
k
(
ϵ
^
i
−
μ
)
2
(
2.4
−
4
)
\mu = \frac{1}{k} \sum_{i=1}^{k} {\hat \epsilon }_i \qquad (2.4-3)\\ \sigma ^2 = \frac{1}{k-1} \sum_{i=1}^{k}({\hat \epsilon }_i-\mu)^2 \qquad (2.4-4)
μ=k1i=1∑kϵ^i(2.4−3)σ2=k−11i=1∑k(ϵ^i−μ)2(2.4−4)
考虑到k个测试错误率可看作泛化错误率
ϵ
0
\epsilon_0
ϵ0的独立采样,则变量
τ
t
=
k
(
μ
−
ϵ
0
)
σ
(
2.4
−
5
)
\tau_t=\frac{\sqrt{k}(\mu -\epsilon _0) }{\sigma} \qquad (2.4-5)
τt=σk(μ−ϵ0)(2.4−5)
服从自由度为k-1的t分布。
对不同学习器性能进行比较。
对学习器A和B,使用k折交叉验证法分别2得到测试错误率 ϵ 1 A , . . . , ϵ k A 和 ϵ 1 B , . . . , ϵ k A B \epsilon_1^A,...,\epsilon_k^A和\epsilon_1^B,...,\epsilon_k^AB ϵ1A,...,ϵkA和ϵ1B,...,ϵkAB,其中 ϵ i A 和 ϵ i B \epsilon_i^A和\epsilon_i^B ϵiA和ϵiB是在相同第i折训练/测试集上得到的结果,可用k折交叉验证“成对t检验”。
思想:若2个学习器的性能相同,则使用相同的训练集/测试集得到的测试错误率相同,即** ϵ i A = ϵ i B \epsilon_i^A=\epsilon_i^B ϵiA=ϵiB**。
先对每队结果求差,即
Δ
i
=
ϵ
i
A
−
ϵ
i
B
\Delta _i=\epsilon_i^A-\epsilon_i^B
Δi=ϵiA−ϵiB;若2个学习器性能相同,则差值均值=0.因此,据差值
Δ
1
,
.
.
.
,
Δ
k
\Delta_1,...,\Delta_k
Δ1,...,Δk来对“学习器A和B性能相同”这个假设做t检验,得到均值
μ
\mu
μ和方差
σ
2
\sigma^2
σ2,在显著度
α
\alpha
α下,若变量
τ
t
=
∣
k
μ
σ
∣
(
2.4
−
6
)
\tau_t=\left |\frac{\sqrt{k}\mu }{\sigma} \right | \qquad (2.4-6)
τt=∣
∣σkμ∣
∣(2.4−6)
小于临界值
t
α
/
2
,
k
−
1
t_{\alpha /2,k-1}
tα/2,k−1,则假设不能被拒绝,认为学习器A和B性能没有显著差异;否则存在显著差异,且平均错误率较小的那个学习器性能较优。
t α / 2 , k − 1 t_{\alpha /2,k-1} tα/2,k−1是自由度k-1的t分布上尾部累积分布为 α / 2 \alpha/2 α/2的临界值。
假设检验有效的1个重要前提是测试错误率均为泛化错误率的独立采样。
然而实际由于样本有限,在使用交叉验证等实验估计方法时,不同轮次的训练集会有一定程度上的重叠,使得测试错误率实际上并不独立,会导致过高估计假设成立的概率,为缓解这一问题,可采用“5*2交叉验证法”,即做5次2折交叉验证,每次2折交叉验证之前随机将数据打乱,使得5次交叉验证中的数据划分不重复。
对于二分类问题、使用留出法,不同学习器的性能比较。
就二分类问题,使用留出法时,可获得学习器A和B的测试错误率且得到分类结果的差别,即都正确、都错误、1对1错,“列联表”如下:
算法A | ||
---|---|---|
算法B | 正确 | 错误 |
正确 | e 00 e_{00} e00 | e 01 e_{01} e01 |
错误 | e 10 e_{10} e10 | e 11 e_{11} e11 |
若假设学习器A和B性能相同,则应有 e 01 = e 10 e_{01}=e_{10} e01=e10,其变量 ∣ e 01 − e 10 ∣ |e_{01}-e_{10}| ∣e01−e10∣应服从正态分布,且均值为1,以及其他衍生而出的变量服从另外一些分布。当变量满足条件,则假设成立,即A和B性能没有显著差异,否则两者性能有显著差异,且平均错误率小的学习器性能更优。
对于多个数据集,多个学习器进行性能比较。
内容
当有多个学习器参与比较时,
案例
用 D 1 、 D 2 、 D 3 、 D 4 D_1、D_2、D_3、D_4 D1、D2、D3、D44个数据集对算法 A 、 B 、 C A、B、C A、B、C比较。
使用留出法或交叉验证法得到每个算法在每个数据集上的测试结果。
在每个数据集上根据测试性能由好到坏排序,并赋予序值1、2…;若算法的测试性能相同,则平分序值,如:
数据集 | 算法A | 算法B | 算法C |
---|---|---|---|
D 1 D_1 D1 | 1 | 2 | 3 |
D 2 D_2 D2 | 1 | 2.5 | 2.5 |
D 3 D_3 D3 | 1 | 2 | 3 |
D 4 D_4 D4 | 1 | 2 | 3 |
平均序值 | 1 | 2.125 | 2.875 |
使用Friedman检验来判断算法是否性能相同。若相同,则它们平均序值应当相同。如假定在N个数据集上比较k个算法,令 r i r_i ri表示第i个算法的平均序值,先暂不讨论平分序值的情况,则 r i r_i ri服从正态分布,其衍生变量也服从卡方分布。
上述“原始Friedman检验”过于保守,现使用新的衍生变量,其服从F分布。
若“所有算法性能相同”的假设被拒绝,则算法性能显著不同,此时用“后续验证”来进一步区分各算法,常用有“Nemenyi后续检验”。
Nemenyi后续检验计算出平均序值差别的临界值域 C D CD CD。若2个算法的平均序值之差超过临界值域 C D CD CD,则以相应的置信度拒绝“2个算法性能相同”这一假设。
上述检验可以直观使用Friedman检验图显示。