卜晓阳, 蔡岩, 王宗伟*, 赵郭燚
(1.国家电网公司,客户服务中心,天津 300309;2.河北师范大学,软件学院,河北,石家庄 050024)
随着我国信息产业的爆发式发展,各行业的企业都开始使用信息集成系统进行管理。如何对所产生的海量数据进行有效利用成为新时代人们最关注的问题之一[1]。电力企业作为直接影响社会民生的重要部门,在使用管理信息系统的过程中产生了大量的运行状况和销售数据[2],电力企业管理人员迫切需要合理的方式去处理这些海量数据,以便获得有价值的信息[3]。
数据挖掘技术作为计算机领域的热门方向,一直和社会实际应用紧密结合。使用合理的数据挖掘技术可以解决电力企业的数据分析问题,为管理人员提供有价值的决策支撑信息,从而提高电网运行的可靠性[4]。例如,刘建飞等[5]提出了一种基于电力侧大数据挖掘的营销效果评价方法,其中使用了C4.5决策树算法。Victor D等[6]利用BP神经网络对电力企业营销数据进行快速挖掘。黄文思等提出了一种基于决策树算法的电力客户欠费风险预测。但是,上述方法采用的决策树算法仍旧是ID3算法以及在其基础上发展起来的 C4.5方法。而C5.0决策树算法作为其后续的最新版本,综合性能有了明显提升。
因此,为了对电力企业提供更加准确、有效的营销数据决策支撑,本文提出利用C5.0决策树算法对电力营销管理系统的营销数据进行深层次分析。通过引入信息熵对原有的C5.0决策树算法进行了改进,提高了其分类速度和精度。在UCI机器学习数据集和电力营销数据集上的实验结果表明,提出的改进C5.0决策树算法具有良好的分类性能,能够满足电力营销工作中的分类预测需求。
作为从ID3 决策树算法发展出来的后续算法,Ross Quinlan提出了C4.5算法能够将属性视为连续型的[7],并提出了2个新的属性:分离信息(Split Information)和信息增益率(Information gain ratio),可用于生成多分支决策树。C5.0算法与C4.5算法的核心是一样的,但是在内存管理等方面做出不少改进,更加适合商业应用。
本文假设S表示一个训练样本集,其样本数量为s个,包括m个不同的种类xi(i=1,2,…,m)。D表示训练样本集S的一个属性且取值范围为[1,k]。vi表示属于不同种类xi的样本总数。
根据属性D的不同,能够将训练样本集S区分成k个小的子集。si为上述子集中的第i个子集,i=1,2,…,k,[Si]表示子集si中的样本个数。
首先,信息增益Gain(S,D)的计算式[8]如式(1)。
Gain(S,D)=I(s1,s2,…,sk)-E(S,D)
(1)
其中,E(S,D)表示根据属性D划分出的k个子集的熵加权和,I(s1,s2,…,sk)则表示训练样本集S的熵。
I(s1,s2,…,sk)的计算式如式(2)。
(2)
其中,p(xi)表示种类xi出现的概率,满足约束条件如式(3),
(3)
其次,分裂信息项Split_Info(S,D)的计算式[9-11]如下:
(4)
通过式(4)可以看出,分裂信息项Split_Info(S,D)其实就是训练样本集S关于属性D的熵,该值越小则样本分布在属性D上的结果越不均匀。
因此,信息的增益比率GainRatio(S,D)的计算式是
(5)
在分裂属性的选取过程中,C5.0决策树算法会挑选出具有最高增益比率的属性,并将其定义成分裂属性[12]。
在确定分裂属性后,C5.0决策树算法会执行最佳分割点的确定步骤,组成了决策树的k个分枝。当最佳分裂属性是连续型变量时,会利用分箱策略设置划分值,从而对大于该划分值的样本进行再划分[13]。在循环执行分裂属性的确定和最佳分割点的确定后,生成了一棵完整的决策树。
通过上节C5.0 决策树算法原理分析,可以看出该决策树算法需要根据每一个属性在所有结点上,对信息的增益比率GainRatio(S,D)进行计算,以便为后续分裂属性的确定做支持。但是式(4)中信息增益比率GainRatio(S,D)计算需要对数运算,因此计算时间较长且精度不够理想[14]。因此,本文通过引入信息熵对原有的属性选择方式进行改进。
假设正例属性的个数为p,且反例属性的个数为n,则信息量的计算方式如式(6),
(6)
信息熵可以推导为式(7),
(7)
其中,
(8)
将式(8)代入式(7)得出式(9),
(9)
由于(n+p)ln2为常量,因此在重复循环过程中,可以使用式(10)进行结点属性选取,
(10)
又因为pi/(ni+pi)和ni/(ni+pi)均小于1,因此
(11)
(12)
所以,最终的Split_Info′(S,D)可以使用式(13)计算得到,
(13)
从式(13)可以看出,计算过程仅包含简单的加减和乘除运算,大大缩减了计算时间。
在将改进的C5.0决策树应用于电厂管理信息系统中时,需要以售电量为中心,构建各部门数据库表格之间的映射关系,本文构建的数据模型如图1所示。
图1 售电量关系模型
改进C5.0决策树在电力营销中的数据挖掘流程如图2所示。
图2 改进C5.0决策树算法的挖掘流程
为了对本文提出的视频分类方法进行分析和验证,进行具体实验。实验硬件环境:处理器为Intel Core i7 2.2 GHz,图形图像处理设备为GTX970@2G显存,内存为8 G。实验软件环境:Windows 7操作系统、MATLAB 7.0仿真软件。
为了验证所提改进的C5.0决策树算法的性能,用UCI机器学习数据集[15]进行了分类测试验证。选择20组小数据集,共2 400个样本进行了测试。训练样本为随机选取的1 000个样本,其余为测试样本。每组实验重复10次并去平均值作为最终结果。标准C5.0决策树算法和改进后C5.0决策树算法的分类准确率对比和时间对比分别如图3、图4所示。
图3 2种算法的分类准确率对比
图4 2种算法的分类时间对比
从图3可以看出,随着测试样本数量的不断增多,2种算法分类的准确率几乎一致。从图4可以看出,随着测试样本数量的不断增多,2种算法分类的时间均有所增加,但是改进后C5.0决策树算法所需的时间明显更少,分类效率更高。
以某电力企业的2019年期间营销数据为测试数据集,对改进后C5.0决策树算法进行实际案例分析。该电力营销测试数据集共包括100名不同地区、不同年龄和不同岗位的用户用电样本数据。随机选取其中50个样本作为训练样本,如表1所示。
表1 训练样本集
利用改进的C5.0决策树算法,选择具有最大信息增益属性值作为叶节点,循环上述决策树执行步骤,最终产生客户分类决策树及其分类规则,然后在电力营销数据集的测试样本中对得到的分类决策树模型进行验证。此外,为了对比分析,还使用了BP神经网络和ID3.0决策树分别建立分类模型。各种分类模型结果比较如表2所示。
从表2可以看出,相比于BP神经网络、ID3.0决策树,C5.0决策树和改进的C5.0决策树算法在分类准确率方面提升较为明显,C5.0决策树最优(87.6%),改进C5.0决策树算法次之(86.5%)。而在分类效率方面,改进C5.0决策树算法表现较为突出,仅需1.86 s。综合来看,改进C5.0决策树算法在客户及时准确分类应用中具有最佳的综合分类性能,可以有效满足实际的电力营销工作需要。
表2 各种分类模型结果比较
本文提出了一种基于改进C5.0决策树算法的电力营销数据挖掘技术。通过引入信息熵对原有的属性选择方式进行改进,提高了信息增益比率计算的速度。此外,根据设计的售电量关系模型进行对电厂管理信息系统中的数据进行挖掘。数据集和实际案例应用结果均验证了提出改进算法的有效性和可行性。但是电力营销训练和测试样本集中用户属性的数量(维度)较少,后续将考虑增加更多的属性,来进一步验证C5.0决策树算法的性能。