刘翠玲, 胡聪, 王鹏, 洪德华, 张庭曾
国网安徽省电力有限公司 信息通信分公司,合肥 236000
随着电力体制改革的深入,电力系统由于其复杂的结构受到了多方面的影响.对于电力营销部门而言,电力市场交易类型更加多元化,随着电力客户的不断增长,如何对电力客户信用进行评价成为电力营销部门的一个关键问题.因此,电力市场监管机构迫切需要一个准确的方法对各级市场客户进行信用评价,为有效防范市场风险提供决策依据,为保障市场规范运行和健康有序发展提供技术支持.
如何建立一个可靠的电力用户信用评价指标是许多研究者关注的重点.文献[1]提出了客户信用评价指标体系,包括企业财务状况、支付状况等;文献[2]计算了不同信用类别之间的相关系数;文献[3]基于运筹学中的层次分析法对电力客户的信用风险进行了评价;文献[4]采用熵权方法构建了电力客户风险评价模型.
根据方法和类型不同,信用评价方法大致可以分为以下3种:专家系统、统计模型和人工智能方法[5].传统方法依赖于大量结构化的历史数据,基于大数据的信用评价方法则通过分析和挖掘海量、多样化的动态数据,然后利用机器学习算法设计信用评价模型,多维度刻画信用主体的“画像”,向信息使用者呈现信用主体信用状况[6].因此,由于其高效率、高性能和基于大数据样本的优秀处理能力,许多研究者将各种机器学习算法应用于信用风险预测领域.
基于大数据的信用评价最常用的算法是逻辑回归(Logistic Regression,LR),因为它结构简单、可解释性、准确性高.尽管深度学习模型显示出显著的信用评估准确性,但它缺乏可解释性,在处理相对较小的数据集时性能较差,这使得它无法广泛应用于信用评价系统.除此之外,模糊数学在决策类型的算法中也常常能表现出较好的效果,如文献[7]中采用基于模糊的层次分析对风险进行评估,文献[8]采用模糊数学进行了节点选举的决策.同时,以决策树(Decision Tree,DT)、随机森林(Random Forest,RF)、梯度提升决策树(Gradient Boosting Decision Tree,GBDT)和极限梯度提升(eXtreme Gradient Boosting,XGB)为代表的机器学习算法在小数据集上具有优越的预测评价效果,在电力客户信用评价方面有广泛应用[9].机器学习算法在分类和回归问题上具有良好的性能,并且可以在相对较短的训练时间内获得更好的预测效果.其中DT是预测个人信用的代表性算法,因为它在效率、准确性和可解释性方面表现出显著的优势[10].然而,单一的机器学习方法往往会导致过拟合,并且难以处理实际问题中出现的数据集不平衡问题,为了弥补单一机器学习方法的不足,集成学习技术应运而生,并逐渐成为机器学习研究领域的主流方法.
集成学习理论起源于Kearns等[11]提出的强学习和弱学习的等价原则,这种原则规定为得到一个优秀的强学习模型,可以将几个简单的弱学习模型结合起来进行综合考虑.考虑到DT算法在各种机器学习算法中性能较好,训练时间相对较短,提出了基于DT的集成学习方法,RF、GBDT和XGB就是集成学习和DT相结合的典型集成算法.文献[12]首次结合集成方法、DT算法和随机子空间方法提出了RF算法;文献[13]提出了解决回归和分类问题的GBDT算法;文献[14]采用了一种改进的GBDT算法和XGB算法并与RF模型进行了实验对比,结果表明,XGB算法能够取得更优越的效果.XGB起源于高效Boosting集成学习模型,它利用树分类器获得了更好的预测结果和更高的运行效率,在数据竞赛平台Kaggle的竞赛中取得了优异的成绩.近年来,文献[15]将LR,DT,神经网络与XGB进行了比较,并通过混淆矩阵和蒙特卡罗模拟基准作为评价指标,验证了XGB算法在信用评价中的优越性能;文献[16]提出了一种新的集成模型,利用叠加法框架对XGB、支持向量机(Support Vector Machine,SVM)和RF进行建模,实验表明,所提出的集成模型对信用评价方面具有更好的预测能力.
基于以上分析,集成学习理论适用于电力营销部门的多维数据中,采用XGB模型能够对客户数据进行建模并对客户信用情况进行预测.因此,本文首先针对分类问题对XGB模型进行了重组,并给出了使用XGB模型进行特征选择的理论依据.随后,本文利用电网营销平台提供的电网客户评估数据进行建模,并采用基于XGB算法的非线性方法代替传统的线性方法对特征选择方法进行改进,结果表明,基于XGB模型的特征选择方法对5种模型都有显著的改进效果.随后,对XGB,LR,DT,GBDT,RF 5个模型的信用评价效果进行了对比分析,其中XGB模型在电力营销数据中对于信用评价效果具有最优表现.
客户信用是客户与电力营销机构之间的交易关系,是按照约定合同履行相应义务的情况[17].而信用是一个无法衡量的概念,为了对信用进行精细的等级划分,就需要一个具有可量化的指标便于管理.对于电力营销机构而言,为对客户进行信用等级分类,建立一个能够准确分析用户信息,从而构建有效的区分客户信用等级的评估方法,同时对于新加入的客户根据历史客户信息进行划分也是十分重要的.
信用评估模型就是对客户信用水平、客户质量等级进行准确地评级和科学的评估[18],并以此对不同信用等级客户进行管理的依据,这对于提高电力营销策略制定效果、优化营销效率、规避由于客户的不守约行为而导致的亏损等具有实践性的意义.通过对相关文献的研究和电力客户历史数据信息,同时根据电力行业客户信用等级划分准则,采用集成学习的思想对电力客户信用级别进行了划分.
符号及其含义如表1所示.
表1 符号参考表
…
(1)
因此,构建XGB模型需要解决3个关键问题.
1) 每轮迭代如何建立决策树,也就是叶节点如何进行拆分;
2) 如何确定每个DT上叶节点的预测值;
3) 每个DT与前一个DT有什么关系.
以上这3个问题由目标函数决定如式(2),该算法的目标函数可以表示为
(2)
(3)
其中Tk是第k棵树的叶子节点数,γ是叶结点T的收缩系数,ωkj是第k棵树在j个叶子节点上的分数,λ是叶节点得分ω的惩罚系数,Ω(fk)的值需要通过交叉验证进行优化.
(4)
定义Ij={i|q(xi)=j}作为DT中第一个叶节点j上的样本点集合,其中构造函数q(x)将样本点x映射到叶节点j的位置,v表示每个叶节点的分数,因此DT的结果可以用ωq(x)表示.考虑每个DT中f(x)包含一个独立的树结构q(x)和这棵树结果为ωq(x),因此每个DT可以表示为
f(x)=ωq(x),ω∈RT,q:Rd→{1,2,…,T}
(5)
将公式(5)代入公式(4),可推导出以下方程:
(6)
其中Gj=∑i∈Ijgi,Hj=∑i∈Ijhi.
在本文中将信用评价问题看为多分类问题,样本实际标签yi的值是一个概率,因此本文选择对数损失函数作为损失函数:
(7)
对数损失函数的推导如下,在样本空间(x1,y1),…,(xn,yn)中,对于多分类问题,标号列yi的值是0或1.n个样本的概率Yi=yi(i=1,2,…,n),可以根据多项式分布的概率公式得到:
(8)
在这种情况下,需要满足最大似然函数lnP最大值.如果将损失函数设置为-lnP,它可以等效于损失函数的最小值.然后,损失函数可以表示为公式(7),gi和hi的值可以推导为
gi=pi-yi
(9)
hi=pi(1-pi)
(10)
同样,对于多分类问题,也可以选择Softmax函数作为损失函数:
(11)
其中M代表标签的类别.
(12)
在这种情况下,目标函数的最小值为
(13)
(14)
(15)
XGB通常将公式(15)中的增益值作为评价特征重要性的指标,可以用来衡量某个特征对于预测结果的影响能力,因此可以根据增益值对特征进行过滤.
(16)
1.4.1 初始化
1.4.2 根节点设定
为确定当前根节点,需要首先遍历并计算所有特征的增益值,以找到增益得分最大的特征节点作为当前根节点.迭代过程的具体流程如图1所示.
图1 迭代寻找最大增益流程
1.4.3 建立叶节点集
根据第二步找到增益值最大的特征,将样本集分为两部分,得到两个叶节点样本集,对两个叶节点的集合分别重复上述第二步与样本集划分的过程,不断构建分支节点,直到增益分数为负或满足其停止条件,以此建立整棵树.
1.4.4 计算所有节点的预测值
重复执行步骤1.4.1到1.4.4,直到建立足够数量的树来保证预测结果能够使评估函数获得最好的效果.
1.4.5 输出分类的结果
据公式(7)获取不同结果的概率,对于多分类问题采用一对多拆分的思想,对每个类别都将其他类别设置为反例,那么就有N个分类器.每个分类器都能够识别一个固定类别,如果有一个分类器为正类,则就为该类别,若有多个分类器为正类,则选择置信度最高的分类器用于分类.为使每轮预测值更接近真实值,每棵树都是基于前一棵树的预测结果构建的,从而提高模型的预测效果.
本节将XGB算法应用于一个营销客户数据集中,并与其他4种机器学习算法进行比较,验证了XGB算法在特征选择和分类方面的能力.首先对数据集进行预处理,因为数据集中存在各种质量问题可能会干扰分类结果,例如数据不平衡、空值、数据异构等问题;然后,将根据特征选择算法提取数据中特征;最后对模型进行训练、测试和评估.
本文采用的数据是基于电力营销部门提供的数据集,每季度更新一次.原始数据集包括2018年1月1日至2018年12月31日期间的样本1 272个,于2019年8月5日下载,包含143个特征变量和1个标签列,标签是根据历史行为信息人工标注的信用等级评价.考虑到标签栏中包含的7种状态以及电力营销部门的实际状况,将“全额支付” “支付中” “宽限期” “违约” “违约(16~30 d)” “违约(31~120 d)” “指控中”通过编码的形式进行转换.数据集中不同标签的分布如表2所示.
表2 数据集标签分布
由于样本之间的比例不均衡,出现了长尾现象,本文采用了分层随机采样的方式,将大样本量与小样本量的分布控制在4∶1.根据实际经验,手动删除了29个不符合进入模型标准的特征,选择了114个特征,考虑到某个特征在有大量空值时不再具有代表性,因此删除了缺失比例超过50%的35个特征,还剩余79个特征.对于字符数据通过独热编码的方式进行转换,即将字符类别变量转化为易于模型学习的数字形式,并采用所有非空值的平均值填充数据列中空值,针对离散数据列中的空值采用0进行填充.
为了验证XGB特征选择的有效性,首先使用传统基于线性的皮尔逊相关图选择特征方法进行特征提取,传统线性方式的流程如下:首先输入数据预处理后的79个特征,对于每个自变量计算其预测能力,用皮尔逊相关图找出任意两个特征之间的相关系数.为了提高模型效率和减少数据冗余,对于两个相关系数大于0.6的特征,只能保留预测能力较高的特征.经过基于线性的皮尔逊相关图选择特征方法,一共选择了17个特征,这意味着处理后的最终数据集将只包含这17个特征.
基于XGB的特征选择模型采用经过数据预处理后的79个特征作为特征提取模型的数据集,将所有的特征放入XGB特征提取模型中,计算每个特征的增益值与重要性指数,获取不同特征对于预测值的重要度的排名,可以采用XGB库中提供的Get_Fscore函数返回由高到低排序的特征重要性索引表,然后选取重要度指标最高的17个特征,与之前方法选择的特征相比,有9个不同的特征.
在本节中,将XGB的预测结果与LR,DT,RF和GBDT进行比较,从而评估模型的性能.
原始数据集在每个部分的样本比例保持不变的前提下,随机分为5个部分,模型的预测效果将通过五重交叉验证来验证,这意味着将随机选择4个部分作为训练集,剩余一个部分作为测试集.对于原始数据将被随机分成5个集合s1,s2,…,s5,使5个集合的大小和分布相等.然后将5个集合中的一个用作测试集合,其余4个集合被用作训练集合.最后,将这5个测试集的平均值作为模型的最终预测结果.
在模型训练过程中,采用Python提供的相关函数进行处理,通过GridSearch(网格搜索)函数返回每个模型的最优参数.为便于处理,对没有违约的客户作为正例,而违约的客户作为反例.根据抽样后分组的数据即每组254个样本数据,在对比两种特征选择方法后构建混淆矩阵如表3、表4,可以看出采用XGB作为特征选择的方式有一定优势,对于区分客户的信用能力更强.
表3 传统特征选择方法的混淆矩阵
表4 XGB特征选择方法的混淆矩阵
分类问题中最常见的评价指标是准确率,如Kappa,AUC等,它们通常是一起考虑的.其中Kappa通常用于衡量不平衡数据集中的分类准确率,Kappa越高,分类准确率越高.通过计算分类问题标准评价指标ROC和AUC,绘制ROC曲线.ROC曲线通常用于衡量模型的预测性能,AUC(ROC曲线下的面积)用于评估分类系统的性能.AUC的取值范围为[0,1],AUC越大,模型的分类效果越好.
基于传统特征选择和XGB特征选择方法的5种模型的性能分别如表5和表6所示.可以看出本文采用的基于XGB特征选择方法比传统特征选择方法在各个模型上都能取得明显的优势,同时XGB在分类效果上能取得最好的效果.两种特征选择方法的ROC曲线与准确率如图2所示,也能明显看出XGB特征选择方法由于采用了特征重要度指标与增益值两个指标,对于特征选择的效果优于传统基于皮尔逊系数的方法.两种特征选择方法的5个对比模型的ROC曲线如图3所示,可以看出基于树的模型如XGB,RF,GBDT等采用集成学习的思想能够对客户信用做出一个较为准确的预测,而传统的方法只是采用单一模型去拟合电力客户数据,可能会欠缺某些关键特征的获取.而XGB模型由于能够计算不同叶节点上的增益值,汇聚不同节点的预测结果从而达到了最好的预测效果.
图2 不同特征选择方法对比
图3 两种特征选择方法的5个对比模型的ROC曲线
表5 基于传统特征选择的5种模型表现
表6 基于XGB特征选择的5种模型表现
从图表分析看,XGB特征选择方法可以有效提取电力营销大数据中的关键特征,这种特征选择方法的优势在不同模型中都可以体现出来.此外,在表5和表6中,XGB的准确率、Kappa值、AUC值和KS值最高,其中准确率说明了XGB模型在预测效果上远超其他模型,这可能是由于多维客户数据基于集成思想的XGB模型能够更好地处理样本数据之间的关系.而对于Kappa值,它代表处理数据不平衡的能力,而本文采用的数据是呈现明显的长尾分布,而XGB模型通过修改部分参数能够处理样本不平衡的情况.KS值能够反映处理好坏样本的能力,而KS值通常与AUC一起来判断模型预测的效果,KS值越大,体现模型对好坏样本的区分能力越强.而XGB模型通过集成学习的思想对数据中存在的差异性能够更好地捕捉,实验结果也表明了XGB模型的优越性,效果明显优于其他4个模型,在客户信用评价中能起到更好的表现.
通过本文提出的XGB模型,分析历史的客户信息以及交易信息,从而建立一套可以用于区分客户信用级别的多维度信用评价模型.该模型采用集成学习的思想,通过树模型的结构对特征计算信息增益,同时采用多个弱学习模型的结果组成一套强学习模型,建立了客户画像,能够有效地对新客户根据其信息进行信用等级预测,能够帮助电力营销部门进行精准营销、规避风险.
我国作为一个用电大国,对于电力客户信用的研究相对起步较晚,而客户信用问题一直都是困扰电网部门实现精准营销的关键问题.本文首先研究了近年来客户信用评价模型的研究现状,对电力营销客户信用数据进行了分析,提出了基于XGB算法的信用等级分类问题的理论建模,然后基于电力营销数据集与客户信息数据,将XGB应用于电力营销系统中的信用等级预测,取得了较好的成果,结果表明:
1) 采用XGB模型进行客户信用等级预测,改变了之前采用层次分析法与熵值法无法处理大量数据的情况.
2) 通过采用增益值计算方法与特征重要度指标作为特征选择方法,比传统的特征选择方法其实验表现效果更好.
3) 通过与LR,DT,RF和GBDT的性能对比,验证了XGB在特征选择和分类性能上具有明显优势.