汤 伟,徐声龙,杨 慧,刘佳颖,李卉茹

(1.武汉大学 电气与自动化学院,湖北 武汉 430072;2.国网湖北省电力有限公司 超高压公司,湖北 武汉 430050)

0 引 言

随着信息与通信技术(Information and Communications Technology, ICT)的快速发展,数据逐渐成为各个行业的重要资产之一,大数据技术在医疗、金融、商务与网络安全等方面的应用日渐广泛[1-3]。而在数据应用过程中,数据的准确性和可靠性至关重要,因此异常数据的检测识别也受到众多研究学者的关注[4-6]。异常数据的识别原理可以分为基于距离、密度、子空间和集成学习的4 类检测算法,但不同算法在数据维数高、数据样本大的情况下,其准确性及时效性也较为有限[7-9]。

电力行业在高速发展的同时,也积累了海量的人力资源数据,对这些数据的深入挖掘可以有效提高电网的运营管理水平。而目前针对大规模人力资源数据的识别与校核算法仍存在计算速度慢、成本过高以及准确度低等缺陷。针对此,本文在传统孤立森林算法基础上引入了加权随机、平方预测误差(Squared Prediction Error,SPE)统计量去冗余和粒子群优化等方法,以提升孤立森林算法的准确性与可靠性,实现对异常数据的智能化高效检测。

1 孤立森林算法

通常情况下,数据集中异常数据的占比较少,而且与正常数据之间存在着明显的特征差异,孤立森林算法[10-13]根据这一原则对数据集进行随机划分,进而实现异常数据的识别。孤立森林由多个孤立树构成,孤立树为二叉树,父节点根据某一随机维度在最大值与最小值范围内进行数据样本分割。左分叉子树由该维度取值小于父节点的所有数据样本构成,右分叉子树由该维度取值大于父节点的所有数据样本构成。孤立树的构建过程包含以下步骤:

1)对于具有D维空间的原始数据集A,从中随机选取一个非空数据子集B;

2)从数据子集B中随机选取一个维度d,d∈{1,2,…,D};

3)在数据子集B维度d的最大值与最小值范围内随机选取一个分割值v;

4)对数据子集B中的每个数据样本xb进行分割,若xb在维度d的取值xbd≤v,则xb被划分至左分叉子树B1,若xbd>v,则xb被划分至右分叉子树B2;

5)对左分叉子树B1和右分叉子树B2重复步骤2)~步骤4),直至树达到最大高度限制或者所有数据均已被划分完毕,由此孤立树构建完成。

孤立森林则是由多株孤立树构成,每次在原始数据集A中随机选取非空子集进行孤立树构建。数据点在每个孤立树上都具有唯一的高度,即该孤立树的根节点到该数据点的路径长度。根据数据点在所有孤立树上的平均高度可计算数据的异常评分值,如式(1)所示:

式中:S(a,N)为数据样本a的异常评分值;N为数据集中数据样本的总数;(a)为数据样本a的平均高度;b(N)为标准化因子。b(N)的计算方法如下:

式中H(i)为谐波数。

根据上述公式可以计算数据的异常评分值S,且满足0 <S<1。当某个数据样本的异常评分值S越接近1时,表明该数据样本越有可能是异常值;而当S越接近0时,则表明该数据样本越有可能是正常值。根据上述原则,即可实现数据校核与异常识别。基于孤立森林的异常数据校核识别算法框架如图1 所示。

图1 孤立森林算法示意图

2 基于多维特征提取的数据识别算法

2.1 算法整体架构

本文所设计算法的整体架构如图2 所示。以多维指标数据作为输入,首先利用加权随机孤立森林(Weighted Random Isolation Forest, WRIF)算法进行初始孤立森林的构建;然后采用基于平方预测误差(SPE)统计量的去冗余算法(Redundancy Reduction Algorithm, RRA)进行剪枝;再进一步基于离散粒子群优化(Discrete Particle Swarm Optimization, DPSO)算法进行最优子森林的优化选取,最后输出数据校核与异常识别结果。

图2 数据校核与异常识别算法架构

2.2 改进的孤立森林算法

孤立森林算法是一种利用数据集中异常数据较少且易于被划分的特点,实现异常数据快速识别的人工智能算法。但是孤立森林在构建过程中具有较强的随机性,导致其在计算精度和稳定性方面存在一定的缺陷。为了提高算法的准确性,需要随机构建大量的孤立树,大幅降低了算法的计算效率。同时,随着孤立树数量的增加,难免会存在差异度较小的孤立树,造成了一定程度的冗余。针对此,本文提出了改进的孤立森林算法,从而提高算法的准确性、稳定性与检测效率。改进算法的具体构建方式如下。

2.2.1 基于随机加权算法的孤立树构建

假设原始数据集为A,其评分向量为p。

式中and为第n个数据样本第d维的取值。

式中pn为第n个数据样本的评分值。根据数据集矩阵和评分矩阵的关系,可以计算不同维度指标的偏好向量k=[k1,k2,…,kD]T。

进一步可以计算得到权重矩阵:

式中wnd为d维度影响因素与第n个数据样本之间的关联系数。对权重矩阵进行标准化后即可得到不同维度指标的权重系数:

式中:W′d为标准化前d维度指标的权重值;Wd为标准化后d维度指标的权重值。

进一步,采用逻辑回归实现构建孤立树时分割维度的加权随机选取。

式中Wtotal为所有维度的权重之和。

每个维度被随机选中的概率gi为:

则基于逻辑回归,第d维度指标是否被选中的判据为:

式中rand 为[0,1]区间内的随机数。

2.2.2 SPE 统计量

孤立森林算法在数据集以及分割维度的选取上均具有较强的随机性,为了提高算法的准确性,通常需要构建大量的孤立树。而随着孤立树数量的增加,难以避免地会存在两个孤立树相似度极高的情况。因此,文中提出了基于SPE 的孤立森林去冗余算法。孤立森林中每个孤立树相当于一个分类器,对于具有K棵孤立树的算法,其分类器集合为C={C1,C2,…,Ck,…,CK},对于原始数据集合A={a1,a2,…,an,…,aN}。孤立树对于数据集A的分类结果用矩阵Y=(ykn)K×N描述,其中,ykn为孤立树Ck对于数据样本an的分类结果,当孤立树Ck能够正确分类数据an时,ykn= 1;当孤立树未能正确分类数据an时,则ykn= 0。

任意两个孤立树Ci和Cj对于数据集A的分类结果存在如表1 所示的对应关系。

表1 孤立树Ci 和Cj 分类结果的对应关系

孤立树Ci和Cj之间的SPE 统计量SPEi,j为:

由式(11)可知|SPEi,j|≤1。当|SPEi,j|越接近1,表明孤立树Ci和Cj之间的差异度越小;当|SPEi,j|越接近0,表明孤立树Ci和Cj相互更为独立。因此,基于SPE 统计量可以实现剔除孤立森林中相似度较高的孤立树,从而完成去冗余。

基于SPE统计量的孤立森林去冗余算法步骤如下:

1)从原始孤立树集合C中随机选取一个孤立树Ci加入去冗余的孤立树集合C′,并将Ci从C中剔除;

2)从C中随机选取孤立树Cj,计算Cj与C′中任意孤立树Ci之间的SPE 统计量SPEi,j;

3)若SPEi,j大于单体阈值,则将Cj从C中剔除,并返回步骤2);若SPEi,j小于单体阈值,则继续进行步骤4);

4)计算Cj与C′中除Ci外其他孤立树的SPE 统计量之和TSPEi,j;若TSPEi,j大于统计阈值,则将Cj从C中剔除,返回步骤2);若TSPEi,j小于统计阈值,则将Cj加入C′中,并将Cj从C中剔除,进行步骤5);

5)判断C是否为空集,若是则停止算法,完成孤立森林去冗余过程,若为否,便返回步骤2)继续循环。

2.2.3 基于粒子群算法的子森林优化

通过SPE 统计量进行孤立树去冗余后,需要进一步采用粒子群算法[14-15]实现最优子森林的选取。假设去冗余后孤立森林仍有L棵孤立树,则粒子的维度为L,每个粒子可以表示为Xi={Xi1},Xi2,…,Xil,…,XiL,其 中Xil∈{0,1}。当Xil= 1时,表示选择第l棵孤立树构成子森林;当Xil= 0时,则表示未选择第l棵孤立树构成子森林。

粒子飞行速度更新机制为:

式中:Vi(t)与Xi(t)分别为t时刻第i个粒子的速度及位置;Pi,best为第i个粒子当前最优位置;Gbest为粒子种群的当前最优位置;c1和c2为学习因子;r1及r2为区间[0,1]范围内的随机数。

为了使粒子群算法能够适用于子森林的优化选取,需要对粒子位置更新机制进行改进,具体如下:

式中:Xi,j和Vi,j为第i个粒子第j维度的位置与飞行速度;T(Vi,j)为与飞行速度相关的中间值,计算方法如下:

粒子优化过程的适应度函数为:

式中:F(Xi)为第i个粒子的适应度值;Ai和Bi分别为第i个粒子所表示的子森林的整体精度值与所有孤立树的精度值之和;w1和w2为权重系数。

3 算例分析

为了验证本文所提基于多维特征提取的数据校核与异常识别算法的准确性和有效性,对某供电企业人力资源数据进行仿真分析。数据集的大小及异常数据的占比如表2 所示。算法参数设置如表3 所示。仿真环境为AMD Ryzen 75800H@3.20 GHz,内存16.0 GB。

表2 数据集的基本参数

表3 算法的参数设置

3.1 算法性能分析

为分析文中所提RRA-DPSO-WRIF 算法的性能,将其与IF(Isolation Forest)、WRIF、RRA-WRIF 算法进行对比。4 种算法对于不同数据集的数据校核与异常识别结果如图3 所示。可以看到传统IF 算法识别准确率在85%以下,WRIF 算法识别准确率在84%~90%,RRAWRIF算法的识别准确率为88%~93%,而文中所提RRADPSO-WRIF 算法识别准确率在95%~98%范围内。

图3 算法准确性对比

4 种算法对于同一数据集重复计算5 次的数据校核与异常识别结果如图4 所示。可以看到IF、WRIF、RRAWRIF 算法识别准确率波动幅度较大,识别准确率偏差达到约5%,而文中所提算法多次计算波动较小,识别率偏差范围在2%以内。可见,本文所提算法具有更强的稳定性。

图4 算法稳定性对比

3.2 实际应用

将文中所提算法应用于实际人力资源数据校核与异常识别场景,共发现105 条异常数据,不同类型指标数据异常占比情况如图5 所示。工作状态和基本素质二者数据异常占比超过70%,应加强对这两类数据的管控,以提升数据的质量。

图5 实际应用情况分析

4 结 语

针对电力行业人力资源数据异常检测的问题,文中提出了一种RRA-DPSO-WRIF 算法。通过仿真分析表明,所提算法异常识别准确率大于95%,相比传统IF 算法提升了将近10%。本文所提算法具有更强的稳定性,对于同一数据集,该算法多次计算的异常识别偏差在2%以内。在实际应用中发现工作状态和基本素质两类数据占比较高,应加强对这两类数据的质量管控。然而所提算法虽然实现了异常数据的准确检测,但如何针对异常数据进行智能修复仍有待下一步的研究。