完整教程:机器学习的数学基础:假设检验
假设检验
默认以错误率为性能度量
,错误率由下式给出:
E ( f , D ) = ∫ x ∼ D I I ( f ( x ) ≠ y ) p ( x ) d x E(f,\mathcal{D})=\int_{\boldsymbol{x}\sim \mathcal{D}}\mathbb{II}(f(\boldsymbol{x})\ne y )p(\boldsymbol{x})\text{d}\boldsymbol{x}E(f,D)=∫x∼DII(f(x)=y)p(x)dx
假设检验中的"假设"是对学习泛化错误率
分布的某种判断或者猜想,例如:
ε = ε 0 \varepsilon=\varepsilon_0ε=ε0
其中,我们ε 0 \varepsilon_0ε0已知的。就是为测试错误率
对单个学习器泛化能力的假设检验
对于一个样本上的留出法得到的错误率ε 0 \varepsilon_0ε0,这意味着m mm个测试样本中,恰好有m × ε 0 m\times \varepsilon_0m×ε0个错误分类。假设测试样本是从总体中独立同分布采样获得
,那么泛化错误率为ε \varepsilonε的学习器,将其中m × ε 0 m\times \varepsilon_0m×ε0个分类错误,其余分类正确的概率为:
单次留出法
P ( ε ; ε 0 ) = ( m m × ε 0 ) ε ε 0 × m ( 1 − ε ) m − ε 0 × m P(\varepsilon;\varepsilon_0)=\binom{m}{m\times \varepsilon_0}\varepsilon^{\varepsilon_0\times m}(1-\varepsilon)^{m-\varepsilon_0 \times m}P(ε;ε0)=(m×ε0m)εε0×m(1−ε)m−ε0×m
所以由极值条件得到:
∂ P ∂ ε = 0 \frac{\partial P}{\partial \varepsilon}=0∂ε∂P=0
然后选取一个显著性水平α \alphaα,对于ε ∼ B ( m , ε 0 ) \varepsilon \sim B(m,\varepsilon_0)ε∼B(m,ε0),我们假设ε ≤ ε ′ \varepsilon\leq\varepsilon^{\prime}ε≤ε′,满足:
$$
\overline{\varepsilon}=\min \varepsilon
\mathbf{s.t.}:
\sum_{i=\varepsilon^{\prime}\times m+1}{m}\binom{m}{i}\varepsilon{i}(1-\varepsilon)^{m-i}
$$
若此时ε ≤ ε ‾ \varepsilon \leq \overline{\varepsilon}ε≤ε则有1 − α 1-\alpha1−α的概率认为,学习器的泛化错误率不大于ε ′ \varepsilon^{\prime}ε′。
多次留出法或交叉验证法
类似的,假定大家得到了k kk个测试错误率,ε ^ 1 \hat{\varepsilon}_1ε^1,ε ^ 2 \hat{\varepsilon}_2ε^2,⋯ \cdots⋯,ε ^ k \hat{\varepsilon}_kε^k,则平均测试错误率μ \muμ和方差σ 2 \sigma^2σ2分别为:
μ = 1 k ∑ i = 1 k ε ^ i \mu=\frac{1}{k}\sum_{i=1}^{k}\hat{\varepsilon}_iμ=k1i=1∑kε^i
σ 2 = 1 k − 1 ∑ i = 1 k ( ε ^ i − μ ) 2 \sigma^2=\frac{1}{k-1}\sum_{i=1}^{k}(\hat{\varepsilon}_i-\mu)^2σ2=k−11i=1∑k(ε^i−μ)2
其中有假设:
每个测试错误率ε ^ 1 , ε ^ 2 , … , ε ^ k \hat{\varepsilon}_1, \hat{\varepsilon}_2, \ldots, \hat{\varepsilon}_kε^1,ε^2,…,ε^k 必须是独立同分布(independent and identically distributed, i.i.d.)的随机变量。且样本量足够大或者它们服从正态分布。
则:
τ t = ( μ − ε 0 ) σ k ∼ t ( k − 1 ) \tau_t=\frac{(\mu-\varepsilon_0)}{\frac{\sigma}{\sqrt{k}}}\sim t(k-1)τt=kσ(μ−ε0)∼t(k−1)
对两个学习器泛化能力的假设检验
对于两个学习器A AA和B BB,使用k kk折交叉验证法得到:ε 1 A \varepsilon_{1}^Aε1A,ε 2 A \varepsilon_{2}^Aε2A,… \dots…ε k A \varepsilon_{k}^AεkA和ε 1 B \varepsilon_{1}^Bε1B,ε 2 B \varepsilon_{2}^Bε2B,… \dots…ε k B \varepsilon_{k}^BεkB
我们是对
ε i A = ε i B \varepsilon_{i}^A=\varepsilon_{i}^BεiA=εiB
进行假设,取独立变量:
Δ i = ε i A − ε i B \Delta_i=\varepsilon_{i}^A-\varepsilon_{i}^BΔi=εiA−εiB
对样本均值进行标准化得到:
τ t = μ σ k ∼ t ( k − 1 ) \tau_t=\frac{\mu}{\frac{\sigma}{\sqrt{k}}}\sim t(k-1)τt=kσμ∼t(k−1)
5×2交叉验证
其统计量为:
τ t = μ 0.2 ∑ i = 1 5 σ i 2 ∼ t ( 4 ) \tau_t=\frac{\mu}{\sqrt{0.2\sum\limits_{i=1}^{5}}\sigma^2_i}\sim t(4)τt=0.2i=1∑5σi2μ∼t(4)
McNemar检验
对于二分类困难,我们借助列联表,基于两学习器的性能相同的假设,构造统计量:
手段B 阳性 | 方法B 阴性 | |
---|---|---|
方法A 阳性 | a aa | b bb |
方法A 阴性 | c cc | d dd |
τ χ 2 = ( ∣ b − c ∣ − 1 ) 2 b + c ∼ χ 2 ( 1 ) \tau_{\chi^2}=\frac{(|b-c|-1)^2}{b+c} \sim \chi^2(1)τχ2=b+c(∣b−c∣−1)2∼χ2(1)
对多于两个学习器泛化能力的假设检验
对多个算法,要进行Friedman检验和Nemenyi检验。