多重筛选的随机森林不平衡特征选择算法研究
2021-11-29王红霞汪楷翔
王红霞,汪楷翔
(沈阳理工大学 信息科学与工程学院,沈阳110159)
工业传感器所采集的数据集为典型的高维不平衡数据集,本文以工业冲压机温度传感器、压力传感器、三相电传感器等数据集为实验对象,针对随机森林算法对不平衡数据的特征选择与分类问题进行优化。
分类算法包括随机森林、朴素贝叶斯、决策树、K近邻算法、支持向量机算法等。这些分类算法通常假设数据集合中每个类别数量相同,即数据是平衡的。但在现实中,如工业生产过程中大部分时间设备运行为正常状态,故传感器采集到的正常数据要远远大于异常数据。少数类数据量非常少,多数类数据数量非常多,数据是非常不平衡的。本文实验使用的冲压机传感数据集大小为10000条,特征维度为15维,且少数类数据占比不到15%,数据集非常容易发生过拟合的现象。因此针对不平衡数据集研究效率较高的特征选择算法非常必要。
文献[1]中提出针对非平衡数据改进的随机森林分类算法,通过对抽样结果增加约束条件来改进装袋(bagging)重抽样方法,减少抽样对非平衡性的影响。但此方法必须保证每次抽到的少数类样本至少要占总体少数类样本的2/3,约束条件过于严格。文献[2]提出了基于混合采样策略的改进随机森林分类算法,但其算法过采样参数和欠采样参数均随机生成,算法存在较高的不稳定性。文献[3]提出了通过改进网格搜索的随机森林参数优化,其优化方式仅在决策树的数量以及分裂属性上增强,对数据集没有进行改进。文献[4]提出了一种非平衡数据分类的过采样随机森林算法,通过合成人造样本改变数据集不平衡性,但未考虑到对高维特征进行筛选处理。本文提出基于多重筛选的随机森林优化算法,既考虑到数据的不平衡问题,又兼顾到特征筛选问题,增加算法稳定性。算法引入特定因子欠取样、相关系数分析及最大互信息系数(Maximal Information Cofficient,MIC),在平衡处理后的训练数据集经过两层筛选完成随机森林算法的性能优化。最后采用准确率、精确率、召回率以及G-mean系数作为衡量算法性能的评价指标。实验结果表明本文提出的算法准确率、精确率、召回率以及G-mean系数更高。
1 随机森林理论
随机森林算法引入重采样方法,数据集中重复且有放回地取出不同个样本数据生成新的训练数据集,此过程为迭代过程,重复以上过程,生成许多棵决策树共同学习。集成学习是使用多棵树组合解决单棵树预测精度不高的问题。其原理是生成多种模型,对每棵树的预测结果进行投票选举,选举出最好的结果,因此集成学习的分类精度会更高,效果更好。
随机森林算法属于集成学习分类的一种,相对于单一学习器效率更高,每棵树都筛选了一部分的样本数据集和特征,因为每棵子树只选择部分特征,所以不易产生过拟合现象。该算法适用于特征多的高维数据集,得出的算法方差较小,泛化能力强。但是随机森林算法的缺点也较为明显,如果数据集含有较多的冗余特征和噪声数据,则算法的效果不理想,在不平衡数据集上对于样本量较小类的分类效果亦不理想。因此保留随机森林的优点并优化随机森林的缺点具有较大研究意义。
2 多重筛选的随机森林算法
针对随机森林算法的缺陷以及前人对随机森林算法优化存在的不足,本文提出基于多重筛选的随机森林优化算法,在数据不平衡问题以及特征选择问题两个方面对训练数据集进行优化,应用本文提出的算法经过欠取样平衡处理后的训练数据集再经过两次特征筛选,解决训练数据集的高维不平衡问题。多重筛选的意义在于筛选掉更多与分类结果相关性不高的特征,经过多层筛选后的数据集训练模型会更加精确,多重筛选的随机森林优化算法流程如图1所示。
该算法具体过程如下:
(1)首先对不平衡数据集U使用欠取样方式筛选掉特定数量的多数类样本集,按特定因子欠取样方法对其进行随机欠取样处理,对于少数类样本保持不变,得到平衡数据集U。
(2)在平衡数据集U的基础上,基于相关系数图观察特征间的线性相关程度得到相关较弱的部分特征,进行第一次筛选,留下对分类效果影响较高的特征。
(3)使用MIC算法算出特征和类别之间的联系,对特征的MIC值进行排序,对应特征的MIC越高,则该特征的相关性越强,特征越重要[5]。
(4)对数据集U使用装袋算法选取特征。
具体选取的步骤为:相关性较低的特征被筛选不加入算法的构建,相关性高的特征将全部参与算法的构建[6]。
3 欠取样与特征相关系数图
3.1 特定因子的不平衡数据集欠取样处理
以本文所用的冲压机传感器数据集为例,n为抽样次数,m为数据集个数,当n接近于无限大时约36.8%的样本没有被抽取,这部分样本数据称为袋外数据集合,公式表示为
(1)
由于特征选择前数据集的不平衡性,对不平衡数据集进行欠取样处理,多数类样本按36.8%比率进行随机欠取样处理,少数类样本保持不变,实现训练数据集的平衡。
3.2 相关系数图的特征筛选
相关系数图又名热力图。根据热力图中不同方块颜色对应的相关系数的大小,可以判断出变量之间相关性的大小。两个变量X1、X2之间相关系数ρX1X2计算公式为
(2)
式中:D为方差;Cov表示协方差。
需要注意的是,此方法计算出的相关系数只能度量出特征之间的线性相关关系,即相关系数越高,则特征间的线性相关程度越高。对于相关系数较小的两个特征,只能表示出其线性相关度不强,但不可断定特征之间没有其它相关关系。
4 最大互信息系数的特征筛选
MIC方法可计算两个变量之间线性或非线性的相关性,用于解决机器学习中特征选择的问题[7]。MIC与互信息(Mutual Information,MI)相比,具有更好的精确度,是一种可靠的数据相关性计算方式[8]。
MIC基本思想为利用互信息和网格划分的方法衡量变量之间的相关性[9]。
自变量为X={xi},因变量为Y={yi},i=1,2,3,…,N,N为样本数量,X与Y之间的互信息MI(X,Y)计算公式为
(3)
式中:p(x,y)是x与y的联合概率密度;p(x)和p(y)分别为x与y的边缘概率密度。
将X和Y组合为有序的集合Q,定义一个网格区间F,将X的值域划分为a段,将Y的值域划分为b段,设F为a乘b的网格区间。选择MI(X,Y)的极值做为划分F的对应互信息。划分F下Q的最大互信息计算式为[10]
MI*(Q,a,b)=maxMI(Q|F)
(4)
将得到的MI*值组成矩阵M(Q)a,b,如式(5)所示。
(5)
集合Q的MIC值为
MIC(Q)=maxab
(6)
式中:B(N)为网格划分的上限值,一般设定B(N)=N0.6。
将两个特征的关联离散到二维空间中,其相关性通过散点图表示。在x、y方向分成相应的区间,之后查看散点在每个格子中的占位数,如此解决在相关性分析中特征之间概率模糊不清的问题[11]。
5 实验分析
5.1 实验设计
按照本文提出的评价指标对基于多重筛选的随机森林(Multiple Filtrate Random Forest,MFRF)算法与其他四种算法做比较,对比不同算法在相同的训练数据集上的性能。用于比较的算法分别为:决策树(Decision-making Tree,DT)、过采样随机森林(Oersampling Random Forest,ORF)、网格搜索算法的随机森林(Grid Search Random Forest,GSRF)、基于混合采样策略的随机森林(Mixture Random Forest,MRF),其中DT为机器学习的常规算法,ORF通过生成人造样本解决数据的不平衡性,GSRF利用网格搜索的方式进行随机森林模型的参数调优,MRF通过随机过采样欠取样的方式对随机森林训练集优化。
5.2 实验数据及实验环境
实验选取的数据集来自于某实验室的一台小型冲压机,该冲压机的精度高、性能可靠、通用性强,生成的传感器数据集大小为10000条,特征维度为16维,其有关参数如下表所示。
使用Python语言完成算法实现,运行环境为基于网页的交互计算应用程序Jupyter Notebook。
5.3 实验过程
首先根据特定因子欠取样进行随机欠取样处理,少数类样本保持不变,得到平衡数据集之后进行相关系数图分析,通过热力图观察每个特征之间的关联性。热力图中一个色块代表横向和纵向的特征相关程度,相关性越高则颜色相对较深,系数越大,系数为0的时候表示两个特征相互独立。图2为冲压机传感器数据相关系数图,图中横向纵向变量均为特征,对应表1中的第一列特征名称,矩阵中的色块代表每个特征与特征之间的相关性大小,相关系数取值范围为[-1,1],越接近1或-1,表明正/反线性关系越强,为0则表示两个变量间没有线性关系。因为本次实验主要关注其他特征与工作状态特征的相关性大小,工作状态为0时表示运行正常状态,工作状态为1时表示运行异常状态,故需要找到与工作状态相关性最低的特征,观察工作状态特征一行,找到该行中绝对值最小的色块,此色块对应的列为特征相关性最弱的特征。通过观察,最小值为1.9×10-17,为比例溢流阀电流特征列,筛选掉比例溢流阀电流特征,完成第一次筛选。
表1 冲压机传感器数据描述
图2 冲压机传感器数据相关系数图
第一次筛选后,再对特征进行MIC计算。输入数据为本文使用的冲压机传感器数据集,数据描述如表1所示,调用删除方法将数据集分为x_data和y_data两个部分,y_data为标签工作状态特征,x_data为其他特征值,调用MIC函数,输入参数为x_data和y_data,代码及运行结果如图3所示。
由图3可见,经MIC特征筛选之后数据维数由15降到13。
图3 MIC核心代码及运行结果
将得到的数据集构建决策树并添加到随机森林中进行训练。将数据集分为x_data和y_data两个部分,y_data为标签工作状态特征,x_data为其他特征,再将数据集按7∶3的比例分为训练集x_train和y_train以及测试集x_test和y_test,调用随机森林分类模型(Random Forest Classifier)并传入参数x_train和y_train进行训练得到模型,调用预测方法并传入测试数据x_test,返回预测值。最后调用准确率分数预测方法、精确率分数预测方法、召回率分数预测方法得到结果。实验结果如图4所示。
图4 MFRF算法实验结果图
经模型训练后得到的准确率为87%,精确率为92%,召回率为79%,G-mean值为0.85。
针对传感器数据集,比较五种不同算法经模型训练后的分类精度如表2所示。
表2 不同算法的精度比较 %
从表2可见,本文提出的基于多重筛选的随机森林算法在准确率、精确率、召回率以及G-mean值指标上都要比其他算法高,说明该算法对于高维不平衡数据的处理有着很好的适用性。
6 结论
本文提出的基于多重筛选的随机森林算法,采取两次筛选完成高维数据的特征选择。在准确率、精确率、召回率以及G-mean值指标上比单一机器学习算法高10%~30%,比其他优化算法高10%~20%。实验结果表明本文提出的算法能够高效解决高维数据的分类问题以及特征选择问题。