基于AdaBoost算法的供电客户的分类模型

基于AdaBoost算法的供电客户的分类模型

新疆电力有限公司电力科学研究院

1.研究背景

电力回收是电力营销管理的最后一个环节,也是供电公司的主要资金收入。长期以来,供电公司的模式都是“先用电后收费”,这就会导致拖欠电费的情况。2016年,新疆电网发布了《国网新疆电力公司电费回收风险预警管理实施细则》,明确提出进一步指导和督促各级供电单位加强电费回收管理、防范电费回收风险、确保企业利益不受损失,加强电费风险管控,防范用电客户因主观原因形成电费拖欠或者电费坏账而采取的预防性措施。同时,针对用电客户中的电费回收高风险用户,进行专项分析,一对一制定电费风险防方案,确保电费“颗粒归仓”。

为了降低电费回收的风险,国内外学者做了很多相关的研究。文献[1]采用了基于spark的随机森林算法进行建模得到欠费风险模型,并分别与支持量机和在线序列极限学习机算法进行比较,得到了不错的结果;文献[2]提出了基于BP神经网络的用电大客户的信用评价指标体系,通过对行业信用指标,企业信用指标和企业财务指标,得出企业的信用等级,并完善用电大客户的风险预警系统;文献[3]基于Logistics回归理论,利用已有的数据获得了模型的关键变量,建立了预测用电客户欠费可能性大小的模型;文献[4]根据用电客户的品格,能力,资本,担保或抵押,以及环境条件,利用主成分分析法,确定一个综合指标来评价用电客户的信用情况;文献[5]利用基于信息熵理论的数据挖掘算法,再使用支持向量机来预测欠费的风险用户。

2.模型介绍

基于以上的研究背景,本文提出一种基于AdaBoost算法的用电客户分类模型。依据用电客户供电电压等级、用电额度、电费结算方式、缴费方式、欠费情况、生产经营状况、信用等级、用电行为情况等数据,对企业进行分类,对风险等级不同的客户分别制定风险控制策略,做好电费回收风险防范措施。

AdaBoost是一种机器学习算法,属于Boosting的一种,最先是由Freund和Schapire于1997年提出。Boosting是一族可以将弱学习器提升为强学习器的算法。这类算法首先会从初始训练集训练出一个基分类器,再根据基分类器的表现对训练的样本分布进行调整,使得先前基分类器出错的样本后续受到更多的关注,然后基于调整后的样本分布训练下一个基分类器,如此重复进行,直至基分类器达到事先指定的值T,最终将这T个基分类器进行加权结合。

设基分类器为,训练集

,强学习器为基学习的线性组合,目标是最小化指数损失函数

(2.1)

在AdaBoost算法中,第一个基分类器是直接通过初始训练集得到的,此后迭代地产生和,因此当基分类器基于分布产生后,该基分类器的权重应当使得最小化指数损失函数

(2.2)

其中,表示基分类器的错误率。考虑指数损失函数的导数

(2.3)

令式(2.3)为零,可以得到分类器权重的更新公式

(2.4)

AdaBoost算法在获得之后,样本的分布将进行调整,使得下一轮的基学习器能纠正的一些错误,理想情况时纠正的全部错误,即最小化

(2.5)

于是,理想的基学习器为

(2.6)

注意到为常数,令表示一个分布

(2.7)

考虑和的关系,有

(2.8)

这对应着样本分布的更新公式。

AdaBoost实现步骤

1、输入训练集;基学习算法;训练次数;

2、初始化样本分布;

3、当时,做如下循环:

4、;

5、;

6、如果,则跳出循环,停止学习

7、

8、,是规范化因子,确保是一个分布

9、学习结束,输出

3.实例分析

数据填充和规范化

原始的电费回收的相关数据存在缺失或遗漏的情况,例如某些用户的若干特征为空或者明显异常(电量为负数)。这种情况下,扔掉或重新获取数据都是不可取的,所以需要用一些数值去填充。一般来说,可以用相似样本的均值或中位数填补缺失值,也可以用另外的机器学习算法预测缺失值。本文对于缺失值和异常值都采用样本的均值来填充。

对于原始数据中的不同特征的取值范围可能相差很大,例如用电量可能会达到10000,而催收次数一般会在10次以下。所以在使用数据之前,需要对数据进行规范化处理。常用的规范化处理包括:

1)区间规范化:即将数值归一化到[0,1]区间,计算公式如下:

其中,分别为特征A的最大值和最小值;为初始值,为规范后的值。

2)标准规范化:根据“(初始值-均值)/标准差”来对数据进行规范化处理,计算公式如下:

其中,分别为特征A的均值和标准差;为初始值,为规范后的值。

为了保持原始数据的一些特征,本文采用区间规范化对数据进行归一化处理。对于特征全为0的数据,依然取0。

特征选择

原始的电力数据中包含很多特征,但是这些特征在建立模型时不一定都用得上,如果模型的变量过多,也会造成过拟合的现象。因此,需要对原始数据进行特征选择,提取出那些对模型贡献度大的特征。特征选择的方法有很多,本文使用主成分分析法,对原始数据的特征进行提取,根据贡献度的大小,选择4-5个特征,带入到模型中。

预防电费回收风险流程设计

1、对居民和非居民用户的数据进行预处理

2、根据不同的比例,抽出训练集和测试集

3、使用AdaBoost算法对训练集进行学习,得到强分类器

4、利用强分类器对用电客户进行风险分类

5、对不同类别的用户,制定不同的电费回收策略,提高电费回收率

4.总结

电力企业的“先消费后付款”的营销模式,使得电力企业在电费回收过程中面临欠费的风险,所以需要对用电客户风险类别进行分类,然后针对不同类别的客户采取不同的电费回收策略,对高风险用户做到“一户一案”,确保电费“颗粒归仓”。本文根据集成学习Boosting中最流行的AdaBoost算法对用电客户进行分类,得到用户风险类别的模型,得到高风险欠费的用户,便于电力公司对这些用户一对一地制定电费风险防范方案。然而,本文使用的AdaBoost算法主要面对二分类的问题,在多分类的问题上精确度较低,接下来,将对如何提高多分类精度进行深层次的研究,以便提高模型的准确率。

参考文献:

[1]陈羽中,郭松荣,陈宏,等.基于并行分类算法的电力客户欠费预警[J].计算机应用,2016,36(6):1757-1761.

[2]王宇哲,雷霞,陈晓盛,等.基于BP神经网络电力大客户信用等级评价研究[J].电力需求侧管理,2015(5):49-53.

[3]周晖,王毅,王玮,等.基于Logistic回归模型的电力客户欠费违约概率的预测[J].电网技术,2007,31(17):85-88.

[4]周晖,王毅,钮文洁,等.电力客户信用综合评价的研究[J].电力自动化设备,2005,25(12):15-18.

[5]WangJM,WenYQ.ApplicationofDataMininginArrearRisksPredictionofPowerCustomer[C]//InternationalSymposiumonKnowledgeAcquisitionandModeling.IEEEComputerSociety,2008:206-210.

标签:;  ;  ;  

基于AdaBoost算法的供电客户的分类模型
下载Doc文档

猜你喜欢