一种基于部分堆栈融合的用户信用评估模型的制作方法

文档序号:12272874阅读:160来源:国知局
一种基于部分堆栈融合的用户信用评估模型的制作方法与工艺

本发明涉及信用评估领域,特别涉及一种基于部分堆栈融合的用户信用评估模型。



背景技术:

用户信用评估在银行、金融等领域已经有较为完备的发展,其评估的方式主要依赖用户主动提供与第三方提供的用户个人实名信息。评估的维度主要是依赖问卷资料调查与访问得到的几十维用户信息,在模型的构建上,由于描述用户的维度小,所以也很难构建出一个鲁棒性与可扩展性强的模型。而互联网金融的持续扩展,让用户的线上交易更加频繁,这也意味着用户的信用数据,不再依赖于线下调查的方式,可以通过用户使用互联网的行为来扩展描述用户信用的维度。这些维度涉及到资金交易、用户社交、使用互联网的行为偏好等等。而由于用户数据的维度的增长,传统方式中使用的模型与方法很难适应数据的高维度、缺失值严重、数据不均衡的问题。数据不均衡指的是,在所有的涉及到借贷的用户中,信用良好、按时还款的用户占据绝大部分,用户信用差的用户只有小部分。这个是信用评估中最重要的一环,如何尽量多的识别出信用差的用户,并且不错判一个信用好的用户为信用差得用户。

本发明提出一个部分堆栈融合的用户信用评估模型。融合模型(blend model)是数据挖掘领域将多个简单模型通过各种的方式来融合,增加模型在评测指标中的表现能力的方法。常用的场景有分类问题和回归问题。其中,在分类问题中,指标AUROC(Area under the Receiver Operating Characteristic Curve)是常用的评价指标,常用于不均衡数据的分类效果评价。如下公式可得到:

其中,P和N分布为测试集中正样本和负样本的个数,Si表示任意两个正负样本对的得分,可以定义为:

AUROC是评估二分类问题中,模型对正样本与负样本的误判率的比例。这样模型对样本的评估是一个概率值,对于这个概率值进行不同模型的融合,可以提升融合模型对样本的评估能力。现有的常用融合模型有:

概率平均融合(probability average blend):

前面提到,对用户信用进行评估,即评估其是信用良好用户的概率P,为信用差的用户概率即为1-P。如果训练N个模型,得到一个用户在N个模型的概率为{Pmodel_1,…,Pmodel_k,…,Pmodel_N}。那么,直接对概率进行融合,可得到用户为信用良好用户的概率为:

排名平均融合(rank average blend):

在金融借贷过程中,银行或借贷公司更加愿意将贷款借给一个信用更加良好的用户。所以,银行或借贷公司关注的是用户间的相对排名,对于用户信用值越靠前的用户,将会得到更高额度的借款,而排名越后的用户基本上得不到借款。所以,排名融合也是一种增加用户信用评估的融合方法。在一个模型中,假设有M个用户,那么每个用户根据概率,可以得到所有用户在这个模型的排名。那么如果训练N个模型,则每个用户都可得到其在所有模型中的排名{Rankmodel_1,…,Rankmodel_k,…,Rankmodel_N}。可得到用户所有模型中的一个综合排名:

将所有的用户排名转换为0到1的区间。则可以得到用户的概率。

中位数融合(median blend):

中位数融合,是将用户在N个模型中的中位数作为信用良好用户的概率。使用中位数融合的好处是将个别用户的极端概率预测去除,中位数是在众多模型中一个较为稳定的值。但是,中位数融合依赖所有模型的整体表现,如果部分模型的预测能力较差,则会对用户的信用评估造成偏移。

堆栈融合(stacking blend):

堆栈融合是一种模型重训练融合的方法。它以前面不同之处在于,将前面N个模型输出的概率作为第二层模型的特征,然后再对N个新的特征进行模型的训练,得到用户最终信用概率。堆栈模型的好处是通过利用模型间的差异性,通过重新训练的方法来获得更加准确的模型表达。但是在用户信用评估中,由于数据的不均衡,多个模型间的直接堆栈融合会受到较差模型的影响,不能很好的提升用户信息的排名能力。



技术实现要素:

本发明的目的是针对上述问题,对用户信用评估的用户数据进行了深入的挖掘,利用模型的差异性,结合堆栈模型的优势,提出一种部分堆栈融合的方法,很好的解决了信用评估中的数据不均衡问题,使模型用户信用评估的能力效果更好。

在用户信用评估过程中,如果将用户分为两个类别(信用好、信用差),那么用概率P来评估用户为好用户的概率,1-P则为用户为信用差用户的概率。由于前面所述的用户不均衡,即现实中大部分用户都是信用良好的用户。在建立评估模型的过程中,不同模型对不同用户的信用区分能力差异性很大。即有些模型的对一部分用户的区分能力较强,但是整体的区分能力不强。具体的表现为:对于树模型,如XGBoost,随机森林(random Forest),由于在训练的过程中,通过设置样本的权重,设置树的深度与正则项来防止过拟合,所以树模型对于信用极好或信用极差的能力较强。而线性模型,如逻辑回归模型,对于极端的用户信用的评估能力较差,但其对于中间用户的评估能力比树模型要好。由于线性模型与树模型的实现差异性,利用这个差异性,结合模型堆栈的思想,本发明提出一个部分堆栈融合的信息用过模型,如图2所示:

一种基于部分堆栈融合的用户信用评估模型,其特征在于包括以下步骤:

S1、对所有的用户数据建立N个模型,在所有模型中,选择AUROC值最高的一个最优模型〖Model〗_best;

S2、选择一个与最优模型差异性最大的模型〖Model〗_differ,根据两个模型对所有用户的排名作差值〖Rank〗_best-〖Rank〗_differ,对于差值大于0的用户,说明〖Model〗_differ比〖Model〗_best对这部分用户的排名能力要好;

S3、选择这样的部分用户,用差异性模型重新训练,将这个模型的Top K个用户直接置为信用良好的用户,这样可以将原本〖Model〗_best判别为信用较差的用户进行校正。

进一步的,步骤S2中所述排名越低,用户的信用越好。

进一步的,所述模型包括线性模型与决策树模型。

进一步的,所述线性模型包括Lasso、Liblinear、Linear-SVM,所述决策树模型包括XGBoost。

进一步的,所述最优模型〖Model〗_best选定为XGBoost,所述与最优模型差异性最大的模型〖Model〗_differ选定为liblinear模型。

本发明的有益效果是:在互联网金融时代,用户是一家公司的根基,而用户信用评估模型不能错判一个信用良好的用户造成客户损失。通过使用部分堆栈融合模型,会使用AUROC比原来的最优模型提升0.003。而且,这些提升都是对最优模型判别为较差的用户进行的校正提升,这对现实的商业场景具有重要意义。

附图说明

图1为堆栈融合的实现方式图;

图2为部分堆栈融合的用户信用评估模型整体框架图;

图3为基础模型的训练与处理图;

图4为XGBoost 2000与XGBoost 2500的排名差示意图;

图5为XGBoost 2000与线性模型liblinear 2500的排名差示意图。

具体实施方式

为了使本发明的目的、技术方案以及优点阐述的更加清楚明白,以下参照附图做进一步详细的说明。

一种基于部分堆栈融合的用户信用评估模型,其特征在于包括以下步骤:

S1、对所有的用户数据建立N个模型,在所有模型中,选择AUROC值最高的一个最优模型〖Model〗_best;

S2、选择一个与最优模型差异性最大的模型〖Model〗_differ,根据两个模型对所有用户的排名作差值〖Rank〗_best-〖Rank〗_differ,对于差值大于0的用户,说明〖Model〗_differ比〖Model〗_best对这部分用户的排名能力要好;

S3、选择这样的部分用户,用差异性模型重新训练,将这个模型的Top K个用户直接置为信用良好的用户,这样可以将原本〖Model〗_best判别为信用较差的用户进行校正。

其中所述排名越低,用户的信用越好。

以下将对本发明进行更详细的阐述:

1)基础模型的训练

在基础模型训练的过程中,考虑到模型实现的差异性,我们选择两类基础模型来进行训练:线性模型与决策树模型。模型的差异性有利于利用不同模型对不同样本的信用评估优势,达到融合最优。

线性模型:将特征与目标值以广义线性函数的方式来表达,通过学习不同特征的权重来使模型达到最优。求解线性模型是一个性质良好的无约束优化问题,利用梯度下降法、牛顿法和拟牛顿法可以学习到模型的最优权重。而通过规则化的方法可以避免模型在个别权重上绝对值过大,防止过拟合。

非线性模型:树模型是一种决策树模型,通过目标值在不同特征上的概率分布,利用熵(Entropy)与基尼系数(GINI coefficient)来得到最佳的子树分裂进而对样本进行分类或回归。基于一个单子树模型,衍生出众多组合模型的方法,增加树模型的表达能力。例如:随机森林(Random Forest)中的多棵树进行部分样本抽样,建立多棵树,然后用投票(voting)的思想来选择最优的分类或回归结果;提升(boosting)方法,利用多棵树的训练,多样本的权重进行训练,模型增大一些较难分样本的权重。

本发明中使用了以下4种类型的基础模型进行训练,其中,Lasso、Liblinear、Linear-SVM是线性模型,XGBoost是决策树模型。其优点分别如下表1:

表1:基础模型的选择与优势

对以上模型进行如图3的训练。

我们对互联网借贷数据进行用户信用评估,发现非线性模型对用户信用的评估能力要比线性模型要高。但由于非线性模型与线性模型原理的差异性,对两个模型进行融合,将会得到更加好的效果。通常的做法是进行线性权重融合、排名融合或堆栈融合。但由于数据的正负样本严重不均衡,实验中发现两种模型的直接融合对AUROC提升不明显,所以需要有部分堆栈融合的思想来解决这个问题。

2)模型的选择与差异性判定

在对真实的互联网借贷数据进行信用评估后,得到试用XGBoost模型来对用户进行AUROC的评估效果要高于其他模型。所以,我们选择XGBoost作为融合的最佳基础模型,基于XGBoost来寻找其差异性最大的模型。基于前面所述的线性模型与非线性模型的实现原理差异,我们发现与XGBoost差异性最大的模型为liblinear模型。具体的差异性由以下两幅图说明:

图4展示的为XGBoost相同参数下,进行2000轮迭代和2500轮迭代的排序相差对比图。横坐标为XGBoost2000的正样本端(用户信用良好)到负样本端(用户信用差)的样本排名;纵坐标为XGBoost2000与XGBoost2500的排名差。其中,红点代表负样本,蓝点代表正样本。XGBoost在中间的分类能力差,且不稳定。在两端的排名是比较稳定的。这也是为什么XGBoost比其他分类器要好的原因。中间部分基本上每次都会出现不同的排名,这说明XGBoost对这部分样本的预测结果比较随机。

图5展示的为XGBoost与线性模型liblinear对相同样本排名差对比图。从图中可以看出,在每个区间内,XGBoost与线性融合模型的排名差都是相对稳定的,而且整体随着样本越靠近负样本端,相差的差距就会越大。整体从正样本端到负样本端以一个固定的斜率上升。这说明线性模型分类策略与XGBoost的非线性分类策略不同,且在整个样本排名区间是相对稳定的。而事实上XGBoost的预测结果要比线性融合模型的结果要好。而XGBoost在正负样本的分类结果稳定,这说明XGBoost对两端易分的样本的非线性分类结果要比线性融合模型的结果要好,而中间的不稳定区域却没有体现出XGBoost的优势。

3)选择部分用户与模型再训练

通过不同模型的尝试,最好的单模型是XGBoost模型。而其他线性模型效果差比较多。非线性模型liblinear还是有很大差距。而线性模型直接与XGBoost进行融合,得到AUROC会比原来的预测结果不会又明细提升且不稳定。所以,不能简单的将两个模型进行权重融合或排名融合。单模型训练时,发现其稳定性比较差。具体表现为,XGBoost对预测样本的排名,在AUROC=0或AUROC=1两端的排名比较稳定,而对AUROC=0.5中间范围的预测排名极为不稳定。比如:XGBoost训练2000轮预测一个样本排名为2000名,而XGBoost训练2500轮预测相同样本则排序在3000名,差距非常大。而这些差距很大的样本大部分是正样本。如果通过模型错判一个信用良好的用户,将会对现实业务产生严重的影响。所以,如何预测这部分不稳定的正样本,对于整个模型的提升起到重要作用。因此,利用其它的分类器来改进XGBoost不能区分的一部分,对样本进行局部的融合。同时训练XGBoost和线性模型,对XGBoost与线性模型预测结果相差较大的样本独立出来,组成一个小的样本空间,再对整个小样本空间进行线性模型训练预测。将预测结果认为排序靠近正样本的TOP K个样本直接置为正样本。这样利用XGBoost与线性模型的分类规则差距,改善XGBoost不能区分样本的结果。具体算法流程如下:

算法的主要思想为,对两个模型的用户信用评估排名进行对比,将线性模型比XGboost排名更加靠前的样本找出来进行重新训练。因为线性模型对这部分的用户样本评估能力要比XGBoost要好。选择一定的斜率搜索范围和常数项搜索范围来确定这部分用户样本的选择,通过多个模型的重新训练与搜索,可以找到最佳的部分用户划分方案。从而进行第二层模型的再训练。由于这种方法涉及到前后两层模型的训练与测试,所以是一种堆栈模型。通过上算法,可以根据训练样本的个数与不均衡的程度来选择不同的斜率搜索范围与常数项搜索范围,找到最佳的部分样本的划分直线。通过实验结果可以得到部分融合模型可达到AUROC提升0.003,这个提升对于整体样本的信用评估提升是非常明显的。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1