-
开放科学(资源服务)标志码(OSID):
-
随着电力体制改革的深入,电力系统由于其复杂的结构受到了多方面的影响. 对于电力营销部门而言,电力市场交易类型更加多元化,随着电力客户的不断增长,如何对电力客户信用进行评价成为电力营销部门的一个关键问题. 因此,电力市场监管机构迫切需要一个准确的方法对各级市场客户进行信用评价,为有效防范市场风险提供决策依据,为保障市场规范运行和健康有序发展提供技术支持.
如何建立一个可靠的电力用户信用评价指标是许多研究者关注的重点. 文献[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模型在电力营销数据中对于信用评价效果具有最优表现.
全文HTML
-
客户信用是客户与电力营销机构之间的交易关系,是按照约定合同履行相应义务的情况[17]. 而信用是一个无法衡量的概念,为了对信用进行精细的等级划分,就需要一个具有可量化的指标便于管理. 对于电力营销机构而言,为对客户进行信用等级分类,建立一个能够准确分析用户信息,从而构建有效的区分客户信用等级的评估方法,同时对于新加入的客户根据历史客户信息进行划分也是十分重要的.
信用评估模型就是对客户信用水平、客户质量等级进行准确地评级和科学的评估[18],并以此对不同信用等级客户进行管理的依据,这对于提高电力营销策略制定效果、优化营销效率、规避由于客户的不守约行为而导致的亏损等具有实践性的意义. 通过对相关文献的研究和电力客户历史数据信息,同时根据电力行业客户信用等级划分准则,采用集成学习的思想对电力客户信用级别进行了划分.
-
符号及其含义如表 1所示.
一个数据集中包含n个样本,每个样本具有m维特征,那么对于信任评估模型可以抽象为D={(xi,yi)∣xi∈Rm,yi∈Rm}代表样本空间,其中xi={xi1,xi2,…,xim|i=1,2,…,n}是每个输入的特征表示. 对于XGB模型的主要任务是构建t棵子树作为弱学习模型,其中预测值
$\hat y$ it与决策树之间的关系要满足以下公式:在梯度增强算法的每次迭代中,生成弱分类器ft(xi)(比如决策树生成的结果),并且这次迭代的预测值
$\hat y$ it是前一次迭代的预测值$\hat y$ it-1和这一次迭代的决策树结果ft(xi)的和.因此,构建XGB模型需要解决3个关键问题.
1) 每轮迭代如何建立决策树,也就是叶节点如何进行拆分;
2) 如何确定每个DT上叶节点的预测值;
3) 每个DT与前一个DT有什么关系.
以上这3个问题由目标函数决定如式(2),该算法的目标函数可以表示为
其中l(yi,
$\hat y$ it)代表不同类型弱学习算法的损失函数,用于度量叶节点上真实值yi和预测值$\hat y$ it之间的差距. 而$\sum\limits_{k = 1}^t \Omega \left( {{f_k}} \right)$ 是一个模型的正则项,也被称为惩罚项,用于度量整个模型的复杂程度,常用的正则项包括L1和L2正则,本文用到的正则项可以表示为其中Tk是第k棵树的叶子节点数,γ是叶结点T的收缩系数,ωkj是第k棵树在j个叶子节点上的分数,λ是叶节点得分ω的惩罚系数,Ω(fk)的值需要通过交叉验证进行优化.
根据公式(1),将t轮迭代中第i个样本的预测值
$\hat y$ it带入目标函数式(2)中,并通过式(3)求出的正则化项进行限制. 为了方便求解,将式(2)采用二阶泰勒展开,那么等式结果为其中gi和hi分别是损失函数l(yi,
$\hat y$ it)的一阶和二阶偏导数.定义Ij={i|q(xi)=j}作为DT中第一个叶节点j上的样本点集合,其中构造函数q(x)将样本点x映射到叶节点j的位置,v表示每个叶节点的分数,因此DT的结果可以用ωq(x)表示. 考虑每个DT中f(x)包含一个独立的树结构q(x)和这棵树结果为ωq(x),因此每个DT可以表示为
将公式(5)代入公式(4),可推导出以下方程:
其中
${G_j} = \sum\nolimits_{i \in {I_j}} {{g_i}, {H_j} = \sum\nolimits_{i \in {I_j}} {{h_i}} } $ .在本文中将信用评价问题看为多分类问题,样本实际标签yi的值是一个概率,因此本文选择对数损失函数作为损失函数:
其中
${p_i} = \frac{1}{{1 + {e^{ - \hat y_i^t}}}}$ .对数损失函数的推导如下,在样本空间(x1,y1),…,(xn,yn)中,对于多分类问题,标号列yi的值是0或1. n个样本的概率Yi=yi(i=1,2,…,n),可以根据多项式分布的概率公式得到:
在这种情况下,需要满足最大似然函数lnP最大值. 如果将损失函数设置为-lnP,它可以等效于损失函数的最小值. 然后,损失函数可以表示为公式(7),gi和hi的值可以推导为
同样,对于多分类问题,也可以选择Softmax函数作为损失函数:
其中M代表标签的类别.
-
叶节点预测值的确定是在XGB模型中需要解决的问题之一,假设树结构q(x)是固定的并且保持不变. 根据公式(6),由于
${G_j}{w_{t, j}} + \frac{1}{2}\left( {{H_j} + \lambda } \right)\omega _{t, j}^2$ 是一个关于叶结点预测值wt,j的凸函数,通过对预测值取偏导数,可以找到最佳优化点wt,j*使得目标函数Lt取得最小值.在这种情况下,目标函数的最小值为
其中
${\tilde L^t}$ 可视为衡量树结构q(x)质量的评分函数,因为${\tilde L^t}$ 值越小,树的结构越好. 换句话说,只要可以确定树结构q(x),就可以获得最佳值.XGB模型另一个需要确定的就是叶结点分裂的方式,对于第t棵节点的构建由这个树上的预测值
$\hat y$ it-1和真实值y共同决定. 对于叶结点而言,首先需要确定选择全部特征或者部分特征作为候选特征,然后使用贪心算法,尝试在每次迭代中加入一个分裂点到叶结点中,通过计算高斯分数可以找到最优的分裂点,该过程会一直进行迭代直到达到停止条件,决策树的整个构建也可以称为树结构的确定.假设在叶节点分裂后,在左节点IL和右节点IR上重新发送样本集,I=IL∪IR. 对于每个特征,在每次迭代中不分裂的叶节点其得分函数为
$\tilde L_{{\rm{No - Split}}}^t$ ,分裂后的得分函数值为$\tilde L_{{\rm{Split}}}^t$ ,这两个得分函数的计算可以由以下公式得出:其中G代表分裂后一阶导数之和,H代表分裂后二阶导数之和,L和R分别代表左节点和右节点. 在公式(14)从
$\tilde L_{{\rm{NO - Split}}}^t$ 减去$\tilde L_{{\rm{Split}}}^t$ ,就能得到第t棵树叶节点的损失增益:对每个叶节点选择增益值最大的特征节点作为分裂点,直到达到分裂停止条件才能完成第t棵树的生成. 在生成每棵树之后,将其添加到原始模型中,计算更新后的预测值
$\hat y$ it,然后根据上面的规则继续迭代,最终完成整个模型的构建.XGB通常将公式(15)中的增益值作为评价特征重要性的指标,可以用来衡量某个特征对于预测结果的影响能力,因此可以根据增益值对特征进行过滤.
考虑到在一个叶节点的分裂过程中,总是选择Gain值最大的特征进行分裂(这意味着这个特征具有最强的区分能力),而XGB是一个通过不断累加分支结果进行预测的模型,因此必须同时考虑多棵树的影响. 因此,通过计算所有树上第一个特征的增益值
$\sum\limits_{k = 1}^t {{G_{{\rm{ain}}}}_r^k} $ 与所有树上的所有特征增益值之和$\sum\limits_{r = 1}^m {\left( {\sum\limits_{k = 1}^t {{G_{{\rm{ain}}}}_r^k} } \right)} $ 的比值作为第r个特征变量的重要性指数:其中,Gainrk表示第k次迭代中第r个特征变量的增益值,t是算法的迭代总数,m是特征变量的总数. 重要性指数越高,区分样本的能力越强.
-
首先根据公式(9)和公式(10)计算出损失函数的一阶导数gi和二阶导数hi,然后计算每棵树上的
$\hat y$ it-1,根据第t-1棵树上采用的预测算法以及样本值xi获取预测值结果. 将样本值xi对应的真实值yi也作为XGB的输入. 对于XGB模型而言,根据公式(1)第0棵子树其预测值设为0,即$\hat y$ i0=0. -
为确定当前根节点,需要首先遍历并计算所有特征的增益值,以找到增益得分最大的特征节点作为当前根节点. 迭代过程的具体流程如图 1所示.
-
根据第二步找到增益值最大的特征,将样本集分为两部分,得到两个叶节点样本集,对两个叶节点的集合分别重复上述第二步与样本集划分的过程,不断构建分支节点,直到增益分数为负或满足其停止条件,以此建立整棵树.
-
根据公式(12),叶节点的值ωj可以计算出来,而第二棵树上的预测结果可以通过
$\hat y$ i2=$\hat y$ i1+f2(xi)根据公式(1)和公式(6)依次递推计算出整个树上的所有节点的预测值.重复执行步骤1.4.1到1.4.4,直到建立足够数量的树来保证预测结果能够使评估函数获得最好的效果.
-
据公式(7)获取不同结果的概率,对于多分类问题采用一对多拆分的思想,对每个类别都将其他类别设置为反例,那么就有N个分类器. 每个分类器都能够识别一个固定类别,如果有一个分类器为正类,则就为该类别,若有多个分类器为正类,则选择置信度最高的分类器用于分类. 为使每轮预测值更接近真实值,每棵树都是基于前一棵树的预测结果构建的,从而提高模型的预测效果.
1.1. 信用评价模型基本概念
1.2. 极限梯度提升模型介绍
1.3. XGB模型需要解决的问题
1.4. XGB模型算法预测过程
1.4.1. 初始化
1.4.2. 根节点设定
1.4.3. 建立叶节点集
1.4.4. 计算所有节点的预测值
1.4.5. 输出分类的结果
-
本节将XGB算法应用于一个营销客户数据集中,并与其他4种机器学习算法进行比较,验证了XGB算法在特征选择和分类方面的能力. 首先对数据集进行预处理,因为数据集中存在各种质量问题可能会干扰分类结果,例如数据不平衡、空值、数据异构等问题;然后,将根据特征选择算法提取数据中特征;最后对模型进行训练、测试和评估.
-
本文采用的数据是基于电力营销部门提供的数据集,每季度更新一次. 原始数据集包括2018年1月1日至2018年12月31日期间的样本1 272个,于2019年8月5日下载,包含143个特征变量和1个标签列,标签是根据历史行为信息人工标注的信用等级评价. 考虑到标签栏中包含的7种状态以及电力营销部门的实际状况,将“全额支付” “支付中” “宽限期” “违约” “违约(16~30 d)” “违约(31~120 d)” “指控中”通过编码的形式进行转换. 数据集中不同标签的分布如表 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作为特征选择的方式有一定优势,对于区分客户的信用能力更强.
分类问题中最常见的评价指标是准确率,如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模型由于能够计算不同叶节点上的增益值,汇聚不同节点的预测结果从而达到了最好的预测效果.
从图表分析看,XGB特征选择方法可以有效提取电力营销大数据中的关键特征,这种特征选择方法的优势在不同模型中都可以体现出来. 此外,在表 5和表 6中,XGB的准确率、Kappa值、AUC值和KS值最高,其中准确率说明了XGB模型在预测效果上远超其他模型,这可能是由于多维客户数据基于集成思想的XGB模型能够更好地处理样本数据之间的关系. 而对于Kappa值,它代表处理数据不平衡的能力,而本文采用的数据是呈现明显的长尾分布,而XGB模型通过修改部分参数能够处理样本不平衡的情况. KS值能够反映处理好坏样本的能力,而KS值通常与AUC一起来判断模型预测的效果,KS值越大,体现模型对好坏样本的区分能力越强. 而XGB模型通过集成学习的思想对数据中存在的差异性能够更好地捕捉,实验结果也表明了XGB模型的优越性,效果明显优于其他4个模型,在客户信用评价中能起到更好的表现.
通过本文提出的XGB模型,分析历史的客户信息以及交易信息,从而建立一套可以用于区分客户信用级别的多维度信用评价模型. 该模型采用集成学习的思想,通过树模型的结构对特征计算信息增益,同时采用多个弱学习模型的结果组成一套强学习模型,建立了客户画像,能够有效地对新客户根据其信息进行信用等级预测,能够帮助电力营销部门进行精准营销、规避风险.
2.1. 数据描述
2.2. 数据预处理
2.3. 特征选择
2.4. 结果分析
-
我国作为一个用电大国,对于电力客户信用的研究相对起步较晚,而客户信用问题一直都是困扰电网部门实现精准营销的关键问题. 本文首先研究了近年来客户信用评价模型的研究现状,对电力营销客户信用数据进行了分析,提出了基于XGB算法的信用等级分类问题的理论建模,然后基于电力营销数据集与客户信息数据,将XGB应用于电力营销系统中的信用等级预测,取得了较好的成果,结果表明:
1) 采用XGB模型进行客户信用等级预测,改变了之前采用层次分析法与熵值法无法处理大量数据的情况.
2) 通过采用增益值计算方法与特征重要度指标作为特征选择方法,比传统的特征选择方法其实验表现效果更好.
3) 通过与LR,DT,RF和GBDT的性能对比,验证了XGB在特征选择和分类性能上具有明显优势.