一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于优化Boruta和XGBoost的信贷违约预测方法及系统与流程

2021-12-03 23:02:00 来源:中国专利 TAG:

基于优化boruta和xgboost的信贷违约预测方法及系统
技术领域
1.本发明属于信息技术领域,具体涉及一种优化boruta和xgboost的信贷违约预测方法及系统。


背景技术:

2.目前国内消费金融行业正处于野蛮生长到稳定发展的转折点,还未形成一个适应中国国情的成熟健全的风险控制体系。为了稳定平台的运转、保护消费者的利益、保障我国消费金融行业平稳向上的发展,必须大力加强消费金融机构的风险控制能力,尤其是贷前审核环节的风险控制能力,如果发生风险控制漏洞,对经济和社会都会造成恶劣影响。
3.贷前审核是信贷风险控制最重要的环节。贷前审核通过对用户进行各方面的资质审核,决定是否通过其贷款申请。通过违约预测判断用户是否具备还款能力:违约用户具备还款意愿,但是可能会由于其自身经济情况恶化等原因无法按时偿还借贷资金,在业务场景中同样需要拒绝该类用户的贷款申请,减少不良贷款。总的来说,贷前审核就是通过对用户进行核查和筛选,过滤欺诈的用户,拒绝违约的用户,放贷给正常的用户。
4.现有的基于大数据分析的信贷违约预测技术中,目前存在问题有特征数量过多以及分类模型参数过多导致信贷违约预测无法达到最优性能,造成时间和空间上的巨大浪费,且信贷违约预测方法准确率低下。
5.因此,如何克服特征冗余,以及提高用户信贷违约预测预测的准确性,是本领域亟待解决的问题。


技术实现要素:

6.本发明的目的是针对现有技术的缺陷,提供一种基于优化boruta和 xgboost的信贷违约预测方法及系统。本发明采用优化后的boruta特征选择算法boruta

xgb挖掘所有与因变量相关的特征,建立良好的特征体系;基于特征选择后的数据集,使用遗传算法对xgboost算法的参数进行优化,构建boruta

ga

xgb模型,并利用boruta

ga

xgb模型对用户信贷违约进行预测,从而从根源上解决了现有的特征数量过多及分类模型参数过多导致信贷违约预测无法达到最优的问题。
7.为了实现以上目的,本发明采用以下技术方案:
8.本发明提出一种基于优化boruta和xgboost的信贷违约预测方法,其特征在于,包括步骤:
9.s1、获取原始数据集,并对所述原始数据集中各个文件进行数据预处理及特征组合操作,得到信贷组合数据集;所述原始数据集中包括历史贷款记录、信用卡数据、历史逾期次数、用户基本信息、收入情况;
10.s2、基于boruta

xgb特征选择算法,对所述信贷组合数据集进行特征选择,得到包括最优特征子集的信贷数据集;所述boruta

xgb算法是在boruta 算法的基础上,将包裹的分类模型由随机森林算法替换为xgboost算法并采取不同的特征删除的方法;
11.s3、基于特征选择获得的所述信贷数据集,使用遗传算法优化xgboost 算法的参数,构造生成boruta

ga

xgb模型;
12.s4、输入待预测的用户信贷信息,并基于所述boruta

ga

xgb模型,对用户信贷违约进行预测,并获得预测结果。
13.进一步地,所述步骤s1包括:数据预处理包括对缺失值、类别变量的处理;所述特征组合包括将相关性强的特征进行多项式组合。
14.进一步地,所述步骤s2包括:所述xgboost算法中,采用信息增益来评估特征的重要性。
15.进一步地,所述步骤s3包括:所述xgboost算法的参数包括代表子分类器的学习速率learning_rate、子分类器的最大数量n_estimators、每个子分类器的最大深度max_depth、最小的叶子节点样本权重的和min_child_weight、构建子分类器时,节点分裂时损失函数的下降值的下限值gamma、用于控制构造各子分类器时随机采样的比例subsample、用于控制每个子分类器在随机采样中特征数量的占比colsample_bytree。
16.本发明提出一种基于优化boruta和xgboost的信贷违约预测系统,其特征在于,包括:
17.数据处理模块,获取原始数据集,并对所述原始数据集中各个文件进行数据预处理及特征组合操作,得到信贷组合数据集;所述原始数据集中包括历史贷款记录、信用卡数据、历史逾期次数、用户基本信息、收入情况;
18.特征选择模块,基于boruta

xgb特征选择算法,对所述信贷组合数据集进行特征选择,得到包括最优特征子集的信贷数据集;所述boruta

xgb算法是在boruta算法的基础上,将包裹的分类模型由随机森林算法替换为xgboost 算法并采取不同的特征删除的方法;
19.优化模型构造模块,基于特征选择获得的所述信贷数据集,使用遗传算法优化xgboost算法的参数,构造生成boruta

ga

xgb模型;
20.信贷违约预测模块,输入待预测的用户信贷信息,并基于上述 boruta

ga

xgb模型,对用户信贷违约进行预测,并获得预测结果。
21.进一步地,所述数据处理模块包括:数据预处理包括对缺失值、类别变量的处理;所述特征组合包括将相关性强的特征进行多项式组合。
22.进一步地,所述特征选择模块包括:所述xgboost算法中,采用信息增益来评估特征的重要性。
23.进一步地,所述优化模型构造模块包括:所述xgboost算法的参数包括代表子分类器的学习速率learning_rate、子分类器的最大数量n_estimators、每个子分类器的最大深度max_depth、最小的叶子节点样本权重的和 min_child_weight、构建子分类器时,节点分裂时损失函数的下降值的下限值 gamma、用于控制构造各子分类器时随机采样的比例subsample、用于控制每个子分类器在随机采样中特征数量的占比colsample_bytree。
24.本发明还提出一种计算机设备,所述设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
25.本发明还提出一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
26.本发明公开的一种优化boruta和xgboost的信贷违约预测方法及系统,与现有技术相比,具有如下优点:
27.1、本发明的预测方法基于大数据分析,通过boruta

ga

xgb模型自动学习,对客户数据变化更敏感,预测准确率更高,能够快速、有效对是否违约进行预测,进而进行快速审批处理。
28.2、本发明通过对数据集中缺失值、类别变量的处理以及特征组合,生成了经过数据处理和特征组合后的数据集,构造了重要的特征,有助于后续进行特征选择和构造预测模型,提升信贷违约预测效果。
29.3、本发明采用基于boruta

xgb特征选择算法,挖掘所有与因变量相关的特征,对信贷组合数据集进行特征选择,得到包括最优特征子集的信贷数据集,解决了特征冗余问题,建立良好的特征体系,为后续构建信贷违约预测模型提供了良好的数据基础;且优化后的boruta

xgb,加快了运行速度并在 boosting算法上有更好的表现。
30.4、本发明基于特征选择后的数据集,使用遗传算法对xgboost算法的参数进行优化,构建boruta

ga

xgb模型,并利用boruta

ga

xgb模型对用户信贷违约进行预测,提升了信贷违约预测的准确性。
附图说明
31.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1为本发明实施例提供的基于优化boruta和xgboost的信贷违约预测方法流程示意图;
33.图2为本发明实施例提供的数据集各源文件的组织结构图。
34.图3为本发明实施例提供的特征与标签的相关关系热力图。
35.图4为本发明实施例提供的违约概率与年龄关系示意图。
36.图5为本发明实施例提供的特征ext_source_1与标签之间的关系的核密度曲线图。
37.图6本发明实施例提供的特征ext_source_2与标签之间的关系的核密度曲线图。
38.图7本发明实施例提供的特征ext_source_3与标签之间的关系的核密度曲线图。
39.图8为本发明实施例提供的boruta

xgb算法的一个实例图。
40.图9为本发明实施例提供的遗传算法的基本流程图。
41.图10为本发明实施例提供的特征重要性排名前15的特征的示意图。
42.图11本发明实施例提供的基于优化boruta和xgboost的信贷违约预测系统示意图。
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
44.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
45.下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
46.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
47.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
48.本发明一种基于优化boruta和xgboost的信贷违约预测方法。如图1所示,优化boruta和xgboost的信贷违约预测方法包括步骤以下s1至s4,其中步骤s1、s2、s3为信贷违约预测模型训练阶段,步骤s4为信贷违约预测阶段。信贷违约预测模型训练阶段包括如下步骤s1

s3:
49.s1、获取原始数据集,并对所述原始数据集中各个文件进行数据预处理及特征组合操作,得到信贷组合数据集;所述原始数据集中包括历史贷款记录、信用卡数据、历史逾期次数、用户基本信息、收入情况。
50.使用的数据集来源于捷信消费金融公司(homecredit),该公司为个人用户提供小额贷款服务。数据集共包含7个源文件,以csv格式进行存储。数据集各源文件的组织结构如图2所示。
51.数据集中各个文件的简单描述如下:
52.①
application_train.csv:违约预测模型的主文件,一个样本代表一个用户的一笔贷款,以特征“sk_id_curr”即用户身份代码作为唯一标识,一个用户只有一笔贷款。特征“target”为标签列,标签为“0”代表“已偿还贷款,用户为正常用户”,标签为“1”代表“未偿还贷款,用户为违约用户”。数据共有307511行,122列。
53.②
bureau.csv:国家信贷管理局提供的用户在其他金融机构历史信贷记录。一个样本代表用户过往在其他金融机构申请的一笔历史贷款,“sk_id_curr”不唯一,主文件中的一个用户可以有多个历史贷款记录。以特征“sk_bureau_id”为唯一标识。数据共有1716428行,17列。
54.③
bureau_balance.csv:该文件为bureau.csv的从属文件,记录每笔历史贷款款项的每月余额。一个样本代表bureau.csv中每个样本的每月余额, bureau.csv中的一笔贷款样本在此文件中可有多个余额样本。数据共有 27299925行,3列。
55.④
previous_application.csv:过往在本金融机构申请过贷款的用户有贷款记录。一个样本代表一笔历史贷款记录,主文件中的每个样本都可以有多笔历史贷款记录。以特征

sk_id_prev’为唯一标识。数据共有1670241行,37 列。
56.⑤
posh_cash_balance.csv:该文件记录客户在刷卡销售点的月余额快照。每一个样本是过往刷卡销售或现金贷款一个月的情况, previous_application.csv中的每一个样本在此文件中可以有多个样本。数据共有10001358行,8列。
57.⑥
credit_card_balance.csv:该文件记录申请人过往使用信用卡的每月余额快
照信息。曾使用过本金融机构信用卡的客户的月度信用卡数据。一个样本是每个月的信用卡余额,一张信用卡可以有多个样本。数据共有3840312行,23 列。
58.⑦
installments_payments.csv:在本金融机构过往贷款的付款历史,一个样本代表一笔分期付款的一笔支付。数据共有13605401行,3列。
59.分析主文件application_train.csv可知,数据集包含违约样本24825个,正常样本282686个,违约样本所占比例约为8.7%。
60.分析主文件application_train.csv可知,数据集包含违约样本24825个,正常样本282686个,违约样本所占比例约为8.7%。
61.接下来,使用皮尔逊相关系数来分析和判断各特征与标签之间的相关程度。皮尔逊相关系数的取值区间为[

1,1],绝对值越大代表特征之间相关性越高,负数则代表特征之间负相关,正数则代表特征之间正相关。其计算公式如下:
[0062][0063]
其中cov(x,y)为两个随机变量x与y的协方差,σ
x
、σ
y
分别为x和y的标准差,e是期望值。通过分别计算各特征与标签列的相关系数值,得到与标签相关性最大的5个特征分别如表1所示:
[0064]
表1与标签相关性最大的5个特征
[0065][0066]
绘制这5个特征与标签的相关关系热力图,如图3所示,可更直观的看出相关关系情况。
[0067]
从上述信息可以得知“days_birth”是最正相关的特征,在实际数据集中,该特征值均为负数,意味着随着年龄的增大(特征值的减小),用户越不太可能违约(标签值接近0)。通过将“days_birth”取负数并将天换算成年龄,并按照5岁分为1组绘制不同年龄段用户的违约率,可得到如图4所示的结果。此时可得到“年轻用户违约概率较高”的结论。
[0068]“ext_source_3”、“ext_source_2”、“ext_source_1”是与标签最负相关的三个特征。这些特征的具体意义无法得知,是一种累积的外部信用评级。为了可以比较直观的看出样本本身的分布特征,通过绘制核密度曲线图探索这三个特征与标签之间的关系,图5、6、7分别展示了结果。可以看到特征“ext_source_1”、“ext_source_3”显示出了较大差异。这两个特征与用户偿还贷款的概率有一定关系。
[0069]
原始数据集中特征与标签之间存在着复杂的相关关系,有些相关关系是显性且易于理解的,例如“历史逾期次数较多的用户再次违约的概率较大”。有些相关关系是隐形的,需要组合起来才能与标签列产生较强的相关性,例如“一笔贷款金额/年收入”可以反映用户资产健康情况并且具有较高的解释性。特征组合的目的是将现有的特征进行组合生成新
的有效特征,提升模型分类效果。
[0070]
因此,需要对原始数据集做预处理及特征组合。处理前文所述的文件,处理完成后以唯一标识“sk_id_curr”将所有文件整合在一起。各文件的处理均包括对缺失值、类别变量的处理及特征组合。
[0071]
上述7个文件的处理流程如下:
[0072]

application.csv文件数据预处理。
[0073]
类别特征处理:该文件类别特征有16个,数值特征有106个。处理类别特征常见的两种方法为标签编码和独热编码。标签编码将类别特征转换成 [0,n

1]之间的整数,其中n为类别特征的不同取值的个数。独热编码采用n 位状态寄存器来对n个状态进行编码,每个状态都应该具有独立的寄存器位置,并且在任意时候只有一位为1表示有效。例如:[“男”,“女”,“未知”]进行独热编码,可表示为[“100”,“010”,“001”]。
[0074]
其中部分类别特征内容示例如表2所示:
[0075]
表2部分类别特征内容示例
[0076][0077]
标签编码会使模型赋予取值大小含义,然而在类别特征中各取值间并无大小区别。为同时降低标签编码带来的影响以及尽量减少特征数量,对类别数小于3的4特征做标签编码,剩余12个类别特征做独热编码,处理过后共得到 242个特征。
[0078]
将相关性强的特征进行多项式组合:与标签最相关的四个特征分别为 ext_source_3、ext_source_2、ext_source_1、days_birth,对这4个特征做 3次方的多项式组合,可得到35个新增组合特征。分别计算其与标签相关系数值,可看出某些组合特征与标签相关性强于组合之前。
[0079]
表3
[0080][0081]
专家知识特征组合:此部分特征组合目的是根据金融知识构建特征组合,增加一些可能比较重要的特征。该处理通过将已有特征进行组合生成新的特征,该步新增4个特征,具体信息如表4所示:
[0082]
表4
[0083][0084][0085]
处理后得到280个特征,“sk_id_curr”为标识列,“target”为标签列。
[0086]

bureau.csv、bureau_balance.csv文件数据预处理。
[0087]
这2个文件描述的是用户在其他金融机构过往的贷款记录信息,需要以“sk_id_curr”进行分组并对组内数据进行不同的计算,生成以“sk_id_curr”为唯一标识的数据集。
[0088]
数值特征处理:按照“sk_id_curr”进行分组,对分组后的数据进行计数、求平均值、最大值、最小值、求和计算操作。
[0089]
bureau.csv聚合后并分别计算除标识列的其余12列的count、mean、max、 min、sum值,处理后可得到61个特征。bureau_balance.csv首先按照“sk_id_bureau”分组,再以“sk_id_curr”聚合。对其做与bureau.csv一样的处理。
[0090]
类别特征处理:类别特征不能直接计算其统计数据如平均值和最大值,该种特征
处理将依赖于计算每个类别特征中的每个类别的计数值。例如有以下数据集:
[0091]
表5
[0092][0093]
使用表5中的信息来计算每个用户每种类别的贷款数量,将这些值计数归一化,观察分类变量的出现总数,如表6所示。
[0094]
表6
[0095][0096]
归一化后数据表如表7所示。
[0097]
表7
[0098][0099]
通过该种方式对类别特征进行编码,可捕捉其所包含的信息。
[0100]
bureau.csv有3个类别特征,对类别特征进行独热编码后可得到24个特征。以“sk_id_curr”分组后,分别计算各特征的平均值与总和值。此处总合可代表某一类别的计数。处理后可得到24个特征。
[0101]
bureau_balance.csv首先按照“sk_id_bureau”分组,再以“sk_id_curr”聚合。对其做与bureau.csv一样的处理。
[0102]
将bureau.csv及bureau_balance.csv处理后的文件以“sk_id_curr”合并,可得到211个特征的数据集。
[0103]

其余四个文件分别为previous_application.csv、 posh_cash_balance.csv、credit_card_balance.csv、installments_payments.csv,进行数据预处理。
[0104]
这4个文件分别描述的是用户在本金融机构的过往贷款及消费信息,以“sk_id_curr”进行分组并对组内数据进行不同的计算,生成以“sk_id_curr”为唯一标识的数据集。
[0105]


中所述文件做

中同样的处理,以“sk_id_curr”合并后可得到1044 个特征的数据集。
[0106]

文件整合:将





得到的数据集以“sk_id_curr”进行合并,得到样本数量307511,特征数量1535的数据集。最后,删除从各标识列中派生的特征,因为这些标识列不具备任何预测能力,删除后得到特征数量为1416 的数据集。
[0107]
s2、基于boruta

xgb特征选择算法,对所述信贷组合数据集进行特征选择,得到包
括最优特征子集的信贷数据集;所述boruta

xgb算法是在boruta 算法的基础上,将包裹的分类模型由随机森林算法替换为xgboost算法并采取不同的特征删除的方法。
[0108]
数据预处理和特征组合后得到的高维数据集,如果直接将其应用到分类算法上,不仅会造成时间和空间上的巨大浪费,并且可能会影响到算法的分类效果。因此,通过特征选择从高维数据集中选择有效特征子集来特征冗余问题变的十分重要,所以使用boruta

xgb特征选择算法,处理得到的高维数据集。
[0109]
boruta算法是r统计包中的一种特征选择算法,2010年由miron b.kursa 提出。它是一种包裹式特征选择方法,基于随机森林算法构建而成。boruta 算法的基本原理是:通过将真实特征随机打乱作为阴影特征给系统添加随机性,将阴影特征与真实特征合并在一起并分别计算特征的重要性。按照常理,阴影特征的重要性应该为零,但是由于存在随机波动,阴影特征的重要性有非零的可能性。boruta算法判断一个真实特征是否重要的依据是阴影特征的重要性分数即z_score。本发明的特征选择算法以boruta算法原理为研究基础,进行创新改动。
[0110]
boruta算法基本流程如下:
[0111][0112][0113]
经验证,boruta特征选择算法是一种效果良好的启发式搜索方法,可以找到所有与标签相关的特征,而不仅仅是剔除冗余特征,阴影特征的引入为判断哪些属性是真正重要的提供明确的观点。
[0114]
boruta算法被验证在随机森林算法上表现优越,但也存在一些缺陷。比如在高维数据集上计算时间较长、在boosting集成算法上表现普通。因此本发明采用优化boruta算
法使其性能更佳。
[0115]
本发明在标准boruta算法的基础上,将包裹的分类模型由随机森林算法替换为xgboost算法并采取不同的删除特征的方法,优化后的算法名为 boruta

xgb,加快了运行速度并在boosting算法上有更好的表现。
[0116]
同时,xgboost算法中一个特征的重要性通常用三个方式来评估,分别为信息增益、覆盖度、频率。其中信息增益是最常用的,在用某个特征对数据集进行了划分后,得到的信息熵的差值就是信息增益值,信息增益值越大意味着该特征越重要。xgboost算法中包含多棵决策树,对于一个包含了n棵决策树的xgboost算法来说,某特征在单棵树上的信息增益值为gs,计算其在 xgboost算法中信息增益值g的方法如下:
[0117][0118]
把该特征在每棵决策树上的信息增益值分别求出并取平均值即可。得到该特征信息增益值g后,某特征重要性分数i计算方法如下:
[0119][0120]
boruta

xgb算法的基本流程如下:
[0121][0122][0123]
图8是为boruta

xgb算法一个实例图。
[0124]
删除特征小于10%时证明当前特征子集已经没有大于10%的特征可以删除,剩余特征均较为重要。将步骤s1中经过数据处理和特征组合得到的信贷组合数据集通过boruta

xgb算法进行特征选择,最终得到307511行,573列的训练数据集,特征数量降低了约45%。
[0125]
s3、基于特征选择获得的所述信贷数据集,使用遗传算法优化xgboost 算法的参
数,构造生成boruta

ga

xgb模型。
[0126]
xgboost算法被证实在分类问题中具有良好的性能。在实际的使用中,该算法的参数数量众多,需要手动设置部分的参数。参数的设置可能会直接影响模型最终的效果,依靠人工对参数进行设置可能需要消耗大量的时间和资源,即使是经过大量的比对也无法保证所设定的参数组合是最优的。综上,本发明应用遗传算法优化xgboost算法的部分参数,提高模型的分类效果。
[0127]
遗传算法是一种搜索和优化方法,其灵感来源于达尔文提出的自然选择和遗传学原理,由john holland于二十世纪六七十年代提出。该算法被广泛的应用于寻求最优解问题,一组可行解可以被视作一个种群,其中一个可行解即为种群中的一个个体。遗传算法的目标即为寻找最优个体,输出其代表的可行解。具体的做法是通过不断迭代选择、交叉、变异这三个过程,淘汰适应度较低的个体,保留适应度较高的个体,直到达到指定迭代次数时,输出最优个体。遗传算法的基本流程如图9所示。
[0128]
遗传算法的具体流程如下:
[0129][0130][0131]
然而,xgboost在有监督分类应用中往往有较好的性能,但是其参数众多,人为选择参数会导致分类结果具有偶然性。
[0132]
在xgboost的训练过程中,以下7个参数对最终的分类结果影响较大:
[0133]

learning_rate:代表子分类器的学习速率,该参数的作用是对每个子分类器的权重进行控制,在每轮迭代后,会将该参数乘以各个叶子节点代表的分数,以减少每个子分类器的影响,从而避免过拟合。默认值为0.3。
[0134]

n_estimators:子分类器的最大数量,即模型的最大迭代次数。无默认值。
[0135]

max_depth:每个子分类器的最大深度,被用于避免过拟合。默认值为 6。
[0136]

min_child_weight:最小的叶子节点样本权重的和,被用于避免树的过拟合。该参数值较大时,可以有效的避免模型学习到局部的特殊样本。默认值为1。
[0137]

gamma:构建子分类器时,节点分裂时损失函数的下降值必须大于该值,如果小于该值就不进行分裂。默认值为0。
[0138]

subsample:用于控制构造各子分类器时随机采样的比例。默认值为1。
[0139]

colsample_bytree:可以用于控制每个子分类器在随机采样中特征数量的占比。默认值为1。
[0140]
采用遗传算法优化xgboost的具体流程如下:
[0141][0142]
使用经过特征选择后生成的信贷数据集,遗传算法优化参数后最终得到参数组合如表8所示:
[0143]
表8
[0144][0145]
在一实施例中,通过precision(查准率)、recall(查全率)、f1

score、 auc

score等指标来评价分类效果。
[0146]
选取信贷数据集的80%作为训练集,20%作为测试集,数据集的划分详情如表9所示:
[0147]
表9
[0148][0149]
测试集的信贷违约预测结果如下所示:
[0150]
1.消融实验
[0151]
采用消融实验验证boruta

xgb特征选择算法和ga

xgb分类算法对 boruta

ga

xgb整体模型的效果。消融实验是一种控制变量的实验方法,通过改变某个条件观察模型整体效果的变化。
[0152]
表10展示了消融实验的结果总览,其中ga

xgb(no

fs)表示未使用特征选择的数据集作为训练集,训练遗传算法优化后的ga

xgb模型。 boruta

xgb(no

ga)表示使用特征选择后的数据集作为训练集,训练xgboost 基模型。boruta

ga

xgb为本发明提出的模型,使用特征选择后的数据集作为训练集,训练遗传算法优化后的ga

xgb模型。除此之外,还分别设置了逻辑回归(lr)、随机森林(rf)、xgboost(xbg)三个基准模型,使用未经特征选择的数据集作为训练集,分别训练其基模型。
[0153]
表10消融实验结果总览
[0154][0155]
从消融实验的结果可以看出,本发明提出的基于boruta

ga

xgb模型的信贷预测方法在各项指标下表现均为最优,泛化性能较好。boruta

xgb(no

ga) 与boruta

ga

xgb相比,缺少利用了遗传算法优化xgboost参数的过程,其各评价指标均有略微下降,其中auc

score下降了1.6%。ga

xgb(no

fs) 与boruta

ga

xgb相比,缺少利用boruta

xgb进行特征选择的过程,其运行速度降低,且各项评估指标均有略微下降。以上结果说明,boruta

ga

xgb 所做的特征选择、参数优化工作均有一定作用。对比基准模型的效果,可发现集成学习算法如rf和xgb都能获得较为不错的泛化性能,优于传统的机器学习算法如lr等。
[0156]
2.特征选择算法对比
[0157]
基于boruta

xgb特征选择算法,对特征组合后的数据集进行特征选择,选出与因变量相关的所有特征子集。特征子集选择完毕后,分别查看其与标签的相关性。以下对比均使用xgboost基模型作为分类模型。表展示了 boruta

xgb与其他经典特征选择算法对比得到的特征子集的性能。
[0158]
表11
[0159][0160]
上述结果证明boruta

xgb算法分类效果优于其他特征选择算法,同时对比boruta算法,其时间缩短了接近33%。relif算法为过滤式方法,其运行时间最短为18分钟,但是过滤式方法可能会忽略特征之间的相关关系,导致最后生成的特征子集效果不是最优,表11也可以看出其评估分数略低于其他两个特征选择算法。
[0161]
进一步地,为了更好的了解违约预测特征子集,本发明尝试多次运行 boruta

xgb特征选择算法,获取最佳特征子集的并集来获得来获得重要特征出现的次数,出现次数多的为频繁特征。得到频繁特征后,通过xgboost分类算法输出特征重要性排名前15的特征,这些特征重要性分数均做了归一化处理。输出结果如图10所示。
[0162]
图10的特征名字中,带有min、mean、max、sum等后缀的特征为特征组合产生的新特征,可以看出,重要性排名前15的特征中,有6个为特征组合产生的新特征。这证明特征组合有效,创建出了更为重要的特征。
[0163]
通过消融实验对比可知,本发明提出的boruta

ga

xgb模型在预测效果上均有提升,每一部分工作均可以提升一定的信贷违约预测效果。
[0164]
信贷违约预测阶段:
[0165]
s4、输入待预测的用户信贷信息,并基于所述boruta

ga

xgb模型,对用户信贷违约进行预测,并获得预测结果。
[0166]
图11是本发明实施例提供的一种基于优化boruta和xgboost的信贷违约预测系统的示意性框图。如图11所示,该基于优化boruta和xgboost的信贷违约预测系统包括预数据处理模块、特征选择模块、优化模型构造模块、信贷违约预测模块。
[0167]
数据处理模块,获取原始数据集,并对所述原始数据集中各个文件进行数据预处理及特征组合操作,得到信贷组合数据集;所述原始数据集中包括历史贷款记录、信用卡数据、历史逾期次数、用户基本信息、收入情况;
[0168]
特征选择模块,基于boruta

xgb特征选择算法,对所述信贷组合数据集进行特征选择,得到包括最优特征子集的信贷数据集;所述boruta

xgb算法是在boruta算法的基础上,将包裹的分类模型由随机森林算法替换为xgboost 算法并采取不同的特征删除的方法;
[0169]
优化模型构造模块,基于特征选择获得的所述信贷数据集,使用遗传算法优化xgboost算法的参数,构造生成boruta

ga

xgb模型;
[0170]
信贷违约预测模块,输入待预测的用户信贷信息,并基于上述 boruta

ga

xgb模型,对用户信贷违约进行预测,并获得预测结果。
[0171]
进一步地,所述数据处理模块包括:数据预处理包括对缺失值、类别变量的处理;所述特征组合包括将相关性强的特征进行多项式组合。
[0172]
进一步地,所述特征选择模块包括:所述xgboost算法中,采用信息增益来评估特征的重要性。
[0173]
进一步地,所述优化模型构造模块包括:所述xgboost算法的参数包括代表子分类器的学习速率learning_rate、子分类器的最大数量n_estimators、每个子分类器的最大深度max_depth、最小的叶子节点样本权重的和 min_child_weight、构建子分类器时,节点分裂时损失函数的下降值的下限值 gamma、用于控制构造各子分类器时随机采样的比例subsample、用于控制每个子分类器在随机采样中特征数量的占比colsample_bytree。
[0174]
上述基于优化boruta和xgboost的信贷违约预测系统置可以实现为一种计算机程序的形式,该计算机程序可以在计算机设备上运行。
[0175]
该计算机设备可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
[0176]
计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
[0177]
该非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行一种基于优化boruta和 xgboost的信贷违约预测方法。
[0178]
该处理器用于提供计算和控制能力,以支撑整个计算机设备的运行。
[0179]
该内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行一种基于优化boruta和xgboost 的信贷违约预测方法。
[0180]
该网络接口用于与其它设备进行网络通信。本领域技术人员可以理解,上述计算机设备结构仅仅是与本技术方案相关的部分结构,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0181]
其中,所述处理器用于运行存储在存储器中的计算机程序,该程序实现实施例一所述的基于优化boruta和xgboost的信贷违约预测。
[0182]
应当理解,在本技术实施例中,处理器可以是中央处理单元(centralprocessing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器 (digital signal processor,dsp)、专用集成电路(application specific integratedcircuit,asic)、现成可编程门阵列(field

programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0183]
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
[0184]
本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行实施例一所述的一种基于优化boruta和xgboost的信贷违约预测方法。
[0185]
所述存储介质可以是u盘、移动硬盘、只读存储器(read

only memory, rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
[0186]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0187]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0188]
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
[0189]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,终端,或者网络设备等) 执行本发明各个实施例所述方法的全部或部分步骤。
[0190]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献