基于改进粒子群算法的随机森林优化研究

2021-02-10 08:15赵成兵刘慧慧谢新平
宿州学院学报 2021年12期
关键词:柯西分类器粒子

赵成兵,刘慧慧,谢新平,刘 静

安徽建筑大学数理学院,安徽合肥,230022

随机森林是机器学习中一种采取有放回抽样策略的集成分类算法,模型以单棵决策树作为基学习器,在基学习器上分别训练数据集,并综合其投票结果,以投票结果中得票数最高的类别为最终输出。在随机森林训练过程中,更合理的参数选择能够有效提高模型分类准确度和模型稳定度。对于如何选择使得机器学习模型分类准确率更高的参数,传统选择有交叉验证、网格搜索、梯度下降等方法,但传统的参数优化方法在实现过程中难以避免主观因素的干扰,且训练过程重复性高。近年来,群智能算法因有通过仿生物群体运动过程,从而指向性的调整参数被广泛地应用于机器学习模型中的参数优化问题,相较于经典的优化方法,群智能算法在实际运算中效率更高,且实现更为简单,具有一定优越性。

粒子群算法相对于遗传算法、果蝇算法以及退火算法等其他群智能算法,在参数优化问题处理上具有精度高、收敛快等优势,并且粒子群算法在参数的调优过程中综合考虑单个粒子信息与全局信息,通过学习因子与权重控制调优过程,更为全面地控制参数调整过程。但因标准粒子群算法运行过程中若个体粒子适应度值过高,从而使得粒子运动调整无法跳出最优粒子局部运动范围,故存在可能陷入局部最优化的不足。因此,模型建立时首先针对标准粒子群算法的不足之处利用柯西变异增加随机扰动,而后将随机森林模型嵌入粒子群算法之中,从而完成相对最优参数的选取。

随机森林模型中的超参数[1]主要有训练中决策树棵数的多少,即森林的规模,单棵决策树的深度、属性特征集的大小、样本选择是否有返回、单棵决策树分支点分叉的最小样本数等。因样本选择是否有放回为布尔变量,单个决策树分支点分叉的最小样本数和单棵决策树的深度受样本集变动程度大,相对来说对模型分类整体影响程度小于决策树的棵数以及特征属性子集。决策树的棵数和属性特征子集贯穿于随机森林模型建立过程,并且相较于其他参数来说对随机森林模型的分类准确度影响更大,故训练过程中主要针对决策树的棵数与属性子集进行参数选择。

为提高随机森林模型分类准确率,李甜甜[2]提出利用离散二进制粒子群算法优化随机森林模型的超参数,证明离散粒子群算法可有效提高随机森林模型的分类准确率。为提高粒子群算法寻优准确率,徐立峰等[3]提出了引入多级扰动的混合型粒子群算法,王东风等[4]提出了基于搜索中心自适应调节的骨干粒子群算法,林国汉等[5]提出采用精英变异的粒子群算法,吕立国等[6]提出结合质心思想和柯西变异策略的粒子群优化算法,加入柯西扰动项以扰动粒子运动途径和步长,并证明改进后粒子群算法在参数选择过程中有优越性。考虑到当前算法的不足之处,为进一步提高随机森林模型分类准确率,使得模型具有更优的稳定性以及泛化能力,故在当前算法基础上,将柯西扰动项引入粒子群算法[7],扰动精英粒子运动过程,从而避免粒子群算法易陷入局部最优的不足,将改进后的粒子群算法用于随机森林模型的参数寻优过程,并在UCI数据集上进行验证。

1 基于柯西变异的粒子群算法

1.1 标准粒子群算法

粒子群算法是一种模拟鸟类群体的觅食行为来解决最优化问题的群体智能算法,算法通过搜寻粒子周围区域的可行解值,带入适应度函数后计算适应度大小,经过比较后对粒子迭代过程中的速度和方向进行调整,调整过程中通过控制学习因子的大小来控制全局影响程度和粒子自身影响程度。实际训练过程中,将随机森林模型中决策树规模与属性特征子集作为粒子群算法中粒子本身属性,以模型训练袋外误差作为适应度函数,重复训练模型并计算模型分类准确度以评价模型分类效果。

因粒子群算法在实现过程中可能会在全局信息不够的情况下陷入局部最优,而无法靠近全局最优值,故在粒子群算法迭代过程中引入了柯西变异,在单次算法运行过程中,在最优个体粒子运动时加入柯西变异扰动项。为防止柯西分布扰动项对最优粒子速度和方向产生过大影响,从而导致粒子发散运动现象的产生,赋予柯西分布扰动项以权重,并通过控制柯西分布扰动项的权重进一步确保粒子不超出运动范围。柯西分布可产生范围较广的随机数,从而使得粒子运动过程中跳出局部最优的范围,更接近全局最优值。与此同时,柯西分布具有更低的峰值,使得训练过程中粒子搜索具有更高效率。

1.2 优化粒子群算法

加入柯西扰动项的粒子群算法具体步骤如下:

步骤一:初始化粒子属性,分别赋予每个粒子随机速度和方向,同时在整体上设定粒子群规模、最大迭代次数、惯性权重、学习因子等参数。

步骤二:选取适应度函数,分别计算单个粒子适应度值。

步骤三:针对每个粒子,将其当前迭代次数里所得适应度值与在历史情况下该粒子最优位置和全局最优位置进行比较。若当前迭代所得粒子适应度值更高,则更新该粒子运动速度和方向,公式如下:

(1)

(2)

其中,i=1,2,…N,N为粒子群规模;j=1,2,…D,D为搜索维度;pbest为粒子个体最优值,gbest为全局最优值;t为当前迭代次数;Vi={Vi1,Vi2,…ViD}、Xi={Xi1,Xi2,…XiD}分别为第i个粒子的速度矢量和位置矢量;ω为惯性权重;c1、c2为学习因子;r1、r2均为服从[0,1]范围内的均匀分布随机数。

步骤四:对步骤三中所产生的当前迭代次数内的最优粒子进行柯西变异,增加柯西扰动项。粒子更新公式如下:

(3)

其中,gbestj为全局最优的第j维分量;η为控制柯西分布扰动项权重大小的参数;C(0,1)是服从比例参数t=1的柯西分布随机数。

步骤五:达最大迭代次数则停止迭代,输出最优适应度以及对应最优粒子属性值。

2 混合粒子群算法的随机森林模型

2.1 标准随机森林模型

随机森林模型是在Bagging集成算法的基础上引入属性变量的随机选择[8]。基本算法流程如下:首先,对样本进行随机抽样,将训练样本以有放回抽样的方式进行取样,从而构成训练集,将未抽到的剩余样本用作验证集,计算袋外误差,袋外误差即为在验证集上错误分类的样本数占验证集总样本数的比例。其次,对特征属性进行随机抽样,将抽取出的特征用于决策树上分类节点的划分,并生成决策树。最后,对单棵决策树进行随机抽样,以综合得票数最多的分类结果为最终输出。

2.2 混合粒子群算法的随机森林模型

混合粒子群算法的随机森林模型是将随机森林模型中决策树规模和属性特征子集与粒子群算法中粒子属性对应,并将随机森林模型训练所得袋外误差作为适应度值,通过迭代不断更新改进模型参数,在迭代过程中模型进行交叉验证,以确认训练过程的平稳性,最终输出迭代过程中模型训练平均得分与最高得分。

混合粒子群算法的随机森林模型具体训练流程如下:

步骤一:对原始数据集进行有放回抽样,将所抽取样本作为训练集,未抽取样本为验证集,对数据集进行数据预处理,处理缺失值和异常值,对缺失程度高的缺失值进行删除处理,缺失程度低的缺失值进行插值处理,以相对应属性均值作为替代,对异常值进行删除处理。对预处理后的数据集进行数据重编码,将字符型数据均编码为数值型数据,并将所有数据均转化数据类型为浮点型数据。

步骤二:初始化参数,包括粒子属性、迭代次数、学习因子、柯西扰动项权重以及惯性系数等。

步骤三:结合随机森林分类器,通过交叉验证计算模型分类平均准确度,并计算随机森林袋外误差,以袋外误差作适应度值。计算公式如下:

(4)

其中H(x)为随机森林分类器,S为验证集,P为验证集样本个数。

步骤四:比较当前迭代次数下所求得粒子的适应度值与已知全局下粒子最优适应度值大小,依据公式(1)和公式(2)更新粒子运动方向和运动速度。

步骤五:将当前迭代适应度值最高粒子保存为最优粒子,并对最优粒子依据公式(3)进行柯西变异,即加入柯西扰动项,处理后保存当前最优粒子的速度以及方向值。

步骤六:达最大迭代次数则停止迭代,输出分类器评价指标。

3 评价指标

3.1 准确率

对于二分类问题多通过准确率ACC、F1等指标衡量分类效果,由于所选取数据集部分为多分类样本,采用宏准确率macro-ACC以及宏macro-F1作为评价指标[9]。

准确率衡量模型整体分类精度,即为正确分类样本数占总样本数的比率,定义如下:

(5)

其中TP为真正例、FP为假正例、FN为假反例、TN为真反例。

宏准确率macro-ACC计算过程首先是将多分类样本中的特征属性与分类结果分别组合为多个二分类样本,依据每个二分类样本分别求得其二分类混淆矩阵,后分别计算出准确率,再计算平均值,计算公式如下:

(6)

3.2 查准率和查全率

查准率P是正确分类的正样本占预测结果为正样本的比例,查准率P越大,则分类器分类结果越准确。计算公式如下:

(7)

查全率R是正确分类的正样本占真实情况下的正样本的比例,查全率R越高,则分类器分类结果越全面。计算公式如下:

(8)

3.3 F1度量

为更全面地判断模型分类效果,故选取F1度量综合评判模型整体分类精度。F1度量利用比例系数将查全率与查准率加以组合,并针对不同问题对比例系数进行调整,从而控制对查全率和查准率的不同重视程度。F1度量的值越大,则证明模型分类效果越好,算法性能越好。计算公式如下:

(9)

与之对应的宏F1度量定义如下:

(10)

4 实验仿真与数据分析

4.1 实验环境介绍

实验数据集来自UCI数据中的Iris、Wine、Breast_cancer以及Digits等数据集。这四个数据集之中,Iris、Wine、Digits为多分类样本集,Breast_cancer为二分类样本集。样本数据属性包含数值型变量与字符型变量,将字符型数据均编码为数值型数据,并将所有数据均转化数据类型为浮点型数据,再进行模型训练。针对以上四个数据集,在控制未讨论参数与相关实验参数一致的情况下,分别用RF、PSO_RF、C_PSO_RF模型进行独立重复训练,实验过程中输出结果均为进行独立重复实验20次后的平均值。

以上实验均通过Python 3.8实现,结合sklearn库中的RF分类器等进一步设计和编写程序。

独立重复实验中各个算法的参数设置如下:在PSO_RF和C_PSO_RF模型中,经实验后设定粒子群数量N为20,惯性权重ω为0.6,搜索空间维度Δ为2,学习因子c1、c2均为2,最大迭代次数为50次,柯西扰动项权重η为0.5,交叉验证折数为5。

4.2 结果分析

4.2.1 准确率

模型训练输出分类准确率变化如图1所示,横坐标依次为RF分类器、PSO_RF分类器、C_PSO_RF分类器,纵坐标为训练模型的分类准确率。由图1可知,对于其中三个数据集来说,PSO_RF分类器的分类准确度高于RF分类器,说明结合粒子群算法进行随机森林模型的参数选择能够提高分类器的准确度。对于以上四个数据集,C_PSO_RF分类器的分类准确度均高于RF分类器和PSO_RF分类器,即证明加入柯西变异扰动项的粒子群算法进一步提高了随机森林模型的分类准确度。

图1 三种分类器准确率对比图

4.2.2F1度量

分别用模型RF、PSO_RF、C_PSO_RF训练四个数据集,输出查全率R如表1所示。

表1 三种分类器查全率对比表

分别用模型RF、PSO_RF、C_PSO_RF训练四个数据集,输出查准率P如表2所示。

表2 三种分类器查准率对比表

查全率和查准率输出结果均为模型迭代训练输出的平均值,选取平均值能够尽可能排除异常样本的影响,使得结果更具有可信度。由表1、表2对比分析,对于同一数据集的同一分类训练模型来说,查准率大多略高于查全率,即说明正确分类的正样本占预测结果为正样本的比例略高于其占真实情况下的正样本的比例。由于查全率和查准率侧重点不同,很难全面评估模型优劣,故采用综合指标F1度量进一步对模型进行评价。

分别用模型RF、PSO_RF、C_PSO_RF训练四个数据集,输出F1度量变化趋势(如图2):横坐标依次为RF分类器、PSO_RF分类器、C_PSO_RF分类器,纵坐标为训练模型的F1度量值。由F1度量的定义知,F1度量的值越大,则证明模型分类效果越好且算法性能越好。图2所示,对于实验训练的四个数据集来说,RF分类器、PSO_RF分类器、C_PSO_RF分类器的F1度量呈现递增趋势,即说明C_PSO_RF分类器的分类效果优于PSO_RF分类器和RF分类器。以此通过实验证明,加入了柯西变异扰动项的粒子群算法有效提高了随机森林模型的分类效果,增强了随机森林模型的算法性能。

图2 三种分类器F1度量对比图

5 结 语

加入柯西扰动项的粒子群算法在随机森林分类器的参数选择过程中,有效地提高了模型分类准确率。为进一步优化随机森林模型,下一步研究将选取更为复杂的数据集进行实验,从而提升模型解决实际问题的能力。

猜你喜欢
柯西分类器粒子
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
柯西不等式在解题中的应用
基于膜计算粒子群优化的FastSLAM算法改进
柯西不等式的变形及应用
Conduit necrosis following esophagectomy:An up-to-date literature review
基于粒子群优化极点配置的空燃比输出反馈控制
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
柯西不等式的应用
柯西不等式考点解读