面向粒子群优化BP神经网络的粗糙集连续属性离散化算法
2023-11-07毛明扬徐胜超
毛明扬,徐胜超
(广州华商学院数据科学学院,广东 广州 511300)
0 引 言
随着时代的进步、科技的发展,数据种类日益增多。大体来说,主要分为2 大类,即连续属性数据与离散化数据[1]。对这些数据的处理方法也是多种多样的,尤其是在机器学习算法中,离散型数据被广泛应用[2-3],甚至有些算法和网络模型只适用于离散型数据[4-5]。但是许多数据仍具有连续性的特征,因此,如何将这些数据转换成离散化数据非常关键[6-7]。
相关学者对连续属性离散化算法进行了研究,如文献[8]根据粗糙集理论,通过构建森林优化网络模型,获取最优断点集,并利用断点集进行空间划分,实现离散化处理;文献[9]引入基于个体的非支配解集以平衡局部最优与全局最优的关系,引入基于“均值-方差”的遗传算子增加种群多样性,并构建粗糙集决策表进行优化计算,实现离散化处理;文献[10]利用等距法对连续属性数据进行首次离散化,得到断点个数,并根据属性的重要程度重新分配每一个条件属性的位置,把决策表相容性当作判断条件进行相容性分析,参照分析结果对全部断点进行逐一调整,获取最优断点集完成离散化处理;文献[11]利用不完全经济信息填充算法来补充不完全信息,使用粗糙集离散化算法实现了基于粗糙集的补充经济信息离散化。上述方法虽然可以完成连续属性离散化操作,但是全局寻优能力较差,易进入局部最优,影响最后的离散效果,且由于算法较为繁杂,导致效率较低。
基于上述方法所存在的效率较低,离散效果较差的问题,本文提出一种面向粒子群优化BP 神经网络的粗糙集连续属性离散化算法,以提高糙集连续属性的离散效果。首先对粗糙集连续属性离散化进行分析,并基于粒子群算法运行参数较少、易实现全局最佳的优势[12],来对BP 神经网络进行优化,提高模型训练效果,减少训练损失,使收敛速度增快,并避免陷入局部最优,完成对具有连续属性的信息系统进行分类,从而获取多个断点,找到最佳断点集,完成粗糙集连续属性的离散化。
1 面向粒子群优化BP 神经网络的粗糙集连续属性离散化
BP神经网络容错能力好,学习能力强[13-14],而粗糙集理论则具有处理不完备数据的能力[15],在采用BP 神经网络进行粗糙集连续属性离散化时,通常会由于搜索空间较大,易陷入局部最优而难以跳出,且训练时间较长。而粒子群算法,采用了全局搜索方法,有较好的全局优化性能,能够在多峰函数优化和搜索空间较大的情况下找到较优解,且参数少,易于实现和调节,可自适应调节粒子速度,可使BP神经网络快速地找到最佳断点集,弥补了BP 神经网络在进行粗糙集连续属性离散化所存在的不足,实现高效精准的连续属性的离散化操作。
1.1 基于优化BP神经网络的候选断点集的获取
离散化就是把具有粗糙集连续特点的属性,通过某种方法转换成离散的形式。在系统Z中,设定某个具有连续性的条件属性用ai∈A来描述,且Hmin≤ai≤Hmax,断 点 集 用C={ }c1,c2,…,cm来 描 述,且Hmin≤ci≤Hmax。利用C能够把ai的取值区域分割成数量是m+1个的子区间,并将全部原始值利用数量是m+1个标签来替换。存在于C内的所有断点c1可以把ai离散化为包含数量是m+1个属性值的离散属性。
由此可以看出,进行离散化的实质就是通过获取最优断点集对具有连续特点的属性取值空间进行有效分割,从而获取最佳的离散化区间的过程[16]。因此,关于连续属性的离散化可以将其转换成对最佳断点集的获取。因为最佳断点集将在初始候选断点集内产生,所以需要先进行候选断点集获取,然后在其中挑选出最佳断点集,进而实现连续属性的离散化[17-18]。
因为候选断点集是由多个子断点集构成,而子断点集则由多个断点组成,所以断点的获取非常关键,而断点则可根据信息系统Z中包含的属性进行分类获取,每个属性可视为一个类别,进而形成一个断点。泛化性能好是BP神经网络的优势,所以本文利用该网络模型对具有连续属性的信息系统进行分类,从而获取多个断点,形成子断点集,进而构建候选断点集[19-21]。
在BP 神经网络的前向传播中,设定存在于网络输出层中位置是i的神经元与上个层次中位置是j的神经元的连接权重用wij来描述,该神经元的输入、阈值分别用Ii和δi描述,那么它的输出则可以描述为:
将O与期望值作对比运算后,得到传播误差E=(b-O)2/2,其中b为期望值。
当传播误差符合设定的精度要求时,BP 神经网络的训练结束;反之则继续对每一层的w与δ进行调节,直至传播误差在规定范围内,这时候选断点集的获取精度较高。
本文采用粒子群算法(Particle Swarm Optimization,PSO)改进BP 神经网络中w与δ初始值,以此提升其分类识别精度[22-24]。以此获取关于具有连续属性的信息Z系统的高品质候选断点集,同时可以避免该网络产生过拟合的问题[25-27]。
设定PSO 位置为BP 神经网络最初的权值与阈值,而算法最终寻得的整体最佳位置就是最佳初始权值与阈值。
设定存在于维度为S空间中的种群由数量是N的粒子构建,描述为Q=( )Q1,Q2,…,QN,其中粒子i在该空间内的位置用Qi=( )Qi1,Qi2,…,QiS来描述,移动速度用Vi=( )Vi1,Vi2,…,ViS来描述,个体与整体种群极值用来描述。
在迭代过程中,利用pg与pi对粒子的速度与位置进行改变,该过程的更新模型可以描述为:
其中,惯性权值用ω来描述,粒子i的移动速度用来描述,位置用来描述,当下迭代数用t来描述,学习因数用λ1、λ2来描述,随机数用r1和r2来描述,且二者的取值范围为[0,1]。为避免粒子出现盲目搜寻的现象,需要对其速度与位置进行设限,通常设限的范围分别为
利用粒子群算法可以获取到BP神经网络模型中w与δ最佳初始值,通过优化后的BP 深度神经网络,获得具有连续特征的断点集。具体流程如图1所示。
图1 粒子群算法优化BP神经网络流程
粒子群算法优化BP神经网络流程如下:1)初始化参数。
2)在BP 神经网络中,PSO 算法适应度函数的设定是通过测试样本获得的传播误差,利用该函数求得所有粒子适应度值,并进行对比,选取pg与pi。
3)利用公式(2)更新PSO算法中所有粒子的速度与位置,并判断是否在允许范围内[28]。
4)更新PSO中全部粒子的适应度值,保留所有粒子个体最佳位置,并从中挑选出整体最佳位置。
5)对获取整体最佳位置进行考量,判断其是否为全局最优解或是否符合算法结束要求[29-31]。若满足条件,则停止操作,输出运算结果,得到BP 神经网络最佳的w与δ;否则,返至步骤2。
6)将获取到的最佳w、δ导入BP 网络中,经过学习训练,得到改进的BP神经网络模型。
将具有连续属性的信息系统Z输入至优化后的BP 神经网络模型中,便可以获取关于Z的子断点集,进而得到候选断点集。
1.2 基于PSO算法的连续属性离散化
利用PSO 算法良好的寻优性能从已获取的候选断点集中搜寻最佳断点集。通过最佳断点集分割空间,得到最优离散区间,实现连续属性的离散化。
关于断点的选取应符合2 点要求,也就是最小化的断点数目,且通过该断点获取的离散数据应与系统Z的属性保持高度一致性,所以关于解决连续属性离散化问题的PSO算法适应度函数可描述为:
其中,个体候选断点集用X来描述,属性依赖度用d来描述,初始断点总数量用L来描述,个体断点个数用M来描述,调节因数用∂和β来描述。通过式(3)可以看出,断点数量与适应度值呈负相关性,系统一致性与适应度值呈正相关性。
利用PSO 算法解决连续属性离散化问题[32],首先应将通过优化BP神经网络获取的候选断点集映射成PSO 算法中的粒子,通过改变粒子的速度与位置,找到最佳断点集。具体过程如下:
1)对参数进行初始化操作。
2)利用粒子代表的断点集把信息系统Z转换成离散性系统,计算其中的断点数量以及属性依赖度,再由公式(3)求出全部粒子适应度值f'。
3)如果f'优于当前pi,那么把f'调整为pi,反之则不作调整;如果此时的pi优化于当前pg,那么把pi调整为pg,反之则不作调整。
4)通过公式(2)更新PSO算法中所有粒子的速度与位置,并判断是否在允许范围内,若超出设定好的范围,则默认为当前的速度与位置。
5)利用更新后的粒子代表的断点集,重新处理信息系统,进行离散化,求得断点数量以及属性依赖度,更新所有粒子f',获取个体及全局最佳位置。
6)如果达到迭代要求,进入步骤8,反之执行步骤7。
7)判断属性依赖度是否为1,如果是1 则进入步骤8,反之返至步骤2。
8)将具有最佳的粒子f'进行输出,该粒子代表的断点集即为最优断点集。
采用最佳断点集进行离散化,便可得到关于系统Z的最佳离散数据。
2 实验分析与性能分析
2.1 实验环境的建立
本文以某网站服务器中的数据为实验对象,该网站属于综合服务类网络,包括咨询、新闻、交易等几大板块,涵盖科技、经济、商业、旅游等多行业信息,每天访问人数众多,信息量具大,存在大量连续属性数据。
对该网站某一时间段具有连续属性的数据进行采集,形成粗糙集连续属性数据集,该数据集原始分布如图2 所示。采用文献[10]中的方法作为对比方法,实验的粒子群算法有关参数如表1所示。
图2 连续属性数据原始分布图
2.2 训练损失结果分析
为了考量本文方法的性能,实验从该网站抽取了具有连续属性的数据样本480个,设定迭代次数为160,经过测试得出该模型训练的损失结果,如图3所示。
图3 改进PSO优化的BP神经网络模型训练损失结果
由图3 可知,改进PSO 优化的BP 神经网络模型训练损失随着迭代次数的增加而下降。本次实验共计迭代160 次,前10 次迭代,该网络模型的训练损失下降幅度非常大,呈直线式下降;当迭代次数在10~40 次之间时,网络模型的训练损失下降趋势变缓;而当迭代次数大于40 次之后,该网络模型的网络波动较小,逐渐呈收敛态势,并且训练损失也趋于0。由此说明,本文采用粒子群算法改进BP 神经网络中的权值与阈值,能够有效提高模型训练效果,减少训练损失,使收敛速度增快,具有较强的泛化能力,是比较优质的网络模型。
2.3 离散化效果分析
为了验证本文方法的有效性,分别应用本文的方法和对比方法,对这一数据集进行离散化,得出的离散化后数据分布结果如图4所示。
图4 经过离散化后的数据分布情况
由图2 可知,采集到的连续属性数据较为集中,具有不同属性的数据交织在一起排列,连续性较强。而通过图4 可以看出,利用本文方法对该连续属性数据集进行了离散化操作,原连续属性数据被断点分割成界线分明的不同区间,且按照自身属性特征进行了重新分布,得到了离散化后的数据。而采用文献[10]方法对该连续属性数据集进行了离散化操作,原连续属性数据虽被断点分割成不同区间,但各区间中仍存在其他的属性数据,并未按自身属性特征分布,离散化效果较差。由此可以看出,本文方法利用优化后的BP 深度神经网络对连续属性数据进行了分类,找到最佳断点集,使得粗糙集连续属性数据的离散化效果较好,能够为后续相关数据的处理打下基础。
2.4 数据一致性分析
对于粗糙集连续属性离散化问题来说,利用最优断点集中的断点进行离散化操作后,获取的离散数据与原信息系统中的数据属性是否具有高度一致性这点非常重要。为此,本文实验分别从该网站的咨询板块、新闻板块以及交易板块采集了不同类型的具有连续属性的数据集,分别利用本文方法和文献[10]方法对这3 种不同类型的数据集进行离散化操作,之后对获取的离散数据的一致性情况进行测试,最后得出的实验结果如图5所示。
图5 数据一致性检测
由图5 可知,利用本文方法对该网站不同类型的具有连续属性的数据进行离散化操作,得到的离散数据与原始数据的属性具有高度一致性,尤其是当迭代次数到达30 次后,各类离散数据与原始数据的属性一致性已达到97%以上,当迭代次数为50次时,一致性更是趋于100%。而采用文献[10]方法对该网站不同类型的具有连续属性的数据进行离散化操作,得到的离散数据与原始数据的属性的一致性相比于本文所提方法较差,在迭代次数到达40 次后,各类离散数据与原始数据的属性一致性达到94%左右,在迭代次数为50 次时,各类离散数据与原始数据的属性一致性达到95%左右。由此可以看出,本文利用PSO算法良好的寻优性能搜寻出最佳断点集,获得最佳的离散化区间,高度还原了原始数据的属性特点,对解决连续属性离散化问题具有很好的效果。
2.5 精度与收敛速度分析
因为连续属性离散化是对数据进行预处理的一种方式,因此对离散方法优劣的评价,最直接的方法便是将其应用于不同算法中,判断其是否提升了这些算法的精度与收敛速度。为了衡量本文方法的实用性,实验将该网站分别采用本文所提方法和文献[10]方法离散化的数据集作为样本数据,对支持向量机算法、朴素贝叶斯算法以及Cart决策树算法的分类精度与收敛速度进行了测试,得出的结果如表2所示。
表2 不同算法的分类精度与收敛速度测试
由表2 可知,利用本文方法获取的离散化数据集应用于支持向量机算法、朴素贝叶斯算法以及Cart决策树算法后,分类精度均在99%以上,收敛速度最慢为0.75 s。而利用文献[10]方法获取的离散化数据集应用于支持向量机算法、朴素贝叶斯算法以及Cart决策树算法后,所达到的最高分类精度为93.27%,最快收敛速度为1.74 s。两者方法相比,利用本文方法得到的离散化数据集,这3 种算法在分类精度与收敛速度方面都取得了较好的表现。由此说明,本文方法利用粒子群算法改进BP 神经网络,基于优化后的神经网络对连续属性的信息系统进行分类,能够有效提高分类精度,加快收敛速度,具有较强的应用前景。
3 结束语
数据离散化是数据挖掘中一个非常关键的环节,离散化水平的高低会直接影响到后续的数据处理,从而影响到整个分析的准确性。由于进行离散化时,获取的断点集并非最优集合,导致离散效果较差,因此本文提出了面向粒子群优化BP神经网络的粗糙集连续属性离散化算法,利用改进的BP 神经网络模型对连续属性信息系统中的多个候选断点集进行提取,并在其中选出最优的断点集合,再用最优的断点集合来划分数据空间,使其连续属性离散。实验结果表明,该算法能有效地处理粗糙集中的连续属性的离散化,适用于此类问题的求解,具有很大的应用空间,可用于环境监测、医疗领域等领域。在未来会通过引入自适应学习策略、启发式策略等手段,对所设置的参数进行优化,以进一步提高算法的实际应用效果。