段然, 胡华俊, 黄龙, 李培
(广东电网有限责任公司江门供电局, 广东,江门 529000)
当前,电力企业中每月都会有大量的用户出现欠费的情况。这部分客户欠费的原因多样,当归纳起来包括主观因素欠费和客观因素欠费,如故意欠费、房子出租欠费等。而用户缴费行为来讲,也呈现出多样化的趋势,如拖欠用户几天后缴费,也存在部分拖欠的用户在1~2月或半年缴费的情况。在复杂拖欠费和缴费中,如何保障电力企业顺利对电费进行回收,进而提高电力部门的回收效率,提升自我的经济效益等,是当前思考和研究的重点。对此,有必要从欠费用户识别出某用户或某类用户是否属于恶意欠费,以便于供电部门能够进一步采取措施,以减少电力部门的损失。因此,构建一套可对恶意用户进行识别的系统,很有必要。但传统的欠费挖掘大部分是采用K均值聚类,或模糊均值聚类,并且以客户画像标签作为基础,然后对客户进行分类,进而得到不同欠费客户的特征[1-4]。但是,这些方法也存在一些问题,如模糊均值聚类模型不具备伸缩性,一旦确立,聚类的标准也就确定了,这不利于供电部门弹性的开展收费工作,因为对那些恶意拖欠的电力用户,需要投入大量的人力、物力和财力。同时,对恶意欠费的识别问题,属于对离群点的检测,往往需要建立用户标签,然后才能进行有效识别。由此,针对以上的问题,提出了一种基于机器算法识别的电费催缴系统,并对该系统进行详细的设计。
结合当前主流的系统框架,采用B/S+JDK1.7+Apache+Oracle对系统进行搭建,将系统分为数据层、业务层和展示层。具体架构如图1所示。
图1 系统整体架构
在图1的整体框架中,数据库服务器的管理系统采用Oracle,Web服务器采用Apache HTTP Server进行搭建。
结合电力营销部门在电费催收方面的业务,将该系统的整体功能模块分为自动催费、电费查询、催费及通知时间设定、催费记录查询、数据接口、恶意欠费识别、登录与注销等模块。具体如图2所示。
图2 催收系统功能模块设计
在上述的整体功能架构中,登录注册主要用于保障系统应用的安全性,进而通过注册登录的方式对用户进行信息核实,对通过审核的客户,或者与后台存储信息一致的客户方可登录;电费查询模块负责对某用户电费的查询,以方便工作人员及时获取相关的客户电费信息;数据接口主要负责与SG186营销系统、农电营销系统等电力营销系统服务器进行连接,以方便及时获取用户的缴费信息记录等;恶意欠费识别模块主要是根据缴费记录信息,对欠费群体中的恶意欠费用户进行识别。在识别中,包含指标体系、识别模型和识别结果。其中在识别模型中主要引入非监督算法对恶意欠费用户进行识别;自动催费模块主要包括催费及通知时间设定、催费次数设定、催费语音三个模块。如针对识别出的恶意欠费用户,可根据其恶意程度进行不同的语音催费方式和次数;催费记录查询主要提供恶意欠费用户的催费信息。
为更好的识别出用户是否为恶意欠费,引入用户欠费风险值V。研究认为,用户欠费风险值V是由两个因素决定:一是恶意程度P,该值主要用于衡量用户欠费的概率,或者是用户欠费所带来的严重程度;二是用户欠费经济损失L[5-7]。
在上述的两个决定指标P和L中,P又由四个二级指标来决定,主要包括用户欠费次数(QFCS)、欠费密度(QFMD)、欠费总时长(QFZSC)、最近欠费日离当前日时长(ZJQFSC);经济损失L又由用户欠费总额(QFZE)、应收违约金总额(WYJZE)决定。其中,QFZSC指标是按照天来进行统计,ZJQFSC指标则是按照月来进行统计。QFMD的定义为:当QFCS=1时,QFMD=0;当QFCS≥2,QFMD=QFCS/QFZSC;0≤QFMD≤1,且QFMD≥0.5时,此时某用户必然存在连续欠费的情况。同时,QFCS、QFMD、QFZSC越大,说明恶意欠费的程度越大;而最近欠费日如果离当前的欠费日的间隔越长,那么说明用户恶意欠费的程度就越小。
欠费风险值计算主要是结合用户历史的缴费数据作为依据,考虑在最近N月内缴费的恶意欠费长度。具体计算为[8-10]
P=p1×1-1QFCS+1+p2×qfind+
p3×1-1SQFCS+1+p4×1-qfzjsc36
(1)
而用户造成的经济损失L计算公式为
L=L1×log2000(syswyj+1)+L2×log2000(sqf+1)
(2)
用户欠费的危害性V则为
V=f(P,L)
(3)
结合上述的指标计算方法,在计算用户相关指标的同时,从大量的数据中筛选出恶意欠费的用户,以便于电力企业进一步采取措施,如电话催收、邮件催收等。具体流程则是结合用户的缴费记录,计算出恶意欠费程度P和经济损失L,然后设定欠费危害性的阈值V0,一旦阈值超过V0,并结合当前欠费用户情况,那么则判定其为恶意欠费用户。具体如图3所示。
图3 恶意欠费识别模型
通过图3的恶意欠费识别流程看出,该流程为一个动态的模型,即用户是否为恶意欠费,其关键的是由N来决定。即随着N的变化,可实时的对用户在连续N个月内的缴费情况进行统计和分析。当用户的缴费发生变化,其欠费风险值也在不断的变化。如某用户在当前月的欠费风险值高,当在今后的N个月中不欠费,那么其风险值自然会减为零。
在登录模块中,主要设计两级权限用户,以满足系统登录的安全要求。对一般用户而言,可实现电费查询、催费信息查询、自动催费、恶意欠费识别等功能;对系统管理员而言,除以上的功能以外,还可以对用户的权限进行划分,并新增、删减和修改用户信息。具体流程如图4所示。
图4 登录模块设计
恶意欠费用户的识别实现中,首先是设置恶意欠费计算的周期N;然后对用户欠缴费信息进行读取;根据式(1)—式(3)计算风险值,并根据设定的阈值,判断该用户是否为恶意欠费用户,并罗列出恶意欠费用户的清单。具体可以用图5来表示。
图5 恶意欠费用户识别实现流程设计
在完成恶意欠费用户的识别后,还需要对恶意欠费用户进行催收,以提高电力企业自动催收的效率。本文结合当前的信息,提出采用语音自助催收的方式对这部分恶意欠费用户进行催收。具体则是管理员登录催收客户端,然后查询欠费者名单,然后选择催收方式,并呼叫用户,最后播放催收语音。具体流程如图6所示。
系统实现部署采用Apache服务器。Apache服务器为Apache软件基金会提供的一个开源网页服务器,可在大部分计算机操作平台中运行。由于该服务器开源,所以被广泛应用。该服务器可快速、可靠,并通过简单的API扩展,将Perl/Python等解释器编译到服务器当中。具体部署流程
图6 语音自动催收流程
为:首先创建Python3.6的虚拟环境,主要安装Python库和连接Oracle所用的dll文件,然后将这些虚拟环境的文件夹放在对应的项目文件夹目录下;其次是安装Apache服务器,并设置相关的参数。
为验证上述设计方案的可行性,特别是恶意欠费用户识别方面,结合上述的系统,对恶意识别欠费进行验证。
4.2.1 概率函数选取
取N=36,即取该用户在过去36月内的用电历史缴费记录进行建模。在恶意程度p的计算中,选择如下的概率化函数。
通过图7的概率函数看出,f1、f3的特点在于初期快速上升,后期则呈现出缓慢上升的状态;f4函数的特点在于铅板部分缓慢上升,但是后半部分快速的下降。而上述函数则表示为:当ZJQFSC值越大,表明用户在快速的减弱其恶意程度,也就是用户在最近的连续周期内没有或很少出现欠费的记录。由此,这符合对恶意欠费的经验判断。比如,以用户在3个月前欠费,和一个客户在2年之前欠费,其恶意程度要明显小很多。同时,高斯型模型g不满足要求,主要原因是前半部分下降太快,后半部分则接近为0。同时在本文的实验中,指标的权重取均等,即都为0.25。
图7 概率化函数的选择影响识别效果
同时,在对经济损失值L进行计算的过程中,选择如下的概率化函数[11]。
g1(x)=logW(x+1)
g2(x)=logQ(x+1)
(4)
式中,W,Q为常数,并满足W≥maxWYJZE+1,Q≥maxQFZE+1。而结合相关的文献研究,本文中的W,Q分别取值为1 000、10 000。指标的权重取均等,即都为0.5。
在欠费风险值计算中,函数f取乘积算子。即风险值计算公式为
V=P×L
(5)
4.2.2 恶意识别结果
以上述模型作为分类器,以广东韶山供电局营销系统中的欠费用户缴费记录作为依据,设定风险值的阈值在0.9 表1 电力用户A欠费记录 表2 A用户各指标值 设定风险值的阈值V<0.1,根据计算可以得到用户B的欠费风险值为0.06,具体的欠费记录和指标见表3、表4。 表3 B用户欠费记录 表4 B用户各指标值 4.2.3 恶意识别阈值设定界面 阈值设置的作用是在一定程度上控制恶意欠费用户的数量。阈值越大,能够识别出的恶意欠费的用户数量越少,反之越多。同时,阈值的设置没有明确的规定和标准,一般是根据各个电力企业的实际情况来判定,并结合经验来设置。如果阈值设置为0,那么得到的数据就是当月欠费的所有用户。本文通过开发,得到的阈值设置界面如图8所示。 4.2.4 语音催收界面 语音催收主要实现催收及通知时间设定、催收次数设置等功能。图9为语音催收的设置界面。通过该界面,各供电站可根据自身的情况,设置不同的催收次数等。 图8 恶意欠费阈值设定界面 图9 语音催收界面 本文通过借助B/S+Oracle+MVC等技术手段实现了电力系统的电力催收,进而通过网络即可实现对用户欠费的催收。而本文的特色在于,结合海量的历史欠费记录,提出一种非监督算法,即引入风险值实现对不同恶意欠费用户风险值的计算,并根据经验设置风险值的经验值,以达到判断恶意欠费用户的目的。结果表明,通过上述的恶意欠费识别模型,可有效提取部分恶意欠费用户,并且通过该系统可实现对恶意欠费用户的自助电费催收。5 总结