基于改进SMOTE的制造过程不平衡数据分类策略

2022-08-19 08:31:58陈家兑吴永明宗文泽
计算机工程与应用 2022年16期
关键词:离群分类器聚类

黎 旭,陈家兑,吴永明,2,3,宗文泽

1.贵州大学 现代制造技术教育部重点实验室,贵阳 550025

2.贵州大学 机械工程学院,贵阳 550025

3.贵州大学 公共大数据国家重点实验室,贵阳 550025

制造业海量生产数据中存在较多不平衡数据。这些不平衡数据大多数是原材料配比异常、设备故障、零部件质量缺陷等生产异常所产生的数据。如在磷酸制造流程中,由于原料配比异常情况较为稀少所导致的总体数据分布不均衡,易造成原料配比监测系统对异常情况识别率偏低,最终影响产物品质。因此,对不平衡数据准确分类,进而指导生产、实现智能制造具有重要意义[1]。但是传统分类器旨在提高整体数据的分类准确率,而忽略对少数类样本的分类性能。然而在不平衡数据集中,数量较少的一类样本往往比其他类样本更具价值,错分类造成的代价更高。因此,提高对不平衡数据中少数类样本分类准确率已成为当下研究热点之一。目前,解决不平衡数据分类问题主要是算法和数据两个层面。算法层面主要是通过集成学习和代价敏感学习等优化分类模型;数据层面主要通过改变训练集中样本的分布和特征的选择来提高少数类的分类精度,其中数据过采样是数据层面最具代表性的方法之一[2]。

数据过采样是实现不平衡数据平衡的重要手段,主要通过增加少数类样本数量来提高少数类的分类性能,最简单的过采样方法是随机复制少数类,从而使数据达到平衡,但是单纯复制少数类,容易导致过拟合。为解决此类问题,Chawla 等[3]提出了合成少数过采样技术(synthetic minority oversampling technology,SMOTE),它是基于随机过采样算法的一种改进方案,该方案简单有效,能大幅度改善数据集的平衡性[4]。He 等[5]提出了一种基于样本分布改进的自适应过采样方法ADASYN(adaptive synthetic sampling method),能有效提升分类器分类性能[6]。Douzas 等[7]提出一种基于聚类[8]的过采样方法K-means SMOTE,该算法能有效解决类间和类内失衡问题[9],但其过采样结果很大程度上取决于Kmeans 聚类的效果,易放大少数类样本的误差,降低分类器的分类精度。

针对上述问题,本文提出一种结合改进的SMOTE和局部离群因子(local outlier factor,LOF)的过采样策略K-means SMOTE-LOF,通过公共数据集的性能测试,验证了算法的有效性。并利用本文算法对磷酸生产中的不平衡数据进行过采样,解决了磷酸生产过程中原料配比异常检测的问题。

1 相关工作

下面简单总结了SMOTE 方法、K-means SMOTE方法和LOF算法的基本原理及算法流程。

1.1 K-means SMOTE算法

SMOTE过采样算法是基于随机过采样的一种改进方案,该算法的基本思想是对少数类样本进行分析,并根据少数类样本人工合成新样本添加到数据集中。SMOTE 人工合成样本过程中,少数类样本在同类近邻样本中随机选择一个样本,在两样本之间进行随机插值,对每个少数类样本合成数量相同的样本。SMOTE合成的新样本融合了两个相邻样本的特征,与随机过采样相比,一定程度上增加了少数类样本的多样性,但是该算法在最近邻的选择上存在一定的盲目性,容易造成决策边界混淆的问题。K-means SMOTE过采样算法[7]是基于K-means 和SMOTE 的一种少数类过采样改进方案,旨在弥补SMOTE 算法的缺陷。该算法通过对整个样本空间进行K-means 聚类,避免在不安全区域合成样本,有效提高了少数类样本的分类准确率。相比于其他改进的SMOTE算法,K-means SMOTE更加简洁。实验结果表明,此方法能有效改善合成样本边缘化问题。

1.2 局部离群因子

局部离群因子(LOF)是一种基于密度的异常检测算法。Wang等[10]利用LOF结合边界判别噪声检测对噪声像素进行识别。Chen等[11]提出一种基于LOF的锂离子电池组电压故障检测方法,将模型的系统识别算法融合到离群点检测算法中,通过离群值滤波方法,计算局部离群因子值对故障电池进行检测。LOF 和多数算法的区别在于使用样本点与其邻域的密度比值来表示离群点程度,量化对象离群的程度,通过评价观测数据相对于相邻数据的局部偏差,利用局部异常因子描述参数的异常程度,而且通过样本的邻域计算密度,而不是全局计算,不会由于数据集中不同区域密度的分散情况不同而错误地将正常点判定为异常点[12]。

LOF算法具体步骤如下:

步骤1 计算样本p的第k距离dk(p)。

在样本空间C内,将两个样本p和o的距离记为d(p,o),样本p的第k距离记作dk(p),k为p的最近邻样本数目。

步骤2 计算p的第k距离邻域Nk(p)。

样本p的第k距离邻域为p的第k距离及以内的所有点,包括第k距离的点,即:

步骤3 计算样本p与o的可达距离rdk(p,o):

步骤4 计算局部可达密度lrdk(p):

步骤5 计算局部离群因子LOF:

局部离群因子表示为样本p的邻域Nk(p)的局部可达密度与点p的局部可达密度之比的平均数。这个比值越大于1,说明p的密度小于其邻域点密度,p越可能是异常点。

2 改进的K-means SMOTE-LOF

2.1 K-means SMOTE算法的局限性

K-means SMOTE 算法通过过滤簇群解决样本类内和类间不平衡问题,过滤少数类占比低的簇,在少数类主导的簇中进行样本合成。然而,K-means SMOTE方法仍存在三个待改进的点。

(1)决策边界混淆

如图1(a)所示,在样本生成中,如果少数类样本处在多数类样本集的分布边缘,则由此少数类样本和相邻同类样本产生的合成样本也会处于该边缘,且边缘化程度不断加剧,从而模糊了多数类样本与少数类样本的边界,使其边界的模糊程度不断升高。虽然数据集的平衡性得到了一定程度改善,但是加大了分类难度。由于SMOTE 算法只是简单地在线段之间合成新样本,线段关系过于单一,无法适应高维特征样本,合成样本中包含的少数类样本特征会随着维度的增加而减少,从而偏离潜在的真实样本。因此,在合成样本过程中参考更多的少数类样本,融合多个样本的特征是一种有效的解决方法。

图1 合成样本分布对比Fig.1 Synthetic sample distribution comparison

(2)过采样规模盲目

K-means SMOTE 算法在每个少数类样本上合成相同数目的新样本,忽视了样本的分类难度和分布情况差异。如果能充分利用少数类样本间的相似度信息,再以此决定合成样本的数目,将会进一步提高不平衡数据集的分类精度。

(3)合成样本离群点

过采样算法根据现有的样本,人工合成新样本,以此来提升分类模型效率。但是合成样本与真实样本之间并不完全相同,例如少数类与多数类边界合成的样本可能同时包含了多数类样本特征和少数类样本特征,导致合成的样本中出现离群点。全局样本分布不均衡会影响基于聚类的离群点检测算法的准确率,而基于密度的异常检测算法能有效解决失衡分布的问题[13]。

2.2 K-means SMOTE改进思路

针对2.1 节提出的三个缺陷,本文提出结合改进的SMOTE 和局部离群因子(LOF)的过采样策略,弥补了以上缺陷。

(1)针对合成样本边缘化和合成样本无法适应潜在的少数类特征问题,本文提出一种改进的SMOTE 过采样策略。令样本维度为n,根据最近邻距离使用轮盘赌算法随机选择n次最近邻样本,对每个维度单独进行随机插值,以此合成新样本。此外,为避免合成样本与原始样本重叠,引入Sigmoid函数来平滑新样本分布,使合成样本更多分布在原始样本之间的区域,防止过拟合。每个维度值按照式(5)进行合成:

其中,dimk为近邻样本的维度值,w为[-3,3]之间的随机实数。

在边界样本中,噪声样本数量远少于正常样本,因此通过融合多个边界同类样本的特征,可以降低合成样本中不同类样本特征的占比权重,如图1(b)所示,从而解决了合成样本混淆决策边界问题,使得合成样本更接近于同类样本集,扩宽分类器的决策区域。

改进的SMOTE算法的具体实现步骤如下:

(2)针对过采样规模盲目性的问题,本文采用Kmeans 聚类算法,根据聚类结果计算样本相似度,即少数类样本与其所属簇中心的距离(相似度越大,距离越小),每个少数类根据相似度调整合成样本数,相似度越大,合成样本数越多。理论上,聚类中心能最大程度上代表某一类的样本特征[8],因此使用样本与聚类中心的距离作为相似度信息是可行的。同时,对样本稀疏区域进行有约束的过采样,能够充分利用样本间的分布特征,维持少数类样本的原始分布特性。

过采样规模调整算法的具体实现步骤如下:

(3)对于合成样本误差的问题,本文引入LOF 算法来剔除离群值,通过计算每个少数类样本与合成样本的局部密度和邻域密度,判断合成样本的可信度。LOF算法通过计算样本点与其邻域密度的比值,能极大地降低样本分布不均衡的影响。

2.3 改进K-means SMOTE-LOF算法

改进的K-means SMOTE-LOF算法流程首先利用K-means 聚类对整个输入空间进行聚类,合成过程中,利用改进的SMOTE算法合成新样本,最后应用LOF对合成样本和少数类样本进行异常值检测,将合成样本和训练集共同训练分类器。具体实现步骤如下:

步骤1 计算待合成少数类样本数量:

其中,Nmaj和Nmin为簇内多数类与少数类样本数量;α为过采样率,当α=1 时,合成样本数等于多数类与少数类之差。

步骤2 对数据集X进行K-means 聚类,得到c个簇和聚类中心oi。

步骤3 计算每簇的不平衡率IR=Nmaj/Nmin,去除不平衡率大于不平衡阈值irt的簇。

步骤4 通过计算过滤后每簇少数类样本间的距离之和,得到每个簇的稀疏度sp:

步骤5 根据稀疏度计算每簇需要合成样本数量g:

步骤6 对每个簇,计算聚类中心oi与每个少数类的距离,根据距离计算每个样本需要合成数目r:

其中,d(xj,oi)为样本j与聚类中心oi的欧式距离。

步骤7 对每个需要合成样本的少数类样本,找到K个同类近邻样本。对样本的M维度,按照轮盘赌算法选择M次近邻样本,距离越近,选择概率越大。概率P为:

根据2.2节中式(5)合成样本。

步骤8 将合成样本加入整个少数类样本集中,利用LOF算法对此样本集进行异常值检测,删除离群因子值大于阈值的样本。

改进的算法在样本合成过程中,不同维度参考不同的同类样本,更加符合高维数据之间的样本关系,而不是简单的线性关系。算法流程如图2所示。

图2 算法流程图Fig.2 Algorithm flowchart

改进的K-means SMOTE-LOF 算法中,在数据集进行K-means 聚类和分配过采样权重过程中,仅计算样本点与聚类中心之间的欧式距离,其时间复杂度为O(l×k×n),l为迭代次数,k为簇数,一般l、k都可认为常量。在改进SMOTE 算法合成样本阶段,由于需要针对样本的每个维度进行单独插值,时间复杂度为O(d×n),d为数据维度,可认为常量。LOF 算法时间复杂度为O(n)[14]。因此,改进的K-means SMOTE-LOF算法总体时间复杂度为O(n),空间复杂度同为O(n)。

3 实验评价指标与参数设置

3.1 实验评价指标

在不平衡数据集中,用于评估分类器性能的各种评估指标并不完全适用。针对此类问题,专门提出了用于处理不平衡数据的评价指标[15]。分类评价指标是将每个样本的真实类别与预测类别进行比较,通过构建一个混淆矩阵来评估分类效果,如表1中行代表样本的真实类别,列代表分类算法的预测类别,其中正类为少数类,反类为多数类。TP、TN为预测正确的少数类和多数类样本数量;FN、FP为预测错误的少数类和多数类样本数量。

表1 混淆矩阵Table 1 Confusion matrix

精确值(precision)和召回率(recall)的计算公式如下:

本文采用F1-score、G-mean、AUC 作为分类效果的评价标准。F1-score为精确值和召回率的组合,只有当二者都比较大时,F1-score 值才能得到比较大的数值,因此它能有效衡量不平衡数据分类的效果,计算公式如下:

从式(13)可看出,只有当少数类样本分类精度和多数类分类精度都较大时,G-mean 值才能较大。因此,F1-score值和G-mean值常作为衡量数据集整体分类性能的评价指标。

不平衡分类还有一个十分常用的评价指标AUC值,即接收机工作特征曲线(receiver operating characteristic curve,ROC)下的面积,能客观反映对正样本、负样本综合预测的能力,还能消除样本倾斜对分类效果的影响。ROC 曲线是反映敏感度和特异度连续变量的综合指标,它的横坐标是假阳性率(false positive rate,FPR),纵坐标为真阳性率(true positive rate,TPR),两者计算公式如下:

通过调整分类器阈值,生成若干个点,点连线之后的曲线即是ROC 曲线,曲线下的面积即是AUC 值,AUC值越接近1,则代表分类结果越准确。

3.2 实验数据

本次实验从UCI 上下载了4 个数据集,4 个数据集的组成如表2 所示,其中目标类为少数类,其余类都合并为多数类[16]。

表2 实验数据的特征和分布Table 2 Features and distribution of experimental data

3.3 算法参数与性能测试

为验证改进的K-means SMOTE-LOF算法的有效性,应用SMOTE、ADASYN、K-means SMOTE 和Kmeans SMOTE-LOF算法分别在数据集中进行对比实验,并且与传统分类结果进行对比。分类器采用支持向量机(support vector machine,SVM),朴素贝叶斯(Naïve Bayes,NB)、决策树(decision trees,DT)。

实验中的算法参数如表3 所示,SMOTE 算法中的KNN最近邻搜索的最近邻数为5,过采样率为1,即合成样本数量为数据集中多数类样本数量减去少数类样本数量,输出的结果中少数类与多数类比例为1∶1。Kmeans SMOTE和改进的K-means SMOTE-LOF算法中K-means 聚类采用Mirzaei 等[16]初始点选择策略,即聚类簇个数设置为数据集中样本数开方后取整。初始中心点选择则依据与样本中心点的距离来选取,计算所有样本点与数据集中心点的欧氏距离并按降序依次排列,均匀地从降序排列的样本中抽出k个中心点作为初始中心点。误差阈值设置为0.01,最大迭代次数设置为200。LOF 算法中最近邻数设置为5,局部离群因子阈值设置为1.5,即离群因子超过1.5的样本点可认为是异常值[17-18]。

表3 算法参数Table 3 Algorithm parameters

3.4 实验结果及分析

上述四种过采样模型是不平衡数据分类预测中常用的模型,各种模型的性能各有优缺点。为客观比较各类方法和提升模型的泛化能力,防止模型过拟合,本文采用五折交叉验证得到最终实验结果,用原始数据样本的70%作为训练集,应用这一部分样本和合成的样本对分类器进行训练,余下30%样本作为测试集。为得到真实的实验结果,合成的数据样本只参与分类器的训练阶段,测试阶段的数据全为真实数据。

表4分别给出了四种方法在四个数据集上的F1-score值、G-mean值和AUC值,每行的黑色加粗的数字表示该行的最大值。由实验结果可知,本文提出的算法较其他对比算法表现更好,对于少数类分类更加准确,G-mean 值和F1-score 值相较其他方法提升了5%~8%。提高少数类分类的准确率往往会降低分类器对多数类分类的准确率,实验结果中,SMOTE 算法相较于ADASYN 算法表现更好,这是因为ADASYN 算法倾向于在多数类与少数类边界上合成更多的数据,对难分类的样本进行更多的训练,以此来提高分类精度。而Kmeans SMOTE算法在一些数据集上表现得比除本文方法外的其他算法更好,这主要是因为K-means SMOTE算法能够消除类间和类内不平衡,在一定程度上,Kmeans SMOTE 算法在K-means 聚类和过滤簇群的过程中去除了原始数据中的异常点和离群点,因此分类准确率得以提高。本文算法继承了K-means SMOTE 算法上述优点,又在此基础上改进了SMOTE算法,参考了更多的少数类样本,使得合成样本更加合理。此外,在合成样本之后,对合成样本再进行去除异常点和离群点的操作,最大程度降低合成样本的误差,更好地训练分类器模型。

表4 不同过采样算法的实验结果Table 4 Experimental results of different oversampling algorithms

4 实例验证

4.1 磷厂原料数据

磷酸生产过程是用无机酸分解磷矿粉,分离出粗磷酸,再经净化后制得磷酸产物,原料配比异常会导致毒性元素进入溶液,引起催化剂快速失活,从而造成前处理脱除效果不佳,残留杂质过多,对磷酸制备过程和下游产品质量均有较大影响[19]。因此,监控生产过程中原料配比是否异常,分析异常数据具有重要意义。

实验研究对象选择了某集团硫酸分解制取磷酸工艺数据,数据由1 440组磷矿浆流量、催化剂流量和稀磷酸流量组成,其中原料配比异常的数据有140组,如表5所示。

表5 原料配比的影响Table 5 Influence of raw material ratio

4.2 实验结果

合成数据分布情况如图3所示,蓝点依次为SMOTE算法、ADASYN算法、K-means SMOTE算法及改进的K-means SMOTE-LOF算法合成样本,皆为数据配比不均数据,黄点为正常数据。可以看出,原始数据中正常原料配比样本与异常原料配比样本边界混淆。由图3可知,SMOTE合成的样本具有盲目性,没有针对少数类样本分布的特点进行合成,而ADASYN 算法合成的样本集中于多数类样本与少数类样本重合区域,这一类合成的样本同时包含多数类与少数类的特征,训练过程难以识别,导致分类效果不佳。K-means SMOTE算法在合成样本之前将包含少数类特征的样本识别并限制其合成样本,很大程度上减少了合成样本的误差,但是合成的样本更加密集,在分类时容易导致过拟合,模型的泛化能力下降。而改进的K-means SMOTE-LOF合成的样本参考更多的原始样本,从而使得合成样本分布更为合理。

图3 不同过采样策略合成数据分布Fig.3 Synthetic data distribution with different oversampling strategies

不同算法实验结果对比如图4 所示。由图4 可知,NB 和LR 分类器中,未处理数据集的查准率(precision)为1,而查全率(recall)仅有0.2,表明不存在多数类样本被预测为少数类,而大量的少数类样本被预测为多数类,这是由于多数类样本和少数类样本在数量上的倾斜,以总体精度为目的的分类模型往往会忽略少数类,造成少数类分类精度较低。图4 显示F1-score 指标和G-mean指标中,改进的K-means SMOTE-LOF算法表现突出,说明该算法能在不降低分类器预测多数类的准确率前提下显著提升分类器对少数类预测的性能。同时,改进的K-means SMOTE-LOF 算法相对于其他算法AUC 值提升最大,说明在所有分类器上本文提出的算法均取得最佳效果。此外,经过采样处理后,SVM、NB、Adaboost、DT、LR 模型对原料配比不均数据AUC值分别提升为14.00%、19.85%、11.76%、4.73%、31.37%。

图4 不同算法对实验数据的性能Fig.4 Performance of different algorithms on experimental data

5 结束语

本文针对现有过采样算法存在样本合成过程中误差大及合成样本边缘化的问题,提出了一种基于局部离群因子和改进的K-means SMOTE 的不平衡数据分类算法。通过公共数据集验证了本文算法的可行性和优越性,最后以磷酸生产数据为例,对原料配比不平衡数据进行分类实验,并与SMOTE、ADASYN 和K-means SMOTE 算法的分类结果进行对比,结果表明本文算法在合成样本可信度和对少数类数据预测上更具有优势,能对生产中的不平衡数据进行有效分类。

猜你喜欢
离群分类器聚类
BP-GA光照分类器在车道线识别中的应用
电子测试(2018年1期)2018-04-18 11:52:35
基于DBSACN聚类算法的XML文档聚类
电子测试(2017年15期)2017-12-18 07:19:27
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
离群数据挖掘在发现房产销售潜在客户中的应用
基于改进的遗传算法的模糊聚类算法
离群的小鸡
一种层次初始的聚类个数自适应的聚类方法研究
应用相似度测量的图离群点检测方法
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别