白话机器学习:假设检验(一)

文章目录

  • 假设检验

假设检验

在前一篇文章写到的评估方法与性能评价中(白话机器学习:模型性能评价),我们可以针对某个学习算法去计算出性能指标来。那么这个性能指标是不是真的好呢?因为我们获得的是测试集的性能指标,而不是整个全局的性能指标。又或者说,两个学习期A和B,在测试集上获得了性能指标 E a E_a Ea E b E_b Eb,哪个更好呢?因为测试集的划分和数据采样的问题, E a E_a Ea E b E_b Eb谁好谁坏真的说不准。

我们需要比较的不是测试集上的指标,而应该是学习算法在整体数据集上的泛化指标,而泛化指标是无法通过数据计算得到的。怎么解决这个悖论呢,就需要用到假设检验了。

而假设检验的思想正是科学工作者们最重要的思想:“大胆的假设,小心的求证”。简单来说就是我们针对整体数据的分布做出某种假设,利用已有样本数据去进行计算测试指标是否可以代表泛化概率(或者说测试指标能代表泛化指标的概率有多大)。

上面提到的假设可以针对各种指标(就是上篇文章提到的那些)去进行假设,简单起见,以错误率 ϵ \epsilon ϵ来举例。

首先介绍出场的几个符号:

  • ϵ \epsilon ϵ,学习算法在整体数据集上的泛化错误率。
  • ϵ ′ \epsilon\prime ϵ,学习算法在测试集上的测试错误率。
  • ϵ 0 \epsilon_0 ϵ0,某种假设的错误率。
  • ϵ ‾ \overline{\epsilon} ϵ,临界错误率。

下面列一下我自己对机器学习中假设检验的理解,以二分类问题为例:

  1. 先做出一个假设,测试集的错误率 ϵ ′ \epsilon\prime ϵ可以代表泛化错误率 ϵ \epsilon ϵ,我们需要了解的是,这个假设的可行性有多大。

  2. 假设测试集中的数据样本都是独立采样获得,那么基于这个前提,我们就可以把泛化错误率理解成:“在一个二分类问题中,总数为m的样本集合中,恰好 m ∗ ϵ m*\epsilon mϵ个样本被分错”,这就是二项分布的概念了。

  3. 这里还有一个重要的概念需要引出来,就是“小概率事件原理”:小概率原理是指一个事件的发生概率很小,那么它在一次试验中是几乎不可能发生的,但在多次重复试验中是必然发生的。那么反过来说,如果这样的事件发生了,我们就认为原假设错误,从而做出拒绝原假设的决断。那么关键点就在于,这个小概率到底是多小?我们把这样的一个概率称之为 p p p,一般是设置0.05或者0.01。

    那么,我们在测试集中已经出现了错误率为 ϵ ′ \epsilon\prime ϵ了,根据小概率事件原理,这个事情发生的概率是大于了概率 α \alpha α的。但是如果这个事情发生的概率小于了概率 α \alpha α的话,就可以说我们的这个假设是错误的。那么我们就来算一算这个事情(这个事情是指泛化错误率 ϵ \epsilon ϵ恰好是 ϵ ′ \epsilon\prime ϵ,也就是我们的假设: ϵ = ϵ ′ \epsilon = \epsilon\prime ϵ=ϵ)的概率。

  4. 根据第二点中的假设,这个错误率的概率符合二项分布,那么根据二项分布的概率计算公式,我们可以知道在错误率为 ϵ \epsilon ϵ的情况下,m个样本有 m ′ m\prime m个样本分类错误,而其他样本分类正确的概率为:
    P = ( m m ′ ) ϵ m ′ ( 1 − ϵ ) m − m ∗ ϵ , m ′ = m ∗ ϵ P = \left(\begin{matrix} m \\ m\prime \end{matrix}\right)\epsilon^{m\prime}(1-\epsilon)^{m-m*\epsilon}, m\prime = m*\epsilon P=(mm)ϵm(1ϵ)mmϵ,m=mϵ
    ϵ = ϵ ′ \epsilon = \epsilon\prime ϵ=ϵ,就是可以得到在包含m个样本的测试集上,泛化错误率为 ϵ \epsilon ϵ的学习器被测得测试错误率为 ϵ ′ \epsilon\prime ϵ的概率。
    P = ( m ϵ ′ ∗ m ) ϵ ϵ ′ ∗ m ( 1 − ϵ ′ ) m − ϵ ′ ∗ m P = \left(\begin{matrix} m \\ \epsilon\prime*m \end{matrix}\right)\epsilon^{\epsilon\prime*m}(1-\epsilon\prime)^{m-\epsilon\prime*m} P=(mϵm)ϵϵm(1ϵ)mϵm

  5. 实际上,如果泛化错误率比测试错误率更小的话,我们肯定是更高兴的,所以,我们把第一点的假设改一下,只要小于某个错误率就可以了,也就是说:假设改成 ϵ ≤ ϵ 0 \epsilon \leq \epsilon_0 ϵϵ0。举个栗子,如果 ϵ 0 = 5 \epsilon_0 = 5 ϵ0=5,那么就是恰好判别错了5个以下的情况都可以接受,4个,3个,2个都可以。

    所以,我们把这些概率进行求和,使得求和的概率大于第二点中的概率 p p p即可。

    为了便于理解,把二项分布的密度函数图先贴出来:

    二项分布密度函数图

    上面提到的求和,比如 ϵ 0 = 5 \epsilon_0 = 5 ϵ0=5,那就是曲线下面的面积。但是一般不是计算左边的,而是反过来计算,也就是计算 ϵ > 5 \epsilon > 5 ϵ>5的面积,也就是大于这个错误率的概率和,使得这个和小于某个概率,也就是图中的 α \alpha α:置信区间。

    这就是书上的公式:
    ∑ k = i m ( m i ) ϵ i ( 1 − ϵ ) m − i \sum_{k=i}^m{\left(\begin{matrix} m \\ i \end{matrix}\right)\epsilon^i(1-\epsilon)^{m-i}} k=im(mi)ϵi(1ϵ)mi
    最后的公式(书上写的是max,但是我自己理解应该是min,好像后续作者做了更新说是改成min了吧):
    ϵ ‾ = m i n ϵ s . t ∑ k = i m ( m i ) ϵ i ( 1 − ϵ ) m − i < α \overline{\epsilon} = min \epsilon s.t \sum_{k=i}^m{\left(\begin{matrix} m \\ i \end{matrix}\right)\epsilon^i(1-\epsilon)^{m-i}} < \alpha ϵ=minϵs.tk=im(mi)ϵi(1ϵ)mi<α
    的含义就是找到一个满足条件 < α <\alpha <α的最小的错误率 ϵ \epsilon ϵ。因为一个概率 α = 0.05 \alpha = 0.05 α=0.05的话,很有多个 ϵ \epsilon ϵ可以满足,从图上看,7,8,9往后的所有数字可能都满足,但是错误率肯定是越低越好,所以我们需要找到一个最小的。

  6. 到这里,我们就可以回过头去看这个假设,如果我们的测试错误率 ϵ ′ < ϵ ‾ \epsilon\prime<\overline{\epsilon} ϵ<ϵ,那么就表示在 1 − α 1-\alpha 1α的置信度下,这个假设是不能被拒绝的,也就是成立的。简单的说, ϵ ′ \epsilon\prime ϵ可以代表泛化错误率。举个栗子, α = 0.01 \alpha = 0.01 α=0.01的话,假设此时的 ϵ ‾ = 3 \overline{\epsilon} = 3 ϵ=3。那么如果要进一步降低 α \alpha α的话,那么 ϵ ‾ \overline{\epsilon} ϵ就会相应的增加,也就是临界错误率会增加。

上面整个过程是对某次测试过程获得的测试错误率 ϵ \epsilon ϵ的评价过程,但是根据之前的介绍,一般都会对测试集做多次的划分(比如使用留出法),来获得多个测试错误率。
假设做了 k k k次的划分,那么就可以获得 k k k个错误率: ϵ 1 \epsilon_1 ϵ1 ϵ 2 \epsilon_2 ϵ2 ϵ k \epsilon_k ϵk
这种情况下,我们一般是使用平均测试错误率 μ \mu μ来代替单次的错误率 ϵ \epsilon ϵ
μ = 1 k ∑ i = 1 k ϵ i \mu = \frac{1}{k}\sum_{i=1}^k{\epsilon_i} μ=k1i=1kϵi
那么,根据上面的逻辑,我们就是要计算假设: μ ≤ ϵ 0 \mu \leq \epsilon_0 μϵ0的概率。
上面提到单次测试错误率的计算符合二项分布,所以使用二项分布的方式来计算概率。
书上讲到的是构造一个服从t分布的统计量(能不能构造服从其他分布的统计量,我就不清楚了,那个感觉不是我的知识水平能涉及的范围了),用这个统计变量去计算概率:
τ t = k ( μ − ϵ 0 ) σ \tau_t = \frac{\sqrt{k}(\mu-\epsilon_0)}{\sigma} τt=σk (μϵ0)
t分布的概率密度函数长这个样子。
白话机器学习:假设检验(一)_第1张图片

  1. 在这个t分布中,把 ( μ − ϵ 0 ) (\mu-\epsilon_0) (μϵ0)作为一个统计变量 X X X,使得 X X X服从t分布。对于第一步中的假设,这个假设被拒绝的情况就是 ∣ μ − ϵ 0 ∣ > 0 |\mu - \epsilon_0| > 0 μϵ0>0,那么在t分布中,这个假设被拒绝的概率就是 P ( ∣ μ − ϵ 0 ∣ > 0 ) P(|\mu - \epsilon_0| > 0) P(μϵ0>0),设置一个置信度 α \alpha α,使得 P ( ∣ μ − ϵ 0 ∣ > 0 ) = α P(|\mu - \epsilon_0| > 0) = \alpha P(μϵ0>0)=α来找到这个临界值,所以这样的概率就是t分布两侧 ( − ∞ , − t ( α 2 ) ) (-\infty, -t(\frac{\alpha}{2})) (,t(2α)) ( t ( α 2 ) , ∞ ) (t(\frac{\alpha}{2}), \infty) (t(2α),)的阴影部分。
  2. t分布提供了一些常用的基于某个置信度 α \alpha α的临界值表格。
    白话机器学习:假设检验(一)_第2张图片
    我对这张图的理解如下:
    比如图中最右下角的数字:1.699表示在 1 − α = 90 1-\alpha = 90% 1α=90的置信度下,30个样本(在本文的语境中,就是30次留出法获得的 ϵ i \epsilon_i ϵi)的均值 ∣ μ − ϵ i ∣ |\mu - \epsilon_i| μϵi的最大差异率为1.699。或者用更通俗的话讲:如果 τ t ≤ \tau_t \leq τt临界值,那么平均错误率的可信程度为90%。

数学水平很有限,书上的一两页看了两三天才基本看明白。写这篇文章又花了2-3天才写明白,最起码把我自己的理解写完了,不是很严谨,但是应该还是讲清楚了。如果有不对的地方,希望各位指出,谢谢。

你可能感兴趣的:(白话机器学习)