集成学习-非成对多样性度量-个人总结

一、引言

        集成学习:通过构建并结合多个学习器来完成学习任务。一般结构是:先产生一组“个体学习器”,再用某种策略将它们结合起来。结合策略主要有平均法、投票法和学习法等。

        在集成学习之中,个体学习器之间的差异被称为“集成多样性”。如何理解集成多样性,是该学习范式的圣杯问题,即难以捉摸的、具有重大意义的目标。现有的集成多样性度量方法主要包括两类:一类是成对个体学习器的多样性度量,另一类是非成对个体学习器的多样性度量。本文主要对后一类进行讨论和总结。

二、准备工作

        这部分声明一些基本的术语,因为下面的度量方法都是基于个体学习器展开计算的。个体学习器集合:\{h_1, h_2, ..., h_T\};数据集:D=\{(\mathbf{x}_1, y_1), (\mathbf{x}_2, y_2), ..., (\mathbf{x}_m, y_m)\},其中\mathbf{x}_i, y_i分别为样本和类别标记,且y_i \in \{-1, +1\}

三、非成对多样性度量方法

        1、Kohavi-Wolpert方差,简称KW度量,该度量由Kohavi和Wolpert在1996年提出。具体的计算方法为

KW=\frac{1}{mT^2}\sum_{k=1}^{m}\rho(\mathbf{x}_k)(T-\rho(\mathbf{x}_k))

其中,m为样本的个数,T为个体学习器的个数,\rho(\mathbf{x})T个个体学习器对于样本\mathbf{x}分类正确的个数且0 \leqslant \rho(\mathbf{x}) \leqslant T

        由该等式可以看出,mT视为常数,而最关键的地方在于\rho(\mathbf{x}):当每个样本的\rho(\mathbf{x})都为T的一半时,KW度量达到最大,此时多样性最大;而当每个样本的\rho(\mathbf{x})全为0或T时,KW度量达到最小,此时多样性最小。这很好理解,每个样本的\rho(\mathbf{x})如果都是0或T的话,那么所有个体学习器的预测结果都是相同的;否则,如果每个样本的\rho(\mathbf{x})都是T的一半的话,所有个体学习器的预测结果都有可能不一样,请注意,是有可能不一样,而不是绝对不一样。因此KW度量的多样性度量是存在一定的问题的。

        2、评分者间一致度(Interrater Agreement),即\kappa度量。\kappa度量用于分析一组分类器的一致性,它被定义为

\kappa = 1 - \frac{\frac{1}{T}\sum_{k=1}^{m}\rho(\mathbf{x}_k)(T-\rho(\mathbf{x}_k))}{m(T-1)\bar{p}(1-\bar{p})}

其中,\bar{p}=\frac{1}{mT}\sum_{i=1}^{T}\sum_{k=1}^{m}\mathbb{I}(h_i(\mathbf{x}_k)=y_k)为个体学习器的平均分类精度;而\mathbb{I}(\cdot)为指示函数,当括号中的条件为真时返回1,否则返回0。

        \kappa度量主要反映了个体学习器之间预测结果的一致性。当预测结果完全一致时,则\kappa的值为1;如果学习器之间的一致程度比随机的还差时(最极端的情况为:每个样本被正确分类的结果为个体学习器的一半且平均精度为0.5),则\kappa \leqslant 0。因此,\kappa度量的值越大,说明个体学习器的预测结果越一致,但多样性就越小;反之则越大。

        3、熵(Entropy)。Cunningham和Carney在2000年提出的熵度量计算方法为

\mathrm{Ent}_{\mathrm{cc}}=\frac{1}{m}\sum_{k=1}^{m}\sum_{y\in\{-1,+1\}}{-P(y|\mathbf{x}_k)\log P(y|\mathbf{x}_k)}

其中,P(y|\mathbf{x}_k)=\frac{1}{T}\sum_{i=1}^{T}\mathbb{I}(h_i(\mathbf{x}_k)=y)表示将\mathbf{x}_k预测为y的个体学习器占比 (占比的分母为T)。显然,\mathrm{Ent}_{\mathrm{cc}}不需要知道个体学习器的正确率。

        Shipp和Kuncheva在2002年提出的熵度量计算方法为

\mathrm{Ent}_{\mathrm{sk}}=\frac{1}{m}\sum_{k=1}^{m}{\frac{\min(\rho(\mathbf{x}_k), T-\rho(\mathbf{x}_k))}{T-\left \lceil T/2 \right \rceil}}

其中,\left \lceil x \right \rceil为向上取整符号:如果x为整数,则\left \lceil x \right \rceil = x,如果x不为整数,则\left \lceil x \right \rceil = x的整数部分+1。\mathrm{Ent}_{\mathrm{sk}}的取值范围是[0, 1],取为0时表示完全一致,取为1时表示多样性最大。值得注意的是,\mathrm{Ent}_{\mathrm{sk}}没有使用对数函数,所以它不是经典的熵。尽管如此,该等式还是被用的更多,因为它更容易被实现而且计算速度也比较快。

        4、困难度。假设对样本\mathbf{x}正确分类的个体学习器占比记为随机变量X,那么困难度的计算方法为

\theta = \mathrm{variance}(X)

其中,随机变量X的取值范围为\{0, \frac{1}{T}, \frac{2}{T}, ..., 1\},而X的概率分布可以通过T个分类器在数据集D上进行预测来估计。因此,随机变量X的分布列为

X 0 \frac{1}{T} ... 1
P \frac{\mid \{\mathbf{x} | \rho(\mathbf{x})=0\}\mid}{m} \frac{\mid \{\mathbf{x} | \rho(\mathbf{x})=1\}\mid}{m} ... \frac{\mid \{\mathbf{x} | \rho(\mathbf{x})=T\}\mid}{m}

        \theta度量了样本的分类困难度,\theta越小,则多样性越大。如果使用直方图对上述分布列进行可视化,当样本较难被分类时,直方图的分布区域将主要散落在左边,而当样本较易被分类时,直方图的分布区域将主要散落在右边。

        5、通用多样性。该度量的计算方法为

\mathrm{gd}=1-\frac{p(2)}{p(1)}

其中,p(1)=\sum_{i=1}^{T}\frac{i}{T}p_ip(2)=\sum_{i=1}^{T}\frac{i}{T}\frac{i-1}{T-1}p_i,而p_i代表随机挑选的分类器在随机挑选的样本\mathbf{x}上预测失败的概率。\mathrm{gd}度量的取值范围是[0, 1],当\mathrm{gd}=0时,多样性最小。该度量可以体现这样一个观点:当一个分类器预测错误伴随着另一个预测正确时、多样性最大。至于为什么能够做到这一点,我暂时还没有想明白,懂的同学请留言告诉我一下。

        6、同时失败度量。该度量是通用多样性的修改版本,计算方法为

\mathrm{cfd} = \left\{\begin{matrix} 0, & p_0=1\\ \frac{1}{1-p_0}\sum_{i=1}^{T}\frac{T-i}{T-1}p_i & p_0<1 \end{matrix}\right.

当所有分类器同时给出相同的预测结果时cfd=0,如果每个分类器犯错的样本都不相同则cfd=1。抱歉,还是没看太明白。

四、小结

        上边的多样性计算方法都是基于分类器实现的。其中,除了\theta和评分者间一致度这两个,其它的度量指标都与集成多样性是正比的关系。

        其实笔者也是刚刚入门集成学习这个领域,目前还有很多不懂的地方,如果有大佬看到请多多指教。各位如果有不太明白的地方,也欢迎在评论区中留言,共同探讨探讨这个集成学习的非成对多样性。

五、参考文献

        1、百度百科: 集成学习

        2、周志华. 集成学习: 基础与算法[M]. 电子工业出版社, 2020.

你可能感兴趣的:(机器学习与深度学习,集成学习)