本书的定位是一本Python金融大数据风控建模的入门级读物。全书包括4篇:背景篇旨在由浅入深地引领读者走进金融科技领域,了解智能风控,系统、全面地认识评分卡;基础篇围绕评分卡构建的全流程,向读者一一讲述每个环节的理论知识,随之进行代码实践,帮助读者获得从0至1构建评分卡模型的工程能力;进阶篇旨在从建模中可能遇到问题出发,提供一些问题解决或模型提升的思路,使建立的评分卡具有更好的业务适应及预测能力;实战篇结合真实信贷场景的数据集,带领读者完成从数据分析至评分卡生成的各个流程,旨在让读者体验真实场景,具备评分卡实战能力,亦可作为读者实际工作中构建评分卡的参考。本书适合有一定Python语言基础的金融风控相关技术人员阅读,也适合想要了解人工智能如何在金融场景应用的开发及业务人员。另外,也适合专业培训机构的学员和相关专业的学生。
前言
第1篇 智能风控背景
第1章 金融科技介绍2
1.1 金融科技的前世今生2
1.2 金融科技正深刻地改变和塑造着金融业态4
1.3 新兴科技不断强化金融科技的应用能力5
1.4 金融风险控制面临着前所未有的挑战7
1.5 智能风控和评分卡8
1.6 评分卡模型的开发流程11
第2章 机器学习介绍17
2.1 机器学习的概念17
2.2 机器学习的分类17
2.2.1 有监督学习18
2.2.2 无监督学习18
2.2.3 强化学习19
2.3 机器学习与人工智能的关系20
2.4 机器学习与数学的关系20
2.5 机器学习与深度学习22
第3章 评分卡模型介绍25
3.1 申请评分卡25
3.1.1 数据获取26
3.1.2 好坏样本定义26
3.1.3 观察期与表现期确定29
3.1.4 样本分层32
3.1.5 数据清洗与预处理33
3.1.6 特征工程33
3.1.7 模型训练与优化35
3.2 行为评分卡36
3.2.1 数据获取37
3.2.2 时间窗口37
3.2.3 特征工程38
3.3 催收评分卡40
3.3.1 催收评分卡分类40
3.3.2 催收策略41
3.4 反欺诈模型42
3.4.1 欺诈风险与信用风险比较42
3.4.2 欺诈模型好坏样本定义43
3.4.3 欺诈主体分析44
3.4.4 反欺诈方法介绍44
第2篇 评分卡理论与实战基础
第4章 数据清洗与预处理48
4.1 数据集成49
4.2 数据清洗50
4.3 探索性数据分析52
4.4 Python代码实践54
4.4.1 数据集成54
4.4.2 数据清洗58
4.4.3 探索性数据分析61
第5章 变量编码方法66
5.1 无监督编码66
5.1.1 One-hot编码66
5.1.2 Dummy variable编码68
5.1.3 Label编码69
5.2 有监督编码70
5.2.1 WOE编码70
5.2.2 WOE编码与One-hot编码比较73
5.3 Python代码实践75
5.3.1 One-hot编码76
5.3.2 Dummy variable编码80
5.3.3 Label编码82
5.3.4 WOE编码85
第6章 变量分箱方法89
6.1 变量分箱流程91
6.2 最优Chi-merge卡方分箱方法92
6.3 Best-KS分箱方法94
6.4 最优IV分箱方法95
6.5 基于树的最优分箱方法95
6.6 Python代码实践98
6.6.1 最优Chi-merge分箱98
6.6.2 最优IV分箱106
6.6.3 基于树的分箱107
第7章 变量选择109
7.1 过滤法变量选择109
7.2 包装法变量选择112
7.3 嵌入法变量选择113
7.4 Python代码实践115
7.4.1 过滤法变量选择115
7.4.2 包装法变量选择118
7.4.3 嵌入法变量选择120
第8章 Logistic回归模型123
8.1 Logistic回归模型原理123
8.2 过拟合与欠拟合128
8.3 Python代码实践130
第9章 模型的评估指标136
9.1 正负样本的选择137
9.2 标准评估指标139
9.3 概率密度评估指标141
9.4 概率分布评估指标144
9.5 Python代码实践153
第10章 评分卡分数转化157
10.1 由概率到分数的转换157
10.2 变量的分值计算159
10.3 评分卡性能评估161
10.4 Python代码实践163
第11章 模型在线监控169
11.1 稳定性监控169
11.2 单调性监控172
11.3 性能监控指标173
11.4 Python代码实践174
第3篇 评分卡理论与实战进阶
第12章 样本不均衡处理180
12.1 数据层下采样样本不均衡的处理方法181
12.1.1 随机下采样方法181
12.1.2 样本邻域选择的下采样方法182
12.1.3 样本邻域清理的下采样方法184
12.1.4 Bagging集成的下采样方法185
12.1.5 Boosting集成的下采样方法187
12.2 数据层上采样样本不均衡的处理方法188
12.2.1 随机上采样方法188
12.2.2 SMOTE样本生成方法189
12.2.3 Borderline-SMOTE样本生成方法190
12.3 算法层样本不均衡的处理方法190
12.4 模型评估层样本不均衡的处理方法191
12.5 Python代码实践191
12.5.1 数据层下采样样本不均衡处理代码实现192
12.5.2 数据层上采样样本不均衡处理代码实现201
第13章 特征工程进阶206
13.1 数据层特征工程206
13.2 算法层特征工程211
13.2.1 基于树模型的特征生成211
13.2.2 FM特征交叉215
13.3 Python代码实践219
13.3.1 数据层特征工程代码实现219
13.3.2 算法层特征工程代码实现222
第14章 决策树模型229
14.1 决策树模型的原理229
14.2 决策树学习229
14.3 决策树与过拟合234
14.4 Python代码实践236
第15章 神经网络模型241
15.1 神经元模型241
15.2 神经网络的网络结构242
15.3 神经网络的学习策略247
15.4 Python代码实践253
第16章 支持向量机模型257
16.1 感知器模型257
16.1.1 感知器模型的原理257
16.1.2 感知器与支持向量机模型260
16.2 线性可分支持向量机261
16.3 线性支持向量机267
16.4 非线性支持向量机272
16.5 感知器相关模型比较278
16.6 Python代码实践280
16.6.1 线性支持向量机模型代码实现280
16.6.2 非线性支持向量机模型代码实现282
第17章 集成学习286
17.1 Bagging与Boosting对比286
17.2 Random Forest模型原理288
17.3 Adaboost模型原理289
17.4 GBDT模型原理292
17.5 Xgboost模型原理297
17.6 Python代码实践304
17.6.1 Random Forest模型304
17.6.2 Adaboost模型308
17.6.3 GBDT模型310
17.6.4 Xgboost模型313
第18章 模型融合317
18.1 Blending方法原理317
18.2 Stacking方法原理320
18.3 Python代码实践322
18.3.1 Blending模型融合代码实现322
18.3.2 Stacking模型融合代码实现325
第4篇 Lending Club数据集实战
第19章 完整的模型开发实现330
19.1 数据源介绍330
19.2 数据的获取与预处理331
19.2.1 数据准备331
19.2.2 好坏样本定义334
19.2.3 数据清洗与预处理335
19.3 特征工程341
19.3.1 简单的特征工程341
19.3.2 变量分箱与编码342
19.3.3 变量选择348
19.4 模型构建与评估351
19.4.1 模型构建与优化351
19.4.2 模型评估352
19.5 评分卡生成353
附录A 主要符号表357
附录B 开发环境简介358
参考文献362