> 文章列表 > 集成学习-非成对多样性度量-个人总结

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

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

一、引言

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

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

二、准备工作

        这部分声明一些基本的术语,因为下面的度量方法都是基于个体学习器展开计算的。个体学习器集合:\\{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.