| 作者 |
| 梅子行 周爽 |
| 丛书名 |
| 金融科技 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782003102291 |
| 简要 |
| 简介 |
| 本书基于Python全面介绍了机器学习在信贷风控领域的应用与实践,从原理、算法与工程实践3个维度全面展开,包含21种实用算法和26个解决方案。 作者是智能风控、人工智能和算法领域的资深专家,曾在多加知名金融科技企业从事风控算法方面的研究与实践,经验丰富,本书得到了风控领域9位专家的高度评价。 全书一共8章,每个章节都由问题、算法、案例三部分组成,具有系统性和实战性。 第1-2章讲解了信贷业务的基础知识以及常用的规则引擎、信用评估引擎的建模方法。 第3章以项目冷启动为背景,讲解了风控领域应用广泛的迁移学习方法。 第4-5章介绍了幸存者偏差与不均衡学习中所使用的无监督学习与半监督学习方法。 第6章阐述了无监督的异常识别算法,该算法常用于数据清洗与冷启动项目,是反欺诈引擎中常用的个体欺诈检测方法。 第7章分享了一些经作者实践证明效果较好的模型优化方法,并对模型融合的思路进行了较为详细的介绍。 第8章重点讲解了知识图谱相关的复杂网络基础知识及网络表示学习方法,其中的社区发现算法常用于团伙欺诈检测。此外,本章中的部分方法对信用评估模型的优化也有很大帮助。 ---------------------------实时流计算系统设计与实现--------------------------- . 全书分为11章。第1章介绍了实时流计算技术的产生背景、使用场景和通用架构。第2章通过实时流计算数据的采集,详细分析了Java高性能编程的理论基础。第3-6章通过从头构造一个分布式实时流计算框架,详细剖析了实时流计算中的几个核心概念和技术重点,并通过多个开源流计算平台的实现来验证这些核心概念和技术重点。第7章谈论了当实在做不到“实时”时,我们应该作出的备选方案。第8-10章阐述了构建一个完整实时流计算系统时,必要的周边辅助系统。第11章给出实时流计算应用案例。 |
| 目录 |
---------------------------智能风控:原理、算法与工程实践--------------------------- 推荐序 前言 第1章 风控建模与规则挖掘 / 1 1.1 信贷与风险 / 1 1.1.1 信贷业务与互联网金融风控体系 / 1 1.1.2 信贷风险与控制 / 4 1.2 工业建模流程 / 5 1.2.1 抽象业务 / 6 1.2.2 定义标签 / 6 1.2.3 样本选取 / 7 1.2.4 特征工程与模型调优 / 9 1.2.5 上线监控与评估报表 / 10 1.3 规则挖掘方案 / 13 1.4 本章小结 / 20 第2章 集成模型评分卡 / 21 2.1 特征工程解析 / 21 2.1.1 特征与模型 / 22 2.1.2 信用模型的特征 / 22 2.2 特征衍生方案 / 24 2.3 离散处理 / 27 2.3.1 one-hot编码 / 27 2.3.2 WOE编码 / 28 2.4 迭代特征筛选方案 / 33 2.5 自动化调参 / 38 2.5.1 自动化调参策略 / 38 2.5.2 参数搜索方案 / 39 2.5.3 调参框架搭建 / 40 2.6 递归特征删除方案 / 43 2.7 评分卡制作 / 44 2.7.1 逻辑回归评分卡 / 45 2.7.2 集成模型的评分映射 / 55 2.7.3 针对业务改写评价函数 / 59 2.8 本章小结 / 60 第3章 迁移学习与冷启动 / 61 3.1 迁移学习基础 / 61 3.1.1 应用场景 / 62 3.1.2 概念介绍 / 62 3.2 迁移学习方法论 / 63 3.2.1 三类常见算法 / 63 3.2.2 迁移的实现方法 / 64 3.3 少量有标签样本的迁移方案 / 65 3.3.1 TrAdaBoost模型 / 65 3.3.2 跨场景迁移模型 / 67 3.4 无标签样本迁移之JDA / 76 3.4.1 JDA模型 / 76 3.4.2 模型应用 / 79 3.5 无标签样本迁移之DTELM / 80 3.5.1 ELM模型 / 81 3.5.2 DTELM模型 / 82 3.5.3 模型应用 / 84 3.6 迁移样本筛选方案 / 88 3.6.1 背景介绍 / 88 3.6.2 算法框架概览 / 88 3.6.3 搭建融合框架 / 89 3.7 本章小结 / 93 第4章 幸存者偏差 / 95 4.1 幸存者偏差的含义 / 95 4.2 增量学习 / 96 4.3 生成对抗网络 / 97 4.3.1 GAN模型介绍 / 98 4.3.2 GAN与幸存者偏差 / 99 4.4 高斯混合模型 / 100 4.4.1 GMM算法原理 / 101 4.4.2 GMM简单应用 / 103 4.4.3 GMM中的概率模型 / 104 4.4.4 GMM样本生成 / 107 4.5 信息准则 / 110 4.5.1 赤池信息准则 / 110 4.5.2 贝叶斯信息准则 / 111 4.5.3 AIC与BIC比较 / 111 4.6 本章小结 / 112 第5章 不均衡学习 / 113 5.1 样本不均衡 / 113 5.2 代价敏感加权方案 / 114 5.3 插值过采样方案 / 115 5.3.1 SMOTE算法 / 115 5.3.2 过采样算法实践 / 116 5.4 半监督学习方案 / 121 5.4.1 前提假设 / 122 5.4.2 S3VM / 122 5.4.3 LP / 127 5.5 本章小结 / 130 第6章 异常检测 / 132 6.1 离群点与欺诈检测 / 133 6.2 z-score检验 / 134 6.3 LOF异常检测法 / 134 6.3.1 原理与算法流程 / 135 6.3.2 LOF样本清洗方案 / 137 6.4 IF异常检测法 / 139 6.4.1 原理与算法流程 / 139 6.4.2 PreA模型与冷启动 / 141 6.5 本章小结 / 144 第7章 模型优化 / 145 7.1 多损失函数分段预测 / 145 7.1.1 两种损失函数 / 146 7.1.2 融合流程 / 146 7.2 树模型特征衍生 / 149 7.2.1 GBDT离散化 / 149 7.2.2 融合方案详解 / 150 7.2.3 特征衍生细节 / 151 7.2.4 案例 / 151 7.3 时间序列建模 / 160 7.3.1 RNN / 160 7.3.2 LSTM / 163 7.3.3 门控结构 / 164 7.3.4 LSTM行为评分卡案例 / 166 7.4 高维稀疏数据建模 / 170 7.4.1 算法原理 / 171 7.4.2 算法应用 / 172 7.5 模型融合 / 173 7.5.1 模型融合基础 / 173 7.5.2 模型筛选 / 174 7.5.3 业务应用方案 / 181 7.6 本章小结 / 183 第8章 知识图谱 / 184 8.1 复杂网络基础 / 184 8.2 中心度与相似性 / 187 8.3 节点分类 / 193 8.3.1 朴素节点分类 / 193 8.3.2 邻节点加权投票 / 195 8.3.3 一致性标签传播 / 197 8.4 社区发现算法 / 200 8.4.1 基础概念 / 200 8.4.2 Girvan-Newman算法 / 201 8.4.3 Louvain算法 / 202 8.4.4 社区评估 / 204 8.5 网络表示学习 / 206 8.5.1 矩阵分解 / 207 8.5.2 节点嵌入 / 210 8.6 图卷积神经网络 / 215 8.6.1 卷积神经网络 / 215 8.6.2 傅里叶变换 / 217 8.6.3 拉普拉斯算子 / 219 8.6.4 GCN中的图卷积 / 221 8.7 本章小结 / 225 参考文献 / 226 ---------------------------实时流计算系统设计与实现--------------------------- 前言 第1章 实时流计算 …… 1 1.1 大数据时代的新挑战:实时流计算 …… 1 1.2 实时流计算使用场景 …… 2 1.3 实时流数据的特点 …… 4 1.4 实时流计算系统架构 …… 6 1.4.1 数据采集 …… 6 1.4.2 数据传输 …… 7 1.4.3 数据处理 …… 8 1.4.4 数据存储 …… 8 1.4.5 数据展示 …… 9 1.5 本章小结 …… 10 第2章 数据采集 …… 11 2.1 设计数据采集的接口 …… 11 2.2 使用Spring Boot实现数据采集服务器 …… 12 2.3 BIO与NIO …… 14 2.3.1 BIO连接器 …… 14 2.3.2 NIO连接器 …… 17 2.4 NIO和异步 …… 19 2.4.1 CPU密集型任务 …… 19 2.4.2 I/O密集型任务 …… 20 2.4.3 I/O和CPU都密集型任务 …… 21 2.4.4 纤程 …… 22 2.4.5 Actor …… 24 2.4.6 NIO配合异步编程 …… 25 2.5 使用Netty实现数据采集服务器 …… 26 2.5.1 使用Netty实现数据采集API …… 27 2.5.2 异步编程 …… 29 2.5.3 流量控制和反向压力 …… 31 2.5.4 实现反向压力 …… 32 2.5.5 异步的不足之处 …… 36 2.6 本章小结 …… 36 第3章 实现单节点流计算应用 …… 38 3.1 自己动手写实时流计算框架 …… 38 3.1.1 用DAG描述流计算过程 …… 38 3.1.2 造一个流计算框架的轮子 …… 39 3.1.3 实现特征提取DAG节点 …… 42 3.1.4 实现特征提取DAG拓扑 …… 45 3.2 CompletableFuture方法与原理 …… 46 3.2.1 常用的CompletableFuture类方法 …… 47 3.2.2 CompletableFuture的工作原理 …… 49 3.3 采用CompletableFuture实现单节点流处理 …… 51 3.3.1 基于CompletableFuture实现流计算应用 …… 51 3.3.2 反向压力 …… 53 3.3.3 死锁 …… 54 3.3.4 再论流与异步的关系 …… 55 3.4 流计算应用的性能调优 …… 56 3.4.1 优化机制 …… 56 3.4.2 优化工具 …… 56 3.4.3 线程状态 …… 62 3.4.4 优化方向 …… 66 3.5 本章小结 …… 67 第4章 数据处理 …… 68 4.1 流计算到底在计算什么 …… 68 4.2 流数据操作 …… 70 4.2.1 过滤 …… 70 4.2.2 映射 …… 70 4.2.3 展开映射 …… 71 4.2.4 聚合 …… 72 4.2.5 关联 …… 73 4.2.6 分组 …… 75 4.2.7 遍历 …… 75 4.3 时间维度聚合特征计算 …… 76 4.4 关联图谱特征计算 …… 78 4.4.1 一度关联 …… 79 4.4.2 二度关联 …… 81 4.5 事件序列分析 …… 85 4.5.1 CEP编程模式 …… 86 4.5.2 Flink CEP实例 …… 87 4.6 模型学习和预测 …… 89 4.6.1 统计学习模型 …… 90 4.6.2 P-value检验 …… 90 4.6.3 机器学习模型 …… 91 4.7 本章小结 …… 93 第5章 实时流计算的状态管理 …… 94 5.1 流的状态 …… 94 5.1.1 流数据状态 …… 96 5.1.2 流信息状态 …… 97 5.2 采用Redis实现流信息状态管理 …… 98 5.2.1 时间维度聚合特征计算 …… 98 5.2.2 一度关联特征计算 …… 99 5.3 采用Apache Ignite实现流信息状态管理 …… 100 5.3.1 时间维度聚合分析 …… 101 5.3.2 一度关联特征计算 …… 103 5.4 扩展为集群 …… 105 5.4.1 基于Redis的状态集群 …… 106 5.4.2 局部性原理 …… 106 5.4.3 批次请求处理 …… 108 5.4.4 基于Apache Ignite的状态集群 …… 109 5.4.5 基于分布式文件系统的状态管理集群 …… 109 5.5 本章小结 …… 110 第6章 开源流计算框架 …… 111 6.1 Apache Storm …… 112 6.1.1 系统架构 …… 112 6.1.2 流的描述 …… 113 6.1.3 流的执行 …… 113 6.1.4 流的状态 …… 116 6.1.5 消息传达可靠性保证 …… 116 6.2 Spark Streaming …… 117 6.2.1 系统架构 …… 117 6.2.2 流的描述 …… 117 6.2.3 流的执行 …… 118 6.2.4 流的状态 …… 119 6.2.5 消息传达可靠性保证 …… 120 6.3 Apache Samza …… 120 6.3.1 系统架构 …… 120 6.3.2 流的描述 …… 121 6.3.3 流的执行 …… 123 6.3.4 流的状态 …… 126 6.3.5 消息传达可靠性保证 …… 126 6.4 Apache Flink …… 127 6.4.1 系统架构 …… 127 6.4.2 流的描述 …… 128 6.4.3 流的执行 …… 128 6.4.4 流的状态 …… 130 6.4.5 消息传达可靠性 …… 131 6.5 本章小结 …… 132 第7章 当做不到实时 …… 133 7.1 做不到实时的原因 …… 133 7.2 Lambda架构 …… 134 7.2.1 数据系统和Lambda架构思想 …… 135 7.2.2 Lambda架构 …… 135 7.2.3 Lambda架构在实时流计算中的运用 …… 137 7.3 Kappa架构与架构实例 …… 138 7.3.1 Kappa架构 …… 138 7.3.2 Kappa架构实例 …… 140 7.4 本章小结 …… 143 第8章 数据传输 …… 144 8.1 消息中间件 …… 144 8.1.1 为什么使用消息中间件 …… 145 8.1.2 消息中间件的工作模式 …… 146 8.1.3 消息模式 …… 147 8.1.4 使用消息中间件的注意事项 …… 149 8.2 Apache Kafka …… 150 8.2.1 Kafka架构 …… 150 8.2.2 Kafka生产者 …… 152 8.2.3 Kafka消费者 …… 154 8.2.4 将Kafka用于数据总线 …… 156 8.3 RabbitMQ …… 157 8.3.1 RabbitMQ架构 …… 157 8.3.2 RabbitMQ的使用 …… 158 8.3.3 将RabbitMQ用于配置总线 …… 160 8.4 Apache Camel …… 161 8.4.1 使用Apache Camel集成系统 …… 162 8.4.2 使用Apache Camel管理流数据路由 …… 163 8.5 本章小结 …… 166 第9章 数据存储 …… 167 9.1 存储的设计原则 …… 167 9.2 点查询 …… 169 9.2.1 数据灵活性 …… 170 9.2.2 MongoDB数据库 …… 171 9.2.3 数据过期和按时间分表 …… 172 9.3 Ad-Hoc查询 …… 174 9.3.1 倒排索引 …… 175 9.3.2 ElasticSearch …… 176 9.3.3 分索引存储 …… 177 9.4 离线分析 …… 178 9.4.1 存储 …… 179 9.4.2 处理和分析 …… 182 9.4.3 调度 …… 183 9.5 关系型数据库查询 …… 185 9.6 本章小结 …… 186 第10章 服务治理和配置管理 …… 188 10.1 服务治理 …… 188 10.1.1 流服务和微服务 …… 188 10.1.2 微服务框架Spring Cloud …… 190 10.2 面向配置编程 …… 195 10.2.1 面向配置编程思想 …… 195 10.2.2 更高级的配置:领域特定语言 …… 196 10.3 动态配置 …… 196 10.4 将前端配置与后端服务配置隔离开 …… 201 10.5 本章小结 …… 202 第11章 实时流计算应用案例 …… 204 11.1 实时流数据特征提取引擎 …… 204 11.1.1 流数据特征提取引擎DSL定义 …… 204 11.1.2 实现原理 …… 208 11.1.3 具体实现 …… 210 11.2 使用Flink实现风控引擎 …… 216 11.2.1 实现原理 …… 217 11.2.2 具体实现 …… 218 11.3 本章小结 …… 225 |