摘要: 简要穿讲一下概率图模型以及在风控中的应用
【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings
概率图模型
概率图模型结合概率论与图论,用图来表示与模型有关的变量的联合概率分布。如果把这里的变量视为实体,那么概率图模型相当于用图来表示实体之间的关联和约束,在机器学习领域中,实体就是特征和标签。图的表达能力很强,用点和线可以表达实体之间的复杂关系。边上再加上概率,又可以表达实体之间的强弱关系和推理逻辑。
分类任务中,借助概率图建立实体之间紧凑的依赖关系,可以减小类后验概率计算所需的参数估计工作量。
概率图模型可以很容易与专家和领域知识结合,比如做一些实体之间的独立性假设,简化系统实体之间的依赖关系。
网络结构
概率图模型主要分为两种
- 贝叶斯网络: 有向图,解决实体明确单向依赖的问题
- 马尔可夫网络: 无向图,解决实体之间相互依赖的问题
联合概率
- 有向图的联合概率: 各条件概率的乘积
- 无向图的联合概率: 最大团随机变量函数的乘积。
概率图模型的优点总结
(1) 表示
概率图模型可以很好表示实体之间关系,而且可以很容易导出相应的概率公式。同时,这种表示方法可解释性不错。
(2) 推理
推断: 在给定已知数据情况下,求某些数据概率分布。
有了相关的信息和观测数据,可以很容易利用概率图导出的计算公式进行推理,给出判别结果。
图的推断方法可分为精确推断和近似推断
- 精确推断
- 近似推断
- 确定性近似推断, 例如变分推断
- 随机近似推断, 例如MCMC
(3) 学习
图学习可分为两种
- 参数学习
- 完备数据学习: 完备数据即不含有隐变量
- 隐变量学习: 一般用EM算法求解
- 可以利用专家经验和语料数据减少要估计的参数量
- 结构学习: 给定了数据前提下先学习哪种图结构更符合当前数据,再学习参数。
经典模型
有向图
- 朴素贝叶斯模型 NB
- 特征条件独立性假设
- 贝叶斯定理
- 隐马尔可夫模型 HMM
- 前向后向算法
- viterbi解码
- EM参数估计
- 最大熵马尔可夫模型 MEMM
- 卡尔曼滤波器
无向图
- 最大熵模型 MEM
- 熵建模
- IIS迭代尺度优化算法
- 分布相似性度量方法
- 条件随机场 CRF
- 条件随机场定义
- 学习和预测的动态规划算法
- 吉布斯/玻尔兹曼机
假设条件
- 朴素贝叶斯模型
特定的类别样本在不同的特征属性上具备不同的数据表征
特征之间有独立性假设
- 隐马尔可夫模型
隐状态之间满足马尔可夫性假设(当前状态只和前一状态有关,而与历史状态和后续状态无关)
特征之间相互独立
特征只由当前隐状态产生
- 条件随机场
当前状态依赖于上下文状态和上下文观测
概率图模型与反欺诈
图模型的一个重要应用场景是欺诈检测,从各个特征出现的频率对异常概率进行预警。
风控中的数据缺失与共线性
风控建模实践中的数据源很多:
- 来自申请书填报
- 政府数据与征信报告
- 网站和手机APP采集
- 与其他企业合作
- 互联网公开信息
多个数据源的数据汇总到一起后,就有了维度特别高、来源特别广、数据结构特别杂的大数据特征。使用这种数据进行建模,在引入更多、更全面信息的同时,也天然地带来了两大问题
- 大量数据缺失
- 数据间相关性太强
这两个问题最后往往都导致了过拟合的问题。
数据缺失的问题
假如我们有两个不同的数据源,由于不同数据源的覆盖人群不一样,在数据拼接在一起的时候,没有同时被两个数据源观测到的人群(经常是大部分的人群)在另一数据源的变量天然地全部缺失。而一旦关键变量有缺失,在逻辑回归这一类线性模型中,模型效果会大受影响。因此处理多源数据带来的数据缺失问题是大数据风控的一个普遍问题。
这种缺失一般还不属于随机缺失,因此不恰当的处理甚至可能降低模型效果: 例如
- 传统的金融建模中,关键变量的缺失,例如无信用记录、购房记录,可以将这种缺失本身做成 0-1 虚拟变量乘以负权重进入逻辑回归模型,这和风控业务的角度看是符合业务需要的。
- 但大数据风控建模中,数据维度被拓展到包含互联网行为数据等非金融数据。如果仅仅因为客户在某个业务上没有数据就降低评分,那么征信评分就会变成会员分,即: 使用业务越多的客户具有更高的评分。这与大数据风控用更多信息客观评分的初衷背道而驰,也有极大可能导致数据上的过度拟合而降低样本外的模型效果,最终给采信的贷款机构带来损失。
数据间相关性的问题
金融的本质决定了大数据领域模型中变量的个数往往远远超过信用评分这一问题的本征维度。多个源的数据之间、同数据源不同变量之间,可能有显著的简单线性相关性或者更高阶的共线性。
机器学习通常的做法是使用正则化方法限制模型的复杂度。但是,金融风控建模的样本数量往往不足以分出足够的验证集用于调整合适的超参数,由于有效样本的不足,模型效果随着变量数量提升有限,空有成千上万个变量,能用上的却很少。
共线性带来更严重的问题是伪相关。数据的因果性和相关性一直是海量数据环境下的难题。
要相关,不要因果
—维克托•迈尔•舍恩伯格, 《大数据时代, 生活、工作与思维的大变革》, 2012
《大数据时代》中的这句话在以效率取胜的推荐问题和营销问题上可能是有效的。因为推荐问题和营销问题都是对因果性要求很低的模型,注重模型的快速迭代,在很短的时间内可以驱动业务收入提升。
但是在风控建模上就不好使了。例如类别 A 的客户恰好平均的每月信用卡额度使用比例较高,此时如果另一个客户 x 没有观测到信用卡使用情况,这个时候因为客户 x 属于类别 A 就获得一个较低评分是不合理的。
数据缺失和数据间相关性的传统解法
面对缺失数据和数据间高度相关的问题的传统做法:
首先使用不同的填充方法,然后通过 PCA 或者特征选择的方式降维。填充方法可以用均值/中位数直接填充,或者用回归/热平台插补等模型来建模填充。
但这个方案的效果并特别好,主要的问题在于填充的时候,这些方法都只能给出似然概率最高的单一估计,填充数据的偏差可能会淹没变量本身的信号,反而降低了模型效果。
概率图模型在风控中的应用
综合考虑数据有缺失、数据相关性、因果分析等方面的问题,可以考虑基于贝叶斯理论,将针对连续数据的概率主成分分析(Probabilistic Principle Componets Analysis, PPCA)和针对离散数据的贝叶斯网络(Bayesian Network)方法结合为概率图模型,打造统一的风控模型。在模型解释性、模型预测能力上以求达到最佳的平衡。
概率PCA
概率 PCA 与传统 PCA 方法类似,是一种 Transform,将多维数据进行函数映射到低维平面。
传统 PCA 方法无法处理缺失数据,而概率 PCA 作为一种适用于缺失数据情况下的特征提取方法,特别适用于征信风控这一问题。
PCA 方法回顾:
当我们手上有 n 维的数据,通过求取这 n 维数据的协方差矩阵,得到协方差矩阵的特征根和特征向量,根据特征值最大排序取前 k 个(
k < n
)特征向量,最后将 n 维数据投影到 k 个特征向量上实现降维。
概率pca:
假设原有的 n 个变量是由 k 个隐变量 z 生成的,并且隐变量 z 以及条件概率
x|z
都服从均值为wz
的正态分布,得到观测样本 x、隐变量 z 和参数 w 的联合分布函数,最后用贝叶斯定理求解给定 x 时 w 的后验分布。
贝叶斯网络
贝叶斯网络本身就是一种有向无环的概率图模型,适用于离散变量,用变量间的相关性,构建变量间的决定网络。
统一的概率图模型框架
通过改变概率 PCA 中的分布形式,可以实现连续变量和离散变量放入同一个模型。
假设在一个概率图模型中,有 5 个变量但是仅有 2 个本征维度。隐变量给定以后,有的观测向量是服从正态分布的连续变量(PPCA 部分),有的是服从二项分布的 0-1 变量(贝叶斯网络部分)。
- 根据贝叶斯理论,我们可以在部分数据已知部分未知的情况下,求出未知变量在已知变量被观测时的条件概率,实现了缺失填充的目的;
- 由于因变量的个数远远小于观测变量的个数,我们同时解决的数据降维的问题。
- 可以使用隐变量建立逻辑回归模型
- 如果添加多层隐变量,再把是否违约当作一个部分观测的自变量,那我们相当于得到了一个贝叶斯深度网络模型。
概率图模型框架和资料
pymc3
edward
- 《Mastering Probabilistic Graphical Models Using Python》
pgmpy