【目的】解决二分类任务中因类间数据不平衡导致少数类分类准确度低的问题。【方法】提出一种基于模糊C-均值聚类的欠采样集成不平衡数据分类算法(ECFCM), 即对多数类样本进行基于 FCM聚类的欠采样, 将聚类中心样本与全部少数类样本组成平衡数据集; 利用基于Bagging的集成学习算法对平衡数据集进行分类。【结果】在4组不平衡数据集上的Matlab仿真实验结果表明, ECFCM算法的Acc、AUC和F1提升幅度最高为5.75% (Spambase), 13.84% (Glass2)和7.54% (Spambase)。【局限】本文采用标准数据集验证ECFCM算法的有效性, 当采用实际应用中的不平衡数据时, 需要有针对性地研究不平衡数据分类算法。【结论】ECFCM算法分类性能良好, 在一定程度上有利于提高不平衡数据中少数类的分类准确度。
[Objective] This paper tries to solve the problem of the low accuracy of minority classification in the binary classification task due to class imbalance. [Methods] An under-sampling ensemble classification algorithm based on fuzzy c-means(FCM) clustering for imbalanced data is proposed. That is, the majority class samples are under-sampled based on FCM clustering, all these cluster center samples and all the minority samples are made up to a balance data set. We use the integrated learning algorithm based on Bagging to classify the balanced data sets. [Results] The Matlab simulation results of experiments on four imbalanced datasets show that the ECFCM algorithm improves Acc, AUC and F1 by up to 5.75%, 13.84% and 7.54%. [Limitations] Some standard data sets are used to verify the effectiveness of ECFCM. When in a specific application, a targeted research on classification algorithm is needed. [Conclusions] The ECFCM algorithm performs good to a certain extent, which is conducive to improve the binary classification accuracy of the minority class on imbalanced datasets.
分类是机器学习领域重要的研究方向之一。传统的分类算法能够很好地处理平衡数据分类问题, 并且以分类总体准确度作为评价标准。然而, 实践中不同类之间的样本数量往往是不平衡的, 如医疗诊断[1]、软件缺陷预测[2]、信用卡欺诈交易监测[3]、情感分析[4]、客户流失预测[5]等, 在这些领域, 人们往往更关注少数类样本的分类结果。由于少数类的样本更容易被分类器错分, 一旦错分将对分类器的准确度产生重要影响。以二分类问题为例, 假设数据集中类间的样本数量之比为1:99, 如果以整体分类准确度为标准, 则分类器更倾向于样本数量较多的多数类, 虽然计算得出的准确度达到99%, 但是这样的分类结果显然毫无意义。因此, 设计一种优化的分类算法对不平衡数据分类显得尤为重要。
模糊C-均值聚类(Fuzzy C-Means clustering, FCM)是根据研究对象自身的属性特征构造模糊矩阵, 根据计算出的隶属度确定分类关系的聚类方法。模糊C-均值聚类算法具有分类简单、分类精度高等优点。本文从数据预处理的角度, 采用模糊C-均值聚类算法对不平衡数据进行欠采样, 以期得到平衡数据, 利用集成学习算法提高少数类的分类准确度。基本思路是在不平衡数据集上, 使用模糊C-均值聚类算法对多数类样本进行聚类欠采样, 将全部聚类中心点样本与全部少数类样本组成、平衡数据集。利用基于Bagging的集成学习算法对平衡数据集进行分类, 最终获得较好的分类性能。
针对不平衡数据中少数类分类准确度低的问题, 国内外学者展开了相关研究工作。主要的解决思路分为4个层面: 基于数据层面、基于算法层面、基于成本敏感层面和基于集成学习层面。Galar等[6]对常见的不平衡数据分类算法进行比较, 证明了数据预处理与集成学习相结合的方法分类性能最优。鉴于此, 本文提出基于模糊C-均值聚类的欠采样集成不平衡数据分类算法, 该算法属于数据层面的一种处理方法。
基于数据层面的处理方法, 研究思路是不改变初始数据集样本的空间分布, 增加少数类样本[7]或减少多数类样本[8], 从而将不平衡数据转化为近似平衡数据。众多实验表明, 数据重采样中欠采样比过采样更具有优势[9], 这是由于过采样可能会导致过拟合问题, 从而影响分类效果。因此, 本文采用欠采样方法对样本进行重采样。
欠采样方法的目的是减少多数类中的样本数量, 使得采样后的多数类样本数量与少数类样本数量基本相同, 从而降低或消除因类间样本数目不平衡对传统分类器的不利影响。在已有的欠采样方法中, 最简单的是Batista等[10]提出的随机欠采样方法, 该方法的思路是在多数类中随机抽取部分样本, 与全部少数类组成平衡训练集。该方法的不足在于, 采样过程可能会损失部分含有重要分类信息的多数类样本, 从而导致决策边界的失真。为了降低或避免在欠采样过程中多数类信息的损失, 提高分类器的性能, Zhang等[11]提出基于KNN的4种欠采样方法: NearMiss-1, NearMiss-2, NearMiss-3和MostDistant。NearMiss方法的处理思路是选择与少数类邻近的多数类样本训练决策边界。Cateni等[12]提出基于相似性的欠采样方法, 该方法可以在得到平衡数据集的同时减少样本信息的损失。Ha等[13]提出基于遗传算法的不平衡数据欠采样方法, 将分类性能作为遗传算法的适应度函数, 在一定程度上可以解决分类算法性能不稳定问题, 同时降低多数类信息损失。以上算法大都涉及对多数类执行多轮随机欠采样, 相关实验较为复杂。
针对上述研究存在的问题, Kocyigit等[14]提出一种基于FCM的欠采样方法, 即利用半监督模糊C-均值算法在数据集内部进行聚类, 选取距离聚类中心最近的属于多数类的样本, 与全部少数类样本组成平衡数据集, 分别利用SVM、LDA和NB分类器对5种图片不平衡数据集进行分类, 该采样方法简单并取得了良好的分类效果。该研究的不足之处在于选取的3种强分类器训练代价较高, 且所选取的5种不平衡数据集的不平衡率均小于5, 并未验证在不平衡率大于等于5的数据集上的分类效果。
本文将基于模糊C-均值聚类的欠采样方法与集成学习算法进行融合, 提出基于模糊C-均值聚类的欠采样集成不平衡数据分类算法(under-sampling Ensemble Classification algorithm based on Fuzzy C-Means clustering for imbalanced data, ECFCM), 以提高不平衡数据中少数类的分类准确度。
FCM算法起源于“硬”聚类目标函数的优化过程。借助于均方逼近理论, 人们构造出带约束条件的非线性目标规划函数, 从而将聚类问题转化为非线性目标规划问题进行求解。因此, 类内平方误差和(Within-Groups Sum of Squared error, WGSS)
设$X=\{{{x}_{1}},{{x}_{2}},\cdots ,{{x}_{n}}\}$为
$J_{FCM}^{m}(U,A,X)=\sum\limits_{i=1}^{c}{\sum\limits_{j=1}^{n}{\mu _{ij}^{m}}}d_{ij}^{2}=\sum\limits_{i=1}^{c}{\sum\limits_{j=1}^{n}{\mu _{ij}^{m}}}\left\| {{x}_{j}}-{{\alpha }_{i}} \right\|$ (1)
${{\mu }_{ij}}$满足公式(2)所示的约束条件:
$\begin{align} & \sum\limits_{i=1}^{c}{{{\mu }_{ij}}}=1\ \ (1\le j\le n) \\ & {{\mu }_{ij}}\ge 0\ \ (1\le i\le c,1\le j\le n) \\ \end{align}$ (2)
其中, $U=\{{{\mu }_{ij}}\}$表示$c\times n$阶矩阵, $A=\{{{\alpha }_{1}},{{\alpha }_{2}},\cdots ,{{\alpha }_{c}}\}$表示$s\times c$阶矩阵,
${{\alpha }_{i}}=\frac{\sum\limits_{j=1}^{n}{{{({{\mu }_{ij}})}^{m}}{{x}_{j}}}}{\sum\limits_{j=1}^{n}{{{({{\mu }_{ij}})}^{m}}}}$ (3)
${{\mu }_{ij}}=\frac{1}{\sum\limits_{k=1}^{c}{{{\left( \frac{{{d}_{ij}}}{{{d}_{kj}}} \right)}^{\frac{2}{m-1}}}}}$ (4)
由此可知, FCM算法是通过动态更新聚类中心矩阵和隶属度矩阵, 从而实现分类的过程。大量实验证明, FCM算法可以从任一给定的初始点开始, 沿着某个迭代子序列收敛于目标函数
定义1 (分类数据样本): 约定由一组属性值和一个类标签共同描述的数据集合为分类数据样本, 表示为$x=({{x}_{1}},{{x}_{2}},\cdots ,{{x}_{m}},y)$。其中$({{x}_{1}},{{x}_{2}},\cdots ,{{x}_{m}})$表示数据样本的属性向量,
定义2 (平衡数据集、不平衡数据集): 给定一个数据集$d=\{{{x}^{i}},{{y}^{i}}\}_{i=1}^{n}$, 其中${{d}_{1}}=\{{{x}^{i}},0\}_{i=1}^{{{n}_{1}}}$表示类标签为0的分类数据子集, ${{d}_{2}}=\{{{x}^{i}},1\}_{i=1}^{{{n}_{2}}}$表示类标签为1的分类数据子集,
(1) 基于模糊C-均值聚类的欠采样过程
ECFCM算法主要有两个过程: 首先, 利用FCM算法对多数类样本进行聚类欠采样, 将
相比于随机欠采样, 基于模糊C-均值聚类的欠采样能够在减少多数类样本数量的同时, 尽可能避免多数类数据样本信息丢失。欠采样过程描述如下:
输入: 不平衡数据集$d$
输出: 平衡数据集${d}'$
初始化: ${d}'=\varnothing $, ${{d}_{2}}=\varnothing $,$k=0$
For ${{x}^{i}}\in d$
If ${{y}^{i}}=0$
${d}'={d}'\bigcup \{{{x}^{i}}\}$
Else
${{d}_{2}}={{d}_{2}}\bigcup \{{{x}^{i}}\}$
EndIf
$k=card({d}')$
${{{d}'}_{2}}=fcm-Cluster(k,{{d}_{2}})$
${d}'={d}'\bigcup {{{d}'}_{2}}$
EndFor
上述伪代码描述了基于模糊C-均值聚类的欠采样过程。在欠采样过程中, 首先将数据样本集合划分为少数类样本集合与多数类样本集合; 其次对多数类样本进行聚类, 将得到的聚类中心点与全部少数类样本组成平衡数据集。经过欠采样后, 要保证多数类的样本数量与少数类的样本数量平衡, 因此将多数类样本聚类的数目设置为少数类样本数目。
经过模糊C-均值聚类的多数类样本数量虽然减少, 但数据的空间分布特征并未改变, 聚类前与聚类后数据的空间分布如图1和图2所示。基于模糊C-均值聚类的欠采样是利用聚类方法在数据空间分布特征不变的前提下, 使得类间数据由不平衡转化为平衡。集成分类过程则是基于集成学习算法在平衡数据上进行规则学习, 从而输出分类模型。
(2) 集成学习训练过程
学习主要有两种, 即基分类器之间不存在强依赖关系, 可以并行生成分类模型, 以及基分类器之间存在强依赖关系, 必须串行生成分类模型, 前者典型代表是Bagging算法, 后者典型代表是Boosting算法[18]。由于Boosting算法在一些实际问题的处理中会导致过拟合(Over-fitting)问题, 可能得到比单个分类器更差的分类结果[19], 而Bagging算法则可以较好地避免此类问题, 因此本文选用Bagging算法作为集成学习的分类器。
Bagging实现的步骤为: 给定一个基分类器和
(3) 集成学习测试过程
假设基分类器的计算复杂度为
当基分类器是决策树时, 包外样本可用于估计决策树中各节点的后验概率, 并对零训练样本节点进行辅助处理。在经典分类算法中, KNN是一种时间复杂度较低的算法, 常用于Bagging集成学习[20]。基于上述考虑, 本文选择Decision-Stump与KNN作为集成学习算法中的基分类器。
在对ECFCM算法进行验证时, 为了保证实验客观性, 采用10折交叉验证方法进行验证, 即将数据集中的数据随机分为10等份, 取其中9份作为训练集, 1份作为测试集依次进行实验, 对应的10次实验结果的平均值作为1次10折交叉验证的最终结果。
为了检验ECFCM算法处理较小不平衡率(不平衡率小于5)、较大不平衡率(不平衡率大于5)数据时的有效性, 选取UCI①(①http://archive.ics.uci.edu/ml/datasets.html.)、KEEL②(②http://www.keel.es/.)共4组不平衡数据集进行Matlab 仿真。4组不平衡数据集属性如表1所示。
约定在不平衡数据集中少数类样本为
分类器的整体准确度计算如公式(5)所示。
$Acc=\frac{TP+TN}{TP+TN+FP+FN}$ (5)
分类器的查全率, 也称为小类准确度或者正准确度, 其计算如公式(6)所示。
$TPR=Recall=MIA=\frac{TP}{TP+FN}$ (6)
分类器的查准率, 也是小类样本的查准率, 其计算如公式(7)所示。
$Precision=\frac{TP}{TP+FP}$ (7)
$F\mathrm{-}measure=\frac{(1+{{b}^{2}})\times Recall\times Precision}{{{b}^{2}}\times Recall+Precision}$ (8)
ROC曲线是以假正率(
实验环境为64位Mac OS Sierra操作系统, 8GB内存, Intel Core i5处理器, 使用Matlab R2017a进行仿真实验, 数据预处理采用Classification Learner应用程序包。
通过仿真实验, 比较Decision-Stump算法、KNN算法、基于Decision-Stump的Bagging算法、基于KNN的Bagging算法的分类性能。其中, 前两者属于传统分类算法, 后两者属于基于基分类器的集成分类算法。实验结果如表3至表6所示。表中加黑数字表示该性能指标最优的实验结果。
利用ECFCM算法进行分类, 算法的Acc、AUC和F1值平均提升最高达5.75%(Spambase), 13.84% (Glass2)和7.54% (Spambase)。在Segment0和Glass2数据集上, 算法的Acc值有所下降, 下降幅度分别为0.26%和9.84%。分析可知, 这是由于两个数据集的不平衡率分别为6.02、11.59, 数据集的不平率越大, 在多数类中进行欠采样时丢失的有效样本就越多, 例如处于分类边界的数据样本的丢失会影响分类结果, 从而导致分类准确度下降。
相比于4组不平衡数据, ECFCM算法在4组平衡数据集上的AUC、F1值平均提升5.88%和2.73%。在平衡数据集上, Bagging(Decision-Stump)算法相比于其他三种算法在三种指标上表现更优, 可见Bagging (Decision-Stump)算法更适合于对少数类样本进行分类; 同时, Decision-Stump和Bagging (Decision-Stump)算法的F1值均高于不平衡数据集上各自的F1值, 说明ECFCM算法能够提高少数类样本的查全率和查准率, 即对少数类样本的分类效果较好。
综上, ECFCM算法可以有效地提高不平衡数据分类的综合性能, 特别是在不平衡数据的不平衡率小于5时, 对提高少数类样本的分类性能效果明显, 证明了ECFCM算法在不平衡数据分类中的可行性和有效性。
针对二分类任务中因类间数据不平衡导致少数类分类准确度低的问题, 本文结合模糊C-均值聚类算法、集成学习算法, 提出一种基于模糊C-均值聚类的欠采样集成不平衡数据分类算法——ECFCM。借助Bagging集成学习算法在不平衡数据分类中的优势, 利用4组UCI、KEEL不平衡标准数据集进行Matlab仿真实验。结果表明, 在不平衡率小于5的数据集上(Spambase和Ionosphere), ECFCM算法的Acc值有所提升; 在不平衡率大于5的数据集上(Segment0和Glass2), ECFCM算法的Acc值有所下降, 分析原因可能是对多数类进行基于模糊C-均值聚类的欠采样时丢失了较多有效样本, 而这些样本包含重要的分类信息。ECFCM算法在4组数据集上的AUC、F1值较已有算法有较明显的提升, 证明了ECFCM算法在不平衡数据分类中可以提高少数类样本的分类准确度。本文只采用标准数据集对ECFCM算法的分类性能进行验证, 实际应用中的数据集更加复杂, 例如极端不平衡数据、多类别分类问题等, 如何处理此类问题将是下一步研究的重点。
肖连杰: 提出研究思路, 设计研究方案, 起草并修改论文;
肖连杰, 郜梦蕊: 数据收集、仿真实验;
苏新宁: 论文修改。
所有作者声明不存在利益冲突关系。
支撑数据由作者自存储, E-mail: 1061939301@qq.com。
[1] 肖连杰. 数据集. rar. UCI数据集及KEEL数据集.
[2] 肖连杰. 算法. rar. ECFCM算法.
版权所有 © 2015 《数据分析与知识发现》编辑部 地址:北京市海淀区中关村北四环西路33号 邮编:100190 电话/传真:(010)82626611-6626,82624938 E-mail:jishu@mail.las.ac.cn |