基于监督学习的分类器自适应融合方法*

2022-04-20 08:51龚卫华陈凯王百城
传感技术学报 2022年2期
关键词:高斯分类器聚类

龚卫华陈 凯王百城

(1.浙江工业大学计算机科学与技术学院,浙江 杭州 310023;2.浙江工业大学理学院,浙江 杭州 310023)

机器学习的目标可以理解为在假设空间中搜索一个泛化能力强且鲁棒性高的学习模型,但是搜索合适模型的过程是比较困难的[1]。 集成学习为解决该问题提供了一种有效的方法,通过采用多种机器学习算法产生预测结果,并将结果与各种投票机制融合,使得组合后模型的泛化性能得以提升[2]。该方法现已广泛应用于时间序列[3]、医疗健康[4]、软件缺陷预测[5]、恶意代码检测[6]等领域并取得了良好的效果。 目前一些常见的集成学习算法有AdaBoost[7]、 Bagging ( bootstrap aggregating)[8]和Stacking[9]等。 影响集成学习算法性能的关键在于如何构造差异化的基分类器[10]。 现有大多数研究主要通过采样方法构造差异化的基分类器,如Wang等[11]提出了一种基于Bagging 和Random Subspace的混合集成分类方法RS-Bagging;Yang 等[12-13]提出了一种基于混合采样的聚类集成方法;姚旭等[14]利用粒子群优化算法(PSO)寻找最优特征权重分布,在此基础上随机抽取特征生成随机子空间用于训练基分类器。 不难发现,这些传统基于采样构造基分类器的方法,无法保证基分类器之间的差异性,从而限制了集成分类器泛化性能的提升[15]。

为了增强集成分类器的泛化能力,最近一些研究采用聚类技术来预处理训练集,聚类算法根据训练样本的原始特征对其进行划分,以获得特征分布差异较大的训练子集。 由于不同的类簇代表不同的空间特征,因而在不同类簇上训练得到的基分类器之间的差异性在一定程度上得到了保证。 Xiao等[15]通过对每个类别标签的样本进行聚类分组,然后将不同类别标签和类簇的样本组合成不同的训练子集用于生成基分类器,最后依据基分类器在测试样本邻域上的适应度组合分类器。 Verma 等[16]将数据集划分为多个类簇,并由基分类器学习聚类边界产生置信向量用于分类器集成。 王玲娣等[17]提出了一种自适应集成算法AECA,将测试样本与各个类簇的概率隶属特征融合到分类器集成算法中,其中,类簇概率隶属特征sij的计算公式如下:

式中:dit表示第i个测试样本和第t个类簇中心之间的距离,K表示类簇数量。

上述方法均采用K-means 聚类算法对训练集进行划分,存在的问题是K-means 聚类算法无法刻画该样本点与多类簇之间的概率隶属特征。 另外,传统方法并未将基分类器在其他类簇上的分类性能融合到最终的模型集成中,限制了模型性能的提升。

本文的主要贡献包括以下几点:①提出一种基于高斯混合模型聚类的训练集划分方法,得到有监督的训练集簇,目标是构造差异化的基分类器。②在此基础上,进一步提出融合近邻类簇相似度和基分类器局部适应度的动态加权方法,以获得具有自适应性的分类器组合。 ③在UCI 数据集上的实验结果表明,本文基于监督学习的分类器自适应融合方法AEC_SL(adaptive ensembling classifiers based on supervised learning)比传统集成方法具有更好的分类性能。

1 基于监督学习的分类器自适应融合方法

AEC_SL 模型主要分为2 个阶段:①运用高斯混合模型聚类方法得到有监督的训练集,然后在每一个类簇上使用随机森林算法[18]训练得到基分类器;②融合近邻类簇相似度和基分类器局部适应度对分类器进行动态加权得到优化的自适应分类器组合。

1.1 基于高斯混合模型的训练集数据聚类方法

为了克服传统K-means 聚类的缺陷,本文采用高斯混合模型(Gaussian Mixture Model,GMM)[19]以概率向量的形式描述样本与多类簇之间的隶属关系。 假设在高斯混合模型中,输入样本服从K个混合的参数未知的高斯分布,其概率分布模型:

式中:θ=(λ1,λ2,…,λK;θ1,θ2,…,θK),λj是系数,表示高斯分布密度,θk=(μk,εk),μj和εj分别表示高斯分布的均值和协方差。

本文采用最大期望(expectation-maximization,EM)方式[20]估计K个混合的高斯分布参数θ,以获得K个训练样本簇,算法步骤如下:

算法1 高斯混合模型聚类算法

输入:数据集D={x1,x2,…,xm},其中,x∈R1×d;簇标签β=[1,2,…,K],K为类簇数量。

输出:样本xi的高斯混合模型概率向量P*i=及所属的类簇Cβi。

①初始化K个高斯分布的参数μj和εj;

②由式(3)计算样本xi属于第j个高斯分布的概率γij:

③由式(4)、式(5)和式(6)更新每个高斯分布的参数θ(t):

④重复②和③,直至高斯分布参数θ收敛为:

⑤由式(8)计算样本xi所属的类簇Cβi,从xi的高斯混合模型概率向量中选择其中最大的概率,并划入到所属类簇Cβi中。

1.2 基于动态加权的多分类器融合方法

在算法1 得到有监督的训练簇集后,本文进一步使用随机森林算法进行学习生成基分类器Hj(j=1,2,…,K),然后结合近邻类簇相似度和基分类器的局部适应度进行动态加权来预测分类标签。

首先,假设类簇t中样本的高斯混合模型概率向量为P()=[,…,],测试样本xe的高斯混合模型概率向量为P(xe)=[γe,1,…,γe,K],则该样本与簇中某样本的概率分布相似性如下:

当D[P(),P(xe)]越大时,说明测试样本与该簇特征越相似。

为了进一步确定测试样本xe与多个类簇中近邻样本的标签相似特征,我们在每个类簇中选取样本标签q下个最近邻样本,构成其局部评价集合。 这样,测试样本xe与各类簇C的局部区域集合的标签相似性向量可表示成=[…],其计算如下:

相应地,每个基分类器也在各类簇上的局部区域集合上所形成的适应度向量可表示成=如下:

式中:表示基分类器Hj在第t个类簇的局部评价集合上正确分类的样本数量;=「×α」,表示第t个类簇在标签q下的样本数量,α表示最近邻域的样本比例,「·」表示向上取整。 这样,K个基分类器在K个类簇局部区域集合Eqt适应度矩阵表示为:

然后,本文通过结合基分类器的局部适应度矩阵Fq和测试样本的类簇相似度来计算随机森林分类器将测试样本xe预测为标签q的权重ωq:

式中:表示第i个基分类器将测试样本xe预测为样本标签q的权重。

最后,利用基分类器Hj预测测试样本xe属于每个标签的概率依据下述加权投票策略输出测试样本的预测标签:

上述算法流程如图1 所示。

图1 基于动态加权的多分类器融合算法流程图

2 实验与分析

2.1 数据集与对比算法

为了评估算法的有效性,实验选取了UCI(http:/ /archive.ics.uci.edu/ml/datasets.html)中的5个数据集,其基本信息如表1 所列,其中样本数目为690~10 000,特征维数为14 ~168,不平衡度Musk>German>Electrical>Spambase>Australian。 为了便于讨论,本文主要关注数据二分类问题。

表1 数据集基本信息

为了评价各算法性能的差异,本文选择以下代表性的集成算法进行比较:

①AdaBoost(DT)[7],该算法通过迭代调整样本的权值来关注误分类的样本,以此提高基分类器在最终集成时的分类性能。

②Bagging(DT)[8],该算法从训练数据集中随机采样生成样本子集,然后用得到的子集训练基分类器并进行集成。

③RS-Bagging(DT)[11],该算法通过依次对原始训练集样本以及特征进行随机采样,然后用得到的数据集训练基分类器并进行集成。

④RF(Random Forest)[18],该算法通过对训练集进行采样和随机抽取节点特征来增加分类器之间的差异性。

⑤AECA[17],该算法通过结合测试样本的类簇概率隶属特征以及AdaBoost 算法对测试样本的置信度,动态调整分类器的权重。

⑥AEC_SL 算法,是本文提出的基于监督学习的分类器自适应融合方法。

上述对比算法中,AdaBoost 和Bagging 代表传统的集成学习算法,RS-Bagging 是融合样本随机采样和特征随机采样的集成算法,RF 是对样本与节点特征进行随机采样来训练分类器的集成算法,AECA 是结合了K-means 聚类技术和集成策略的算法,而本文的AEC_SL 是基于高斯混合模型聚类以及动态自适应权重的集成学习算法。

2.2 算法参数及性能评价指标

上述算法均通过Python3.8 编程实现,实验平台:Windows10,16GB Memory,AMD Ryzen 5-3500U with Radeon Vega Mobile Gfx 2.10 GHz。 实验中,针对训练集样本中的不平衡问题,采用SMOTE[21]过采样策略平衡训练集中的正负样本。 AdaBoost 和Bagging 算法的基分类器为决策树,Bagging 算法的最大采样率为0.5;RS-Bagging 算法样本采样率和特征采样率分别为0.5;RF 算法包含100 棵决策树;AECA 算法聚类数为实验数据集的标签数;本文的AEC_SL 算法的聚类数量取为实验数据集的标签数,对应表1 中5 个数据集的参数α依次取为0.1、0.5、0.2、0.1、0.8,随机森林包含100 棵决策树。 实验采用10 折交叉验证的方法,即将数据集分为10份互不相交的子集,其中选取9 份用于训练模型,1份用于测试模型性能,算法的最终结果是10 个测试结果的平均值。 对于二分类问题,通常构建混淆矩阵用于分析模型性能,混淆矩阵如表2 所列。

表2 混淆矩阵

本文采用的分类性能评价指标如下:

①召回率

召回率体现了分类器对正类样本的识别能力。

②F1-value

③G-mean

G-mean 以正类和负类样本的分类正确率为基础,用于衡量不平衡数据集的整体分类性能。

2.3 分类器性能比较

表3 给出了6 种算法的Recall 性能对比结果,试验结果表明本文提出的AEC_SL 算法能有效提高大多数数据集的正样本预测能力, 其中在Australian、German、Spambase 和Electrical 数据集中,比其他5 种算法的Recall 指标分别提升了1.38%~8.17%、0.52%~2.08%、0.37%~6.66%和4.75%~12.13%。 但在Musk 数据集上,AEC_SL 算法要低于最好算法0.004,原因在于AEC_SL 算法的基分类器为强分类器,而Musk 数据集特征维数较高,易导致分类器过拟合,降低算法的整体性能。

表3 Recall 比较结果

表4 和表5 分别给出了6 种算法的F1-value 和G-mean 性能对比结果,实验结果表明本文提出的AEC_SL 算法可以有效提高数据集的整体分类性能,与另外5 种算法相比,在F1-value 指标上最多分别提升了5.87%、1.83%、1.87%、35.76%和7.89%,在G-mean 指标上最多分别提升了5.51%、8.72%、3.61%、15.20%和8.58%。 由此可见,AEC_SL 算法通过定义类簇的局部评价集合,动态刻画了近邻类簇相似度以及分类器对类簇的适应度,使得模型具有更强的自适应性。

表4 F1-value 比较结果

表5 G-mean 比较结果

3.4 AEC_SL 模型分类性能影响分析

①有监督的训练集聚类方法对比

为了展现有监督的训练集对集成分类器的性能影响,我们比较了高斯混合模型聚类方法和K-means聚类方法的聚类效果,选择表1 中的Australian 数据集作为实例进行实验,实验采用Radviz 方法[22]进行聚类效果可视化展示,结果如图2 所示,其中不同颜色对应着不同的类簇,0 ~13 的数字标号代表相应的特征。

图2 训练集聚类效果

由图2 不难发现,高斯混合模型得到有监督的训练样本比传统K-means 聚类算法,具有更明显的类簇特征。 接下来,我们进一步对比分别采用GMM聚类和K-means 聚类的训练集簇对本文分类器性能的影响。

图3 给出了两种聚类方法下的G-mean 比较结果,由图可知,以高斯混合模型作为聚类技术的算法AEC_SL(GMM)性能要优于以K-means 作为聚类技术的算法AEC_SL(K-means),在5 个数据集上分别提升了6.01%、4.75%、5.39%、4.22%和6.98%,原因在于高斯混合模型聚类方法更好地划分了训练集,同时细致刻画了测试样本的近邻类簇相似度,从而使得模型的泛化性能得以提升。

图3 改变聚类方法对AEC_SL 算法分类性能影响

②训练集的聚簇结构对分类性能的影响

为了分析类簇数量对AEC_SL 算法性能的影响,实验进一步对比了AEC_SL 算法在不同聚簇参数下的G-mean 性能变化,结果如图4 所示。

从图4 中发现,随着聚类数量的增加,模型性能总体呈现下降的趋势,对于German 数据集,AEC_SL算法在类簇数量等于6 时达到最优,其后模型性能也逐渐下降,原因在于合适的类簇数量有利于增加算法的差异性,但过多的类簇数量将导致用于训练分类器的样本数量减少,从而增加了模型过拟合的风险。

图4 聚类数量对AEC_SL 算法分类性能影响

③不同分类器对分类性能的影响

为了分析不同分类器对AEC_SL 算法性能的影响,本文将AEC_SL 算法中的基分类器依次替代为逻辑回归模型和决策树模型。 图5 给出了AEC_SL算法中使用不同基分类器情况下的G-mean 指标对比结果。

图5 改变基分类器对AEC_SL 算法分类性能影响

由图5 不难发现,以随机森林作为基分类器的模型性能要优于以逻辑回归或决策树作为基分类器的模型,在5 种数据集上分别提升了11.57% ~12.05%、2.83%~8.73%、9.13%~9.64%、11.47%~15.71%和4.34%~16.19%,原因在于随机森林作为强分类器,能够更加充分拟合不同类簇上的数据,提升基分类器在不同类簇上的分类性能,从而有效提高模型泛化性能。

④算法超参数α的敏感性分析

在AEC_SL 算法中,最近邻域的样本比例α决定了类簇局部评价集合的样本数量。 图6 给出了AEC_SL 算法选取不同超参数α时的G-mean 分类结果。

由图6 可知,AEC_SL 算法在数据集Spambase、Australian、Electrical 中都具有较稳定的G-mean 分类性能,即使在较不平衡的Musk 数据集上变化幅度小于3%,影响较小。 由此可见,AEC_SL 算法的超参数α在不同数据集上的分类性能影响较不敏感。

图6 超参数对模型分类性能的影响

3 总结

针对传统基于采样的集成分类器存在泛化能力不足问题,本文提出了一种基于监督学习的分类器自适应融合方法AEC_SL,该方法采用高斯混合模型聚类算法对训练集样本进行划分,得到有监督的样本簇,然后在每个类簇上使用随机森林算法得到差异化的分类器,在此基础上通过融合近邻类簇相似度和基分类器局部适应度动态加权得到自适应性的分类器组合。 实验结果表明,本文提出的AEC_SL 方法比其他传统分类器集成算法具有更高的分类精度。 在未来工作中,我们将讨论如何降低高维数据集上的特征维度以降低模型中集成算法的训练时间,使得模型具有更好的高维数据分类能力。

猜你喜欢
高斯分类器聚类
一种傅里叶域海量数据高速谱聚类方法
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
基于知识图谱的k-modes文本聚类研究
一种改进K-means聚类的近邻传播最大最小距离算法
基于朴素Bayes组合的简易集成分类器①
基于模糊聚类和支持向量回归的成绩预测
数学王子高斯
基于AdaBoost算法的在线连续极限学习机集成算法
从自卑到自信 瑞恩·高斯林