集成学习-多样性的度量和增强

多样性度量

在集成学习中,我们希望分类器具有多样性。多样性度量(diversity measure)是用于度量集成个体分类器的多样性。常规的做法是度量两个分类器的相似性,通常有如下指标。
给定数据集 D = { ( x i , y i ) } 1 m D=\{(\bm{x}_{i},y_{i})\}_{1}^{m} D={(xi,yi)}1m,对二分类任务, y i ∈ { − 1 , + 1 } y_{i}\in \{-1,+1\} yi{1,+1},对于两个分类器 h i h_{i} hi h j h_{j} hj的预测结果列联表(contingency table)为:

h i = + 1 h_{i}=+1 hi=+1 h i = − 1 h_{i}=-1 hi=1
h j = + 1 h_{j}=+1 hj=+1 a a a c c c
h j = − 1 h_{j}=-1 hj=1 b b b d d d

(1)马修斯相关系数(Matthews correlation coefficient)
针对二分类问题:
M C C i j = a d − b c ( a + b ) ( a + c ) ( c + d ) ( b + d ) MCC_{ij}=\frac{ad-bc}{\sqrt{(a+b)(a+c)(c+d)(b+d)}} MCCij=(a+b)(a+c)(c+d)(b+d) adbc
从公式中可以看出,值域为 [ − 1 , 1 ] . [-1,1]. [1,1].当预测结果中没有 − 1 -1 1 + 1 +1 +1时, M C C i j = 0 MCC_{ij}=0 MCCij=0
当预测结果全部正确时,正相关程度例如: M C C i j = 1 MCC_{ij}=1 MCCij=1
当预测结果全部错误时,负相关程度最大: M C C i j = − 1 MCC_{ij}=-1 MCCij=1
当预测结果一半正确,一半错误时,且正负类标比例相同时,此时相当于随机猜测:
h i = [ − 1 , + 1 , − 1 , + 1 ] h j = [ − 1 , + 1 , + 1 , − 1 ] M C C i j = 0 h_{i}=[-1, +1,-1,+1]\\h_{j}=[-1, +1,+1,-1]\\MCC_{ij}=0 hi=[1,+1,1,+1]hj=[1,+1,+1,1]MCCij=0
所以相关系数越小,表明两个分类器相似度越小,差异性越大。
使用sklearn中的函数可以实现马修斯相关系数的计算,函数中同样也包括了多分类情况下的计算:https://scikit-learn.org/stable/modules/model_evaluation.html#matthews-correlation-coefficient

>>> from sklearn.metrics import matthews_corrcoef
>>> y_true = [+1, +1, +1, -1]
>>> y_pred = [+1, -1, +1, +1]
>>> matthews_corrcoef(y_true, y_pred)  
-0.33...

(2)不合度量(disagreement measure)
d i s i j = b + c a + b + c + d dis_{ij}=\frac{b+c}{a+b+c+d} disij=a+b+c+db+c
值域为 [ 0 , 1 ] [0,1] [0,1]。不合度量实质上衡量了分类器结果不一致的比例,值越大,表明差异性越大。

多样性增强

在集成学习中,需要有效地生成多样性大的个体学习器,增强多样性的思路一般是在学习过程中引入随机性,常见的做法是对数据样本、输入属性、输入表示,算法参数进行扰动。
(1)数据样本扰动
给定的初始数据集,可以产生不同的数据子集,利用不同的数据子集训练出不同的学习器,数据样本扰动通常基于采样法。在bagging中使用自助采样,Adaboost使用序列采样,此类做法简单高效,使用很广,对很多基学习器。例如决策树,神经网络等,训练样本稍加变化就会导致学习器有显著变动,此时样本扰动对不稳定基学习器很有效;有一些基学习器对样本扰动不敏感,比如线性学习器、支持向量机、朴素贝叶斯,k近邻学习,称为稳定基学习器。
(2)输入属性扰动
不同的属性子空间提供了观察数据的不同视角,从不同属性子空间中训练出的个体学习器必然不同。对包含大量冗余属性的数据,使用属性子集能训练出的多个多样性大的学习器,还会因为属性数的减少而节省时间开销,同时,由于冗余属性较多,减少属性后训练出的个体学习器不至于太差。若数据只包含少量的属性,或者冗余属性很少,此时对属性扰动会导致每个分类器可用信息大大较少,效果较差。
(3)算法参数扰动
对学习器的超参数进行扰动。例如,可以通过调整正则化系数来控制神经网络的不同参数;决策树的属性选择机制可以替换为其他属性选择机制。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页