比较检验是为了对机器学习器性能值进行评估的方法:
一般的我们都有F1-score值,ROC值
如果进行泛化比较,一般含有不同样本值、样本大小和重复测试都会造成最终性能度量值的不同。所以要寻求新的检验方法:
hypothesis test提供了,前提:测试集观察结果A如果优于B,则A的泛化性能在统计意义上是否也会优于B,以及这个结论的把握程度(置信度),性能度量指标为∈
一:假设检验(两种)
假设检验中的"假设"是对学习器错误率分布的某种判断或猜想,比如:
ϵ
\epsilon
ϵ=
ϵ
0
\epsilon_0
ϵ0;
实际上我们不知道泛化误差率,只有测试误差率,在我们认知中,两者接近的可能性比较大,相差很远的可能性比较小,可以根据测试误差错误率来推测泛化误差错误率;
实际上就是对于一个样本犯错误的概率。在一个样本个数为m,其中个样本进行误分类的的概率为:
P
(
ϵ
⌢
;
ϵ
)
P(\stackrel\frown{\epsilon}; \epsilon)
P(ϵ⌢;ϵ)=
(
m
ϵ
⌢
∗
m
)
\left( \begin{array}{c} m \\ \stackrel\frown{\epsilon} * m \end{array} \right)
(mϵ⌢∗m)
ϵ
ϵ
⌢
∗
m
{\epsilon^{\stackrel\frown{\epsilon}*m}}
ϵϵ⌢∗m
(
1
−
ϵ
)
m
−
ϵ
⌢
∗
m
{(1-\epsilon)^{m{-\stackrel\frown{\epsilon} * m}}}
(1−ϵ)m−ϵ⌢∗m
这个式子也表明在m个测试集上,泛化错误率为的学习器被测得错误率为
ϵ
⌢
\stackrel\frown{\epsilon}
ϵ⌢的概率
这样就给定了测试错误率;通过解
P
(
ϵ
⌢
;
ϵ
)
P(\stackrel\frown{\epsilon}; \epsilon)
P(ϵ⌢;ϵ),可知在
ϵ
=
ϵ
⌢
\epsilon=\stackrel\frown{\epsilon}
ϵ=ϵ⌢
时,取的最大。
增大时,减小,这符合二项分布。我们可以利用置信度进行检验,
在整个分布中,α点的左边为可接受的错误率,左边的错误率后的累加值是置信区间(confidence),即为1-α;
更一般的描述为:
ϵ
⌢
\stackrel\frown\epsilon
ϵ⌢=
m
a
x
ϵ
max\epsilon
maxϵ
s
.
t
.
∑
i
=
ϵ
0
×
m
+
1
m
s.t. \sum_{i=\epsilon_0×m+1}^m
s.t.∑i=ϵ0×m+1m
(
m
i
)
\left( \begin{array}{c} m \\ i \end{array} \right)
(mi)
ϵ
i
(
1
−
ϵ
)
m
−
i
\epsilon^i(1-\epsilon)^{m-i}
ϵi(1−ϵ)m−i
此时若测试错误率
ϵ
⌢
\stackrel\frown\epsilon
ϵ⌢小于临界值
ϵ
ˉ
\bar{\epsilon}
ϵˉ,在α的显著度下(即犯错误的概率),假设"
ϵ
⩽
ϵ
0
\epsilon\leqslant\epsilon_0
ϵ⩽ϵ0“不能被拒绝,否则该假设可被拒绝。
很多时候在操作的时候,我们重复多次留出法或是交叉验证法等进行多次的训练,这样我们可以得到多次的测试错误率,此时可以使用”
t
检
验
t检验
t检验",假定我们得到多个测试错误率,
ϵ
^
1
\hat\epsilon_1
ϵ^1、
ϵ
^
2
\hat\epsilon_2
ϵ^2、
ϵ
^
3
\hat\epsilon_3
ϵ^3、
ϵ
^
4
\hat\epsilon_4
ϵ^4…
ϵ
^
k
\hat\epsilon_k
ϵ^k。
变量
τ
t
\tau_t
τt=
k
(
μ
−
ϵ
0
)
σ
\frac{\sqrt{k}(\mu-\epsilon_0)}{\sigma}
σk(μ−ϵ0)服从自由度为k-1的t分布。
对于假设"
μ
\mu
μ=
ϵ
0
\epsilon_0
ϵ0“和显著度”
α
\alpha
α",可以计算出当测试错误率均值"
ϵ
0
\epsilon_0
ϵ0"时,在1-
α
\alpha
α概率内能观测到的最大错误率,即临界值,所以我们可以知道均值
μ
\mu
μ。
我们考虑双边检验(two_tailed)假设(因为最后的结果值可能为负数),即两边的
α
\alpha
α都是显著度,在置信区间之外,假定阴影范围在(-
∞
\infty
∞,-
t
α
/
2
t_{\alpha/2}
tα/2]和[
t
α
/
2
t_{\alpha/2}
tα/2,
∞
\infty
∞).若平均错误率
μ
\mu
μ与
ϵ
0
\epsilon_0
ϵ0之差|
μ
\mu
μ-
ϵ
0
\epsilon_0
ϵ0|位于临界值范围内,则不能拒绝假设
μ
=
ϵ
0
\mu=\epsilon_0
μ=ϵ0,置信度为1-
α
\alpha
α;
α
\alpha
α常用取值为0.05和0.1。
这个双边假设检验,是针对单个学习器和理论差别的对比。
交叉验证t检验:
对两个学习器,使用k折交叉验证得到的测试错误率分别为 ϵ 1 A {\epsilon_1}^A ϵ1A, ϵ 2 A {\epsilon_2}^A ϵ2A, ϵ 3 A {\epsilon_3}^A ϵ3A,…, ϵ k A {\epsilon_k}^A ϵkA和 ϵ 1 B {\epsilon_1}^B ϵ1B, ϵ 2 B {\epsilon_2}^B ϵ2B, ϵ 3 i B {\epsilon_3}^iB ϵ3iB,…, ϵ k B {\epsilon_k}^B ϵkB,其中 ϵ i A {\epsilon_i}^A ϵiA和 ϵ i B {\epsilon_i}^B ϵiB是在相同的第i折训练/测试集上得到的结果,则可以用k折交叉验证"成对t检验"(paired t-tests)来进行比较检验。(以上表述的基本思想,若两个机器学习的性能相同,则它们使用的训练集/测试集得到的测试错误率应相同,即 ϵ i A {\epsilon_i}^A ϵiA= ϵ i B {\epsilon_i}^B ϵiB)
对这"两个学习器A与B性能相同"这个假设做t检验,计算出差值的均值
μ
\mu
μ和方差
σ
2
\sigma^2
σ2
在k折交叉验证产生的k对测试测试错误率:先对每对结果求差,用两个学习器之间测试错误率之差,
△
i
\vartriangle_i
△i=
△
ϵ
i
A
\vartriangle\epsilon_i^A
△ϵiA-
△
ϵ
i
B
\vartriangle\epsilon_i^B
△ϵiB,t检验就是对两个学习器的差值做假设t检验,在显著度
α
\alpha
α下,若变量
τ
t
\tau_t
τt=|
k
μ
σ
\frac{\sqrt{k}\mu}{\sigma}
σkμ|小于临界值,则假设不能被拒绝;否则认为两个学习器有绝对差异,且平均值最小的学习器性能最优。
问题:
有效检验的前提是:测试误差率为泛化误差率的独立采样,但一般样本有限,使用交叉验证时,不同轮次会有一定的重叠,这就使得测试错误率并不独立,会导致过高的估计假设成立的概率
解决方法:
采用"5*2交叉检验":每次用2折交叉检验的平均值,来作为错误率的平均:
μ
\mu
μ=0.5(
△
i
1
+
△
i
2
\vartriangle_i^1+\vartriangle_i^2
△i1+△i2),每2折试验的结果都计算出其方差
σ
i
2
\sigma_i^2
σi2=(
△
i
1
−
△
i
1
+
△
i
2
2
2
{\vartriangle_i^1-\frac{\vartriangle_i^1+\vartriangle_i^2}{2}}^2
△i1−2△i1+△i22)+(
△
i
2
−
△
i
1
+
△
i
2
2
2
{\vartriangle_i^2-\frac{\vartriangle_i^1+\vartriangle_i^2}{2}}^2
△i2−2△i1+△i22);
变量:
τ
t
\tau_t
τt=
μ
0.2
∑
i
=
1
5
σ
i
2
\frac{\mu}{\sqrt{0.2\sum_{i=1}^5{\sigma_i^2}}}
0.2∑i=15σi2μ服从自由度为5的
t
分
布
t分布
t分布