zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

(《机器学习》完整版系列)第2章 模型评估与选择 ——2.8 学习器的比较(除用ROC等工具外,还可用统计检验手段)

机器统计工具学习 系列 模型 选择 比较
2023-09-11 14:14:53 时间

除了用ROC等工具进行过两学习器的比较外,我们还可用统计检验的手段进行两算法(甚至多算法)的比较。
提高性能就是改善泛化误差,而泛化误差可分解为偏差、方差与噪声之和,它们之间是有冲突的,通过控制训练程度来平衡它们之间的冲突。

性能比较

前面我们曾用ROC等工具进行过两学习器的比较,这里我们用统计检验的手段进行两算法(甚至多算法)的比较(这里主要是从泛化能力(性能)角度来进行学习器优劣的比较,在实际应用层面进行学习器选择时,还应考虑其他指标,如,学习器 A A A准确率很高但得运行几分钟,学习器 B B B准确率稍低但运行时间不到一秒,那么,在医学上应选 A A A,而手机上的日常应用中应选 B B B。 这类涉及人们关注点,通常作为满意度指标(如,运行时间),用阈值来定义)。 统计检验的关键是寻找合适的统计量,然后,利用前述的检验方法进行检验。

1.交叉验证+检验

两学习器的性能是否相等?

k k k折交叉验证方法可以得到一组“成对”数据,由【西瓜书式(2.31)】所定义的统计量 τ t \tau _t τt可用于 t t t检验。

2.用 χ 2 \chi ^2 χ2检验

【西瓜书式(2.33)】定义的统计量 τ χ 2 \tau _{\chi ^2} τχ2服从自由度为 1 1 1 χ 2 \chi ^2 χ2(卡方)分布,可用于判断两学习器的性能是否有显著差别。

【西瓜书式(2.34)】定义的统计量 τ χ 2 \tau _{\chi ^2} τχ2服从自由度为 k − 1 k-1 k1 χ 2 \chi ^2 χ2(卡方)分布,可用于判断多个( k k k个)学习器(或算法)的性能是否相同。

3.用 F F F检验

【西瓜书式(2.35)】定义的统计量 τ F \tau _F τF服从自由度为 k − 1 k-1 k1 ( k − 1 ) ( N − 1 ) (k-1)(N-1) (k1)(N1) F F F分布(注: F F F分布有两个自由度,其中, k k k为学习器的个数, N N N为测试集个数),可用于判断多个( k k k个)学习器(或算法)的性能是否相同。

偏差与方差*

【西瓜书式(2.42)】将泛化误差分解为偏差、方差与噪声之和,并通过【西瓜书图2.9】分析了偏差与方差的冲突,讨论了通过控制训练程度来平衡冲突。

这里对【西瓜书式(2.42)】的推导进行补充。

算法 f f f基于训练集 D D D,可得到模型 f D f_D fD,现在,设有 n n n个人对同一算法 f f f独立地进行实验,他们有各自的训练集 D i D_i Di,以及基于该训练集的各人的观测标记 y D i ( x ) y_{D_i}(\boldsymbol{x}) yDi(x)和各人训练好的用于预测的模型为 f D i f_{D_i} fDi

n n n个人训练完之后,再一起考虑测试,样本空间中去掉他们的训练集后,取一能代表样本分布的大子集 T T T作为测试集,即
T ⊂ X ∖ ⋃ i = 1 n D i \begin{equation*} T\subset \mathcal{X} \setminus \bigcup _{i=1}^nD_i \end{equation*} TXi=1nDi
测试集 T T T上模型 f D f_D fD的测试误差可视为其泛化误差
E ( f D ; T ) = E x ∈ T [ f D ( x ) − y D ( x ) ] 2 (1) E(f_D;T)=\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}} [f_D(\boldsymbol{x})-y_D(\boldsymbol{x})]^2 \tag{1} E(fD;T)=xTE[fD(x)yD(x)]2(1)
其中, E E E表示测试误差, E \mathbb{E} E表示平均(数学期望),后续推导中常以 f D f_D fD表示预测值 f D ( x ) f_D(\boldsymbol{x}) fD(x)的简写, y D y_D yD简记 x \boldsymbol{x} x在相对于 f D f_D fD时的观测标记 y D ( x ) y_D(\boldsymbol{x}) yD(x)。 由于有噪声,故一方面可能 y D ≠ y y_D\neq y yD=y y y y x \boldsymbol{x} x的真实标记),另一方面可能 y D 1 ≠ y D 2 y_{D_1}\neq y_{D_2} yD1=yD2(即同一 x \boldsymbol{x} x相对于不同的 f D 1 f_{D_1} fD1 f D 2 f_{D_2} fD2的观测标记,理解为各人的视察结果不相同)。 相关符号如图1所示。
图1相关记号

图1相关记号

f D f_D fD的泛化误差求平均(期望),则得算法 f f f的泛化误差
E ( f ; T ) = E D ∈ { D i } i = 1 n [ E ( f D ( x ) ; T ) ] = E D ∈ { D i } i = 1 n E x ∈ T [ f D − y D ] 2 = E x ∈ T E D ∈ { D i } i = 1 n [ f D − y D ] 2 \begin{align} E(f;T) & =\mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i\}_{i=1}^n }} [E(f_D(\boldsymbol{x});T)]\notag \\ & =\mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i\}_{i=1}^n }}\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}} [f_D-y_D]^2\notag \\ & =\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}} \mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} [f_D-y_D]^2 \tag{2} \end{align} E(f;T)=D{Di}i=1nE[E(fD(x);T)]=D{Di}i=1nExTE[fDyD]2=xTED{Di}i=1nE[fDyD]2(2)

T T T中任一样本 x \boldsymbol{x} x有唯一的真值 y ( x ) y(\boldsymbol{x}) y(x),但由于有 n n n个独立的实验者,故对样本 x \boldsymbol{x} x有一串预测值 f D 1 ( x ) , f D 2 ( x ) , ⋯   , f D n ( x ) f_{D_1}(\boldsymbol{x}),f_{D_2}(\boldsymbol{x}),\cdots,f_{D_n}(\boldsymbol{x}) fD1(x),fD2(x),,fDn(x),同时对应地也有一串观测值 y D 1 ( x ) , y D 2 ( x ) , ⋯   , y D n ( x ) y_{D_1}(\boldsymbol{x}),y_{D_2}(\boldsymbol{x}),\cdots,y_{D_n}(\boldsymbol{x}) yD1(x),yD2(x),,yDn(x)

对观测值取平均,由于噪声的期望值为0,故有
E D ∈ { D i } i = 1 n ( y D ( x ) − y ( x ) ) = 0 (3) \mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} (y_D(\boldsymbol{x})-y(\boldsymbol{x}))=0 \tag{3} D{Di}i=1nE(yD(x)y(x))=0(3)

对预测值取平均
f ‾ ( x ) = E D ∈ { D i } i = 1 n f D ( x ) \overline{f}(\boldsymbol{x})=\mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} f_D(\boldsymbol{x}) f(x)=D{Di}i=1nEfD(x)
移项有
E D ∈ { D i } i = 1 n ( f D ( x ) − f ‾ ( x ) ) = 0 (4) \mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} (f_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x}))=0 \tag{4} D{Di}i=1nE(fD(x)f(x))=0(4)

对于固定的 x ∈ T \boldsymbol{x} \in T xT f D ( x ) f_D(\boldsymbol{x}) fD(x) y D ( x ) y_D(\boldsymbol{x}) yD(x)(前者是预测值,后者是对应的观察值)是独立的基于 D D D的随机变量,而对于 D D D而言, f ‾ ( x ) \overline{f}(\boldsymbol{x}) f(x)为常数,故 ( f D ( x ) − f ‾ ( x ) ) (f_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x})) (fD(x)f(x)) ( y D ( x ) − f ‾ ( x ) ) (y_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x})) (yD(x)f(x))是独立的。 由独立性有
E D ∈ { D i } i = 1 n ( f D ( x ) − f ‾ ( x ) ) ( y D ( x ) − f ‾ ( x ) ) = E D ∈ { D i } i = 1 n ( f D ( x ) − f ‾ ( x ) ) E D ∈ { D i } i = 1 n ( y D ( x ) − f ‾ ( x ) ) = 0 ⋅ E D ∈ { D i } i = 1 n ( y D ( x ) − f ‾ ( x ) ) (由式(4)) = 0 \begin{align} & \quad \mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} (f_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x}))(y_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x}))\notag \\ & =\mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} (f_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x}))\mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} (y_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x})) \notag \\ & =0\cdot \mathop{\mathbb{E}}\limits_{\substack{D \in \{D_i \}_{i=1}^n}} (y_D(\boldsymbol{x})-\overline{f}(\boldsymbol{x})) \qquad\text{(由式(4))}\notag \\ & =0 \tag{5} \end{align} D{Di}i=1nE(fD(x)f(x))(yD(x)f(x))=D{Di}i=1nE(fD(x)f(x))D{Di}i=1nE(yD(x)f(x))=0D{Di}i=1nE(yD(x)f(x))(由式(4)=0(5)

现在回到【西瓜书式(2.41)】的证明,将其证明过程中的“=”依次编号,则第三个等号后的交叉项由式(5)知其为0;第六个等号后的交叉项由式(3)知其为0(对于 D D D而言, ( f ‾ ( x ) − y ) (\overline{f}(\boldsymbol{x})-y) (f(x)y)为常数)。
再由式(2)和【西瓜书式(2.41)第一个等号以及式(2.42)】有
E ( f ; T ) = E x ∈ T E ( f ( x ) ; D ) = E x ∈ T ( v a r ( x ) + b i a s 2 ( x ) + ε 2 ( x ) ) = E x ∈ T v a r ( x ) + E x ∈ T b i a s 2 ( x ) + E x ∈ T ε 2 ( x ) = v a r + b i a s 2 + ε 2 \begin{align} E(f;T) & =\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}}E(f(\boldsymbol{x});D)\notag \\ & =\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}}(\mathrm{var}(\boldsymbol{x})+\mathrm{bias}^2(\boldsymbol{x})+\varepsilon ^2(\boldsymbol{x})) \tag{6} \\ & =\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}}\mathrm{var}(\boldsymbol{x})+\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}}\mathrm{bias}^2(\boldsymbol{x})+\mathop{\mathbb{E}}\limits_{\substack{\boldsymbol{x} \in T}}\varepsilon ^2(\boldsymbol{x})\notag \\ & =\mathrm{var}+\mathrm{bias}^2+\varepsilon ^2 \tag{7} \end{align} E(f;T)=xTEE(f(x);D)=xTE(var(x)+bias2(x)+ε2(x))=xTEvar(x)+xTEbias2(x)+xTEε2(x)=var+bias2+ε2(6)(7)
式(6)或式(7)为算法 f f f的泛化误差分解式,相当于对【西瓜书式(2.42)】取数学期望,故消去了 x \boldsymbol{x} x

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:2.7 具体的性能检验方法
下一篇:2.9 在机器学习开发实践中如何改善学习器的性能?