概述
模型
线性判别分析方法,Sir Ronald Fisher最早提出模型评分的概念。
个人FICO模型信用分。
巴塞尔委员会发布巴塞尔Ⅱ协议,推出内部评级法(Internal Rating Based Approach,IRB)。IRB综合考虑客户评级和债项评级,通过违约概率(Probability of Default, PD)、违约损失率(Loss Given Default, LGD)、违约风险暴露(Exposure At Default, EAD)以及有效期限(Maturity, M)四个风险要素计算信用风险加权资产。
按照信贷生命周期划分,有四种应用最为广泛的模型:
- A卡:申请(Application)模型,贷前,审批与额度
- B卡:行为(Behavior)模型,贷中,还款
- C卡:催收(Collection)模型,贷后,催收
- F卡:反欺诈(Fraud)模型,全流程,反欺诈。
算法
模型和算法是两个概念:
- 算法是一系列针对特定问题或任务的计算步骤或指令。它是一种具体的计算过程,用于处理数据并生成有用的结果。
- 模型是通过算法在特定数据集上训练得到的结果或表示。它是对数据的一种抽象和概括,用于预测或推断新的数据样本。模型可以采用数学方程、统计分布、决策规则等形式,它的目标是对未知数据进行预测或分类。
逻辑回归算法
逻辑回归(Logistic Regression, LR)算法:一种经典的二分类算法,可用于预测客户的违约概率。它通过估计一个线性回归方程并将结果映射到一个概率值(0到1之间)来预测违约概率。
两个变量之间存在线性关系,也叫一次函数关系,映射到直角坐标系中是一条直线。公式: y = b 0 + b 1 ∗ x 1 + b 2 ∗ x 2 + e y=b_0+b_1*x_1+b_2*x_2+e y=b0+b1∗x1+b2∗x2+e就描述一种线性关系。
该公式由四部分组成:
- x x x:自变量或预测变量,可以是原始变量、转换变量或虚拟变量;
- b b b:回归系数或参数估计,相当于变量的权重。虚拟变量的系数表示其相对重要性;
- y y y:因变量、目标变量或响应变量,与结果有关。通常0代表坏,1代表好,这样最终分数越高代表信用质量越好;
- e e e:残差或误差,是模型无法解释的部分,通常可以忽略
线性关系是研究n个变量之间关系的函数,回归系数可以解释一个模型中预测变量与目标变量之间的关系,也是研究多个变量之间的关系,更具体地说是研究因变量和自变量之间的关系。根据是否违约,可以将信用评估结果划分为0和1两类。一般情况下,0表示未违约,1表示违约。由于线性回归会有多个输出值,无法进行直接分类,因此LR通过一个单位阶跃函数将线性回归函数输出结果映射到0或1,最终成为逻辑回归函数。逻辑回归算法通过把y的结果带入一个非线性变换的Sigmoid函数中,将结果映射到0到1之间的概率值,进而预测客户未来的违约概率,即 g ( y ) = 1 1 + e − y g(y)=\frac{1}{1+e^{-y}} g(y)=1+e−y1
如果我们设置概率阈值为0.5,那么当y大于0.5时,可以将其看成正样本,当y小于0.5时可以将其看成负样本。
逻辑回归算法的优点:
- 采用简单直观的建模方式,并具有可解释性。通过分析特征变量的权重,逻辑回归模型可评估客户的信用风险并给出可解释的违约概率;
- 适用于处理二分类问题。逻辑回归模型的性能和效果取决于数据质量、特征选择和模型参数调优等多个因素。逻辑回归对于缺失值、异常值和共线性比较敏感,且无法直接处理非线性特征。
决策树
决策树是一种基于树形结构的预测算法,用于评估风险,并做出相应决策。决策树从根节点开始,对样本数据的某一个特征进行测试,并根据测试结果将样本分配到内部节点上,然后递归地将数据集划分为不同的子集,每个子集对应一个叶节点,即每个叶节点表示一个分类结果或决策,最终生成一棵决策树。
决策树的构建步骤:
- 特征选择:基于每个特征的重要性和预测能力,选择最佳的特征作为分割数据的依据。常用的特征选择度量包括信息增益、基尼系数和方差等;
- 分割节点:决策树根据选定的特征将数据集分割成不同的子集。分割的目标是通过特征值将数据分成纯度更高的子集,即同一类别或相似特征的数据在同一个子集中;
- 递归构建:对每个子集进行递归操作,重复步骤1和步骤2,构建下一层的决策树分支,直到满足停止条件。停止条件可以是达到预定义的树的深度、节点中样本数量过小或纯度满足要求等;
- 叶节点分类:当满足停止条件时,决策树构建完成,然后需要为叶节点指定分类标签。叶节点的分类标签可以是出现频率最高的类别,也可以根据子集的平均值进行回归预测;
- 剪枝:决策树的过拟合很常见。为了避免过拟合,可进行剪枝操作。剪枝可以降低模型的复杂性,删除一些不必要的决策规则,从而提高模型的泛化能力;
- 预测和决策:构建好的决策树可用于预测新样本的类别或作出决策。根据新样本的特征值,沿着树的分支逐步判断,直到到达叶节点,然后根据叶节点的分类标签进行预测或决策。
决策树的优势:
- 较强的可解释性,提供简单清晰的决策规则,易于理解和解释;
- 能够处理非线性关系和复杂的数据结构。相比传统的线性回归模型,决策树更适合非线性特征和复杂数据分布;
- 对缺失数据具有较强的兼容性。决策树可通过其他属性的信息来处理缺失值,并继续进行分类和决策,避免额外的数据预处理步骤;
- 可扩展性和高效性。在大规模数据和高维特征的情况下,决策树的构建和预测过程相对高效。训练和预测复杂度与数据量和特征数量呈线性关系,使得决策树成为处理大规模数据集的强有力工具。
决策树不适合处理高维数据,当属性数量过大时,部分决策树就不适用。
集成学习
集成学习是一种通过组合多个基础模型来提高整体性能和预测准确性的算法。它的原理是当单独运行某些基础模型表现不佳时,可以尝试将它们组合在一起,以增强模型的算法能力,通过互补和纠错的方式减少个体模型的偏差,并提升整体模型的泛化能力和稳定性。这种将多个基础模型组合起来的方法被称为集成学习。
有三种常见的集成学习算法框架:
- Bagging:自助聚合,通过从原始数据集中有放回地选取样本,构建多个训练集,并在每个训练集上训练独立的基础模型的方法。它通过综合所有基础模型的预测结果来产生最终的预测结果。随机森林是一种常用的Bagging算法,通过集成学习的思想将多棵决策树进行整合,能够处理回归和分类问题。随机森林的原理是从原始数据中有放回地随机抽取
M
M
M个大小相等的数据子集作为训练集,每个训练集都是相互独立的。然后,每个训练集训练出一个模型,共计
M
M
M个训练集和
M
M
M个模型。这些模型被集成起来,根据特定的组合策略输出最终的结果。这种方法能够改善模型的鲁棒性和泛化能力。
- Boosting:一种迭代算法,通过组合具有权重的基础模型来提升整体模型的性能,可显著提升机器学习模型的性能和泛化能力。在每次迭代中,Boosting根据前一次迭代的预测结果对样本进行加权,逐步调整模型以更接近真实值。其核心思想是关注前一轮模型预测错误的样本,重点训练区分度较低的样本,从而不断提高模型的准确性。Adaboost是一种著名的Boosting算法,它利用加权投票的方式将多个基础模型组合成一个分类器。在每轮迭代中通过调整样本的权重,使得前一轮模型错误分类的样本在下一轮模型中得到更多的关注。这种方式使得Adaboost能够逐步提高整体模型的准确性,并对难分样本有良好的泛化能力。除了AdaBoost,还有一些其他常见的Boosting算法,如梯度提升树(Gradient Boosting Tree)和XGBoost(eXtreme Gradient Boosting)。这些算法通过迭代地拟合残差并优化目标函数来提升模型性能,被广泛应用于分类、回归和排序等任务中。
- Stacking:堆叠,Boosting和Bagging通常使用同一种基础模型,可称为同质集成方法。Stacking则是一种基于多个不同的基础模型的异质集成方法。Stacking算法的主要思想是在模型预测结果的基础中训练一个模型,就像在原有的模型中加上一个堆叠的模型。与其他集成方法相比,Stacking算法具有较高的自由度,可结合多个相同或不同算法,综合考虑各个算法的预测效果,从而获得更精确的结果。为了捕捉数据的多个维度,应尽可能选择不同的基础模型。为了避免基本模型的过拟合,可以使用交叉验证来构建元训练集,并在真实数据上进行测试以评估模型的性能。通常情况下,Stacking的模型结构相对简单,一般有两层。第一层的基学习器通常选择差异较大或较为复杂的算法,而第二层的模型则选用相对简单的分类器。尽管Stacking的内部工作流程难以直观解释,但它能够融合多种不同类型算法各自的优势,从而具有强大的分类效果,显著提高准确率。
Bagging、Boosting和Stacking是三种常用的集成学习框架,在不同情况下具有独特的优势和适应性:
- Bagging主要用于降低方差,减少模型的过拟合风险。通过对原始数据集进行有放回抽样来构建多个训练集,并在每个训练集上独立地训练基础模型,提高模型的稳定性和泛化能力;
- Boosting则主要用于降低偏差,提高模型的准确性。能够通过集中关注难分样本来提高模型在复杂数据上的分类效果,从而降低模型的偏差;
- Stacking更注重模型之间的协作和整体优化。通过在基础模型的预测结果上训练一个元模型,从而利用不同模型之间的潜在关系来改善预测性能。
深入理解这些框架的优势和适用性,有助于选择适当的集成学习方法以解决特定问题。
指标
模型有好有坏,如何评价一个模型的质量,因此引入各种指标,主要有区分度和准确性两类:
- 区分能力:是指分数的排序能力,或者说一个模型分数可以在何种程度上区分好坏。是模型的首要标准,模型的区分能力越强,它在信贷业务中产生的价值越大;
- 准确度:准确度可以通过好坏比率或违约概率估计值与实际值的比值来评估。如果模型能够准确地判断样本的好坏,那么模型的好坏比率就会与实际的好坏比率接近,从而反映出模型的准确度较高。
混淆矩阵
混淆矩阵(Confusion Matrix)也称误差矩阵,是表示模型精度评价的一种标准格式。混淆矩阵用于展示模型预测结果与实际观察结果之间的交叉对比,特别适用于二分类问题。
混淆矩阵是一种特殊的二维列联表,包含4种不同的预测标签和真实数据标签组合,使得多个变量的频率分布实现可视化,是用来评估模型好坏的常用指标之一。
根据真实数据标签和模型预测标签组合可以将结果分为四类:
- 该信贷样本是违约样本数据且经过模型预测后也是违约样本实例,即真正例(True Positive, TP);
- 该信贷样本是未违约样本数据但经过模型预测后是违约样本实例,即假正例(False Positive, FP);
- 该信贷样本是未违约样本数据且经过模型预测后也是未违约样本实例,即真反例(True Negative, TN);
- 该信贷样本是违约样本数据但经过模型预测后为未违约样本实例,即假反例(False Negative, FN)。
医学领域也经常会看到混淆矩阵的应用,阳性表示患某种疾病,阴性表示没有患病。诊断结果基于化验结果,而化验结果可能会出现错误,因此真阳性(真正例)、假阳性(假正例)、真阴性(真反例)、假阴性(假反例)的情况可能会出现。
评价指标
常用的基于混淆矩阵的评价指标:
- Accuracy:准确率,表示预测正确的样本数占样本总数的比例,公式 A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy=\frac{TP+TN}{TP+TN+FP+FN} Accuracy=TP+TN+FP+FNTP+TN。
- Precision:精确率,表示预测为正的样本中实际为正的样本所占的比例,公式
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision=\frac{TP}{TP+FP}
Precision=TP+FPTP。
精确率和准确率则是一对容易让人混淆的度量指标,二者是有区别的。一般情况下,精确率是度量二分类问题的指标,而准确率不仅可以度量二分类问题,还可以度量多分类问题。 - Recall:召回率,表示真实情况为正例,预测正确的样本占比,公式
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Recall=\frac{TP}{TP+FN}
Recall=TP+FNTP。
在理想的情况下,精确率和召回率越高越好,但这两个指标是一对相互矛盾的度量指标。当精确率高时,召回率往往偏低;而当精确率低时,召回率往往偏高。 - F1 Score:F1分数,F1分率是精确率和召回率的调和平均值,综合这两个指标的信息,用于衡量分类模型的综合性能,提供对分类模型性能的整体评估,公式:
F
1
=
2
1
精确率
+
1
召回率
=
2
∗
精确率
∗
召回率
精确率
+
召回率
=
T
P
T
P
+
F
N
+
F
P
2
F1=\frac{2}{\frac{1}{精确率}+\frac{1}{召回率}}=2*\frac{精确率*召回率}{精确率+召回率}=\frac{TP}{TP+\frac{FN+FP}{2}}
F1=精确率1+召回率12=2∗精确率+召回率精确率∗召回率=TP+2FN+FPTP
F1分数对于平衡精确率和召回率非常有用,尤其是在正负样本比例严重失衡,如果单独使用精确率或召回率可能会导致评估结果偏向于多数类别的情况下。F1分数充分考虑这两个指标,并合理权衡,因此更适合评估在类别不均衡情况下的模型性能。 - ROC曲线:混淆矩阵输出后,每个样本都会获得对应的两个概率值,一个是样本为正样本的概率,一个是样本为负样本的概率。将这些概率值按照从高到低的顺序进行排序,排序后的概率值将对应不同的阈值。选择一个阈值,将大于或等于这个阈值的样本判定为正样本,小于阈值的样本判定为负样本。根据判定结果计算出对应的真正率(TPR)和假正率(FPR)。TPR是判定为正样本且实际为正样本的样本数/所有的正样本数;FPR是判定为正样本实际为负样本的样本数/所有的负样本数。由于判定为正样本的概率值区间为
[0, 1]
,阈值必然在这个区间内选择,因此在此区间内不停地选择不同的阈值,重复这个过程,就能得到一系列真正率(TPR)和假正率(FPR)。以这两个序列作为横纵坐标,即可得到ROC(Receiver Operating Characteristic)曲线。
ROC曲线上每一个点都对应一种信用分数的划分方式,点的横坐标为对应划分方式下的FPR,纵坐标为TPR。ROC曲线越靠近左上角,模型的表现越好。
- AUC:Area Under the Curve,曲线下的面积。AUC曲线描述ROC曲线下的面积,即ROC曲线与坐标轴围成的区域的面积,取值范围是0到1。AUC的值越接近1,表示模型的性能越好,具有更高的分类能力。当AUC的值等于0.5时,表示模型的分类能力与随机猜测一样,即没有区分能力。当AUC的值大于0.5时,表示模型具有一定的区分能力。因此,表现良好的模型的AUC的值应当超过对称线,即大于0.5。不同AUC值对应的模型性能说明如表:
AUC值 | 模型性能 |
---|---|
0.5<AUC<0.6 | 区分能力较弱 |
0.6≤AUC<0.75 | 区分能力中等 |
0.75≤AUC<1 | 区分能力较强 |
- KS:KS是根据苏联数学家Kolmogorov和Smirnoff的名字命名的,用于评估模型的风险区分能力。该指标衡量好坏样本累计分布之间的差异,是评估二分类模型性能的常见指标之一,也是模型评分领域中最常用的评估指标之一。KS值越大,表示模型的风险区分能力越强,好坏样本的累计差异越大。KS曲线和ROC曲线的本质和数据来源相同,只是KS曲线将真正率(TPR)和假正率(FPR)都绘制在纵轴上,横轴则由选定的阈值充当。最大的KS值对应的概率即预测模型的最佳切分阈值。上图4-6纵轴上KS=0.3的这部分表示ROC曲线的斜率为1的切线的截距。在计算KS值时,样本数据不能有缺失值,否则计算出的值将不准确。一般而言,当KS大于0.2时,表示模型的预测准确性较好。当KS超过0.4时,说明模型的预测效果更佳。但KS也不能太高,超过0.7表示模型可能存在问题。不同KS值对应的模型性能说明如下表:
KS值 | 模型性能 |
---|---|
KS<0.1 | 没有区分能力 |
0.1≤KS<0.25 | 区分能力一般 |
0.25≤KS<0.4 | 区分能力中等 |
0.4≤KS<0.7 | 区分能力强 |
KS≥0.7 | 区分能力过强,不真实 |
- PSI:Population Stability Index,群体稳定指标,一种常见的评估模型稳定性的指标,用于衡量测试样本和建模样本评分的分布差异。模型在特定时间段内使用建模样本进行开发,但由于需要确定该模型是否适用于不同的样本(可能是不同时间段或不同客群),因此需要进行稳定性测试。PSI通过将分数进行分组,然后比较不同客群或不同时期样本在每个分数区间内的占比,以判断总体分布是否发生显著变化。PSI的计算结果始终大于等于0。
计算PSI时,首先将测试样本和建模样本的评分按照特定的分组方式进行划分。其次计算每个分组内测试样本和建模样本的占比。最后计算每个分组的PSI值,公式: P S I = ∑ [ ( 测试样本占比 − 建模样本占比 ) ∗ l n ( 测试样本占比 / 建模样本占比 ) ] PSI=\sum[(测试样本占比-建模样本占比)*ln(测试样本占比/建模样本占比)] PSI=∑[(测试样本占比−建模样本占比)∗ln(测试样本占比/建模样本占比)]
对所有分组的PSI值进行求和,得到总体的PSI值。PSI值越小,表示测试样本和建模样本评分的分布差异越小,模型的稳定性也越高。通过评估PSI指标,我们可以判断模型在不同样本之间是否具有稳定的预测能力。不同PSI值对应的模型性能说明如表
PSI值 | 模型性能 |
---|---|
PSI<0.1 | 样本分布有微小变化 |
0.1≤PSI<0.2 | 样本分布有变化 |
PSI>0.2 | 样本分布有显著变化 |
- 基尼系数:模型中的基尼系数是用来衡量模型的预测准确性和分类能力的指标之一。基尼系数的范围是0到1,越接近0表示模型的分类能力越好,越接近1表示分类能力越差。在信贷模型中,基尼系数可以用来评估模型对于客户违约与否的预测准确性。信贷模型可以将客户划分为违约和非违约两类,基尼系数可以衡量这两类客户的不平衡程度。计算基尼系数时,首先根据模型的预测结果对客户进行分类,得到两个子集。其次计算每个子集中违约客户所占的比例,记为 p 1 p1 p1和$p24。最后计算基尼系数: 1 − ( p 1 2 + p 2 2 ) 1-(p1^2+p2^2) 1−(p12+p22)。通过计算基尼系数,可以评估信贷模型的分类准确性和不平衡程度。较低的基尼系数代表模型的预测准确性较高,能够有效地区分违约和非违约客户。较高的基尼系数表示模型的分类能力不够准确,需要进一步改进或调整模型的参数。
参考
- 大数据智能风控:模型、平台与业务实践