KPCA-Based Under-Sampling Algorithm for Unbalanced Data
The unbalanced data in the real classification task are mostly characterized by nonlinear distribution, and the traditional sampling method is not good at dealing with this kind of nonlinearity resulting in unsatisfactory sample classification effect. Aiming at this problem, an under-sampling method based on KPCA is proposed. The method maps the original data to a suitable high-dimensional space to make it linearly divisible by nonlinearly transforming the kernel function, and de-redundantly removes the majority class by calculating the scores of individual samples on the kernel principal components in order to achieve the purpose of under-sampling. After the under-sampling preprocessing of nine datasets with different balance rates, the classification is performed using Logistic Regression classifier model. The experimental results show that the algorithm of this paper obtains the highest evaluation metrics under Accuracy, F1-measure and AUC value scores under 7, 8 and 9 groups of datasets, respectively, which shows that the method has a good classification performance on unbalanced datasets.
Unbalanced Data
随着大数据技术的发展,数据的体量在飞速地增长。如何在海量的数据中精准、高效地挖掘有价值的信息是非常重要的。由于数据的多样性和复杂性,会出现许多不平衡数据,即在统计样本或数据集中不同类别的样本数量存在严重的不均衡情况。在二分类数据中,一种类别的样本数量远远大于其他类别的样本数量一般称为“多数类”,而其他类别则称为“少数类”。在实际应用中普遍存在不平衡数据分类问题,如:信贷评估
目前对不平衡数据进行分类的处理包括两个层面:算法层面和数据层面
欠抽样是通过剔除部分多数类样本来保持数据平衡的。文献
1992年核函数成功应用到了SVM中,核函数的重要性被人们所了解。1998年,B. Schokopf等人
基于不平衡数据的非线性问题,本文从数据层面出发提出一种基于KPCA的欠抽样算法。将原始数据在非线性核函数映射的作用下变成高维空间中线性可分的数据,通过计算核矩阵并求解其特征值和相应的特征向量以及核主成分,进而将高维空间中的数据在核主成分上进行投影得出样本的综合评分,最后按照评分对多数类样本进行排名并删除排名靠前且相似度高的多数类样本从而达到欠抽样的目的,余下的多数类样本与少数类样本相组合可达到相对平衡的状态进而最大化的降低非平衡数据集的不平衡率。
核方法的基本原理
在本文的实际应用中采用了以下三种核函数,具体形式如下:
1) 多项式核函数
(1)
其中 ,d是整数,均为自定义参数。当参数d较小时,此函数的外推能力较强,但随着d的增大,外推能力则逐渐变弱。
2) 高斯径向核函数
(2)
其中 是自定义的高斯核函数的带宽参数。它决定了高斯分布的标准差,即控制了核函数的平滑程度和波动范围。
3) 多层感知机核函数
(3)
其中b,c是自定义参数。
核主成分分析的核心思想
实现过程为:若样本集合中有n个样本点,用两者的内积 表示R中的两个数据 和 在H空间的距离。假设H空间中的样本 已经中心化,即
(4)
则在H空间中进行主成分分析,通过计算协方差矩阵
(5)
求得满足 的特征值 以及相应的特征向量 。
(6)
通过定义
的核矩阵K
(7)
此外,当假设 不成立时,只需将矩阵K调整为
(8)
其中 。
本文采用基于KPCA的欠抽样算法对不平衡数据进行预处理,以便可以初步帮助解决传统方法不善于解决现实任务中的非线性问题。经此算法预处理后的数据最大可能达到多数类与少数类相对平衡的状态。基于KPCA欠抽样算法的实现步骤如下:
1) 建立初始样本矩阵
设有m个待评价样本,n个属性特征。假设第i个样本在第j个属性下的取值为 ,建立初始矩阵S为:
初始样本矩阵归一化处理:
(9)
2) 依据数据特点选取核函数及核参数
选择与样本数据特点贴切的核函数并设置相对最优的参数值将R空间数据映射到H空间中,可得到核矩阵K,其中 , 和 代表矩阵 的第i行和j列所对应的数。
3) 中心化核矩阵
中心化后的核矩阵记为 ,其中元素表达式为 , 为核矩阵中所有元素是均值。
4) 求解特征值和特征向量
对中心化的核矩阵 利用 进行特征分解,得到核矩阵 的特征值 和相应的特征向量 。
5) 确定特征空间的维数t
t满足下式的最小值
(10)
6) 计算样本点X的主成分
(11)
其中, 为特征向量 的第j个元素, 为数据点X的第k个主成分。
7) 计算样本主成分因子得分
其中, , 将原始样本数据点投影到主成分上,得到相应的投影坐标值即为样本主成分因子得分。 表示为对于第i个样本数据点在第j个主成分上的因子得分。
8) 最终得出每个样本的得分
样本得分为主成分因子得分的线性组合, ,其中, 是主成分因子得分, 是每个主成分的权重系数,用来表达主成分在样本的综合得分中的贡献程度。
9) 根据每个样本评分 对样本进行降序排列并删除前r个多样本数据来达成欠抽样的目的。其中,r为多数类与少数类个数差。
算法流程图如
本文为验证基于KPCA欠抽样算法在不平衡数据集上的分类效果,使用UCI数据库中9组数据集进行实验,这9组数据集的不平衡度呈递增形式且范围由1.79%~33.74%,实验数据集信息如
编号 | 数据集 | 样本总数 | 属性 | 多数类样本数 | 少数类样本数 | 不平衡度/% |
1 | Ionosphere | 351 | 34 | 225 | 126 | 1.79 |
2 | QSAR | 1055 | 41 | 699 | 356 | 1.96 |
3 | German Credit | 1000 | 24 | 700 | 300 | 2.33 |
4 | Wall-following_1 | 5456 | 24 | 4630 | 826 | 5.61 |
5 | Steel-plates_1 | 1941 | 27 | 1751 | 190 | 9.22 |
6 | Steel-plates_0 | 1941 | 27 | 1783 | 158 | 11.28 |
7 | Wall-following_3 | 5456 | 24 | 5128 | 328 | 15.63 |
8 | Thyroid_1 | 3772 | 21 | 3581 | 191 | 18.74 |
9 | Ozone | 2536 | 72 | 2463 | 73 | 33.74 |
本文采用五折交叉验证方法进行实验,即将每个数据集划分为5份,选取4份作为训练集,1份作为测试集,每个数据集重复实验5次,实验5次并以平均值作为最终的评价结果。分类器采用线性回归模型中的Logistic Regression模型。本文实验包括3种情况,具体如下:
1) 原始数据不进行欠抽样预处理,仅使用Logistic Regression分类器模型对不平衡数据集进行分类。
2) 采用随机欠抽样算法对原始数据进行预处理,再利用Logistic Regression分类器模型对预处理后的不平衡数据集进行分类。
3) 采用本文提出的基于KPCA的欠抽样方法对不平衡数据集进行预处理,再利用Logistic Regression分类器模型对预处理后的不平衡数据集进行分类。
本文采用基于混淆矩阵分析的方法来对不平衡数据集分类器性能进行评价。此方法在当少数类样本远小于多数类样本时,可以适当减少分类器把所有的样本都分类为多数类。因此,本文采用准确率(Accuracy)、F1-measure和AUC值作为评价指标测试3种实验情况的分类结果。
预测值 | 计数 | |||
Positive | Negative | |||
真实值 | Positive | TP | FN | P |
(True positive) | (False Negative) | |||
Negative | FP | TN | N | |
(False Positive) | (True Negative) |
1) Accuracy:所有结果中,预测正确的结果所占的比例,计算公式为:
(12)
2) F1-measure:综合了查准率(Precision)和召回率(Recall),是他们的调和平均,用来反应模型的稳健性,计算公式为:
(13)
3) AUC:AUC
ROC曲线是受试者特征曲线(Receiver Operating Characteristic Curve)是一种用于反映诊断检查方法敏感性和特异性特征的曲线图。ROC曲线的纵轴是真正例率(Ture Positive Rate,简称TPR)公式为:
(14)
横轴是假正例率(False Positive Rate,简称FPR)公式为:
(15)
实验分析了三种情况的Accuracy、F1-measure、AUC。
由
为了更好的观察对比
DataSet | Accuracy | F1-measure | AUC | ||||||
DTC | RUS | KPCA | DTC | RUS | KPCA | DTC | RUS | KPCA | |
Ionosphere | 0.8592 | 0.8553 | 0.8868 | 0.8958 | 0.8608 | 0.9118 | 0.8945 | 0.8968 | 0.9446 |
QSAR | 0.8107 | 0.7804 | 0.8364 | 0.6591 | 0.7707 | 0.8548 | 0.8931 | 0.8632 | 0.8987 |
German Credit | 0.7600 | 0.7611 | 0.7667 | 0.5200 | 0.7485 | 0.7879 | 0.8130 | 0.8359 | 0.8430 |
Wall-following_1 | 0.8638 | 0.8327 | 0.8617 | 0.3890 | 0.8421 | 0.8431 | 0.8681 | 0.8848 | 0.8879 |
Steel-plates_1 | 0.8823 | 0.8684 | 0.8947 | 0.8167 | 0.8673 | 0.900 | 0.9449 | 0.9458 | 0.9495 |
Steel-plates_0 | 0.9451 | 0.7895 | 0.8438 | 0.9713 | 0.7872 | 0.8333 | 0.9317 | 0.8754 | 0.9326 |
Wall-following_3 | 0.9224 | 0.9087 | 0.9316 | 0.4800 | 0.9062 | 0.9384 | 0.9565 | 0.9589 | 0.9643 |
Thyroid_1 | 0.6468 | 0.6522 | 0.6609 | 0.6593 | 0.6721 | 0.6777 | 0.7158 | 0.7112 | 0.7264 |
Ozone | 0.8630 | 0.8636 | 0.8636 | 0.8523 | 0.8421 | 0.8636 | 0.8920 | 0.9146 | 0.9250 |
本文通过对传统的欠抽样算法不擅长处理的不平衡数据具有的非线性问题进行研究:提出一种基于KPCA的欠抽样算法,根据得到的样本评分进行剔除评分较高的多数类样本,使不平衡数据集的不平衡率尽可能的降低。在此基础上,将9组不同非平衡率的数据集进行欠抽样处理后,采用Logistic Regression分类器模对预处理后的不平衡数据集进行分类预测。实验结果显示,与现有的欠抽样方法相比,本文方法在Accuracy、F1-measure值和AUC值三个方面都有显著提升。然而,在某些数据集中,本文方法在特征提取阶段可能会导致多数类样本的关键信息被删除,从而降低了分类器的整体分类准确度。因此,解决这一问题将成为下一步研究的重点。
本文得到了国家自然科学基金项目(32070669)和唐山市人才资助项目(16013601)的支持。
*通讯作者。