主要内容

可解释性和Explainability信用评分

这个例子显示了解释和解释不同的技术背后的逻辑信用评分预测。

而信用计分卡模型,在一般情况下,简单的解释,这个示例使用一个黑箱模型,没有揭示逻辑,为解释预测显示工作流。在本例中,您使用creditscorecard对象从金融工具箱™,通过得分函数可解释性工具统计和机器学习的工具箱™。这些工具包括:

这些工具支持回归和分类建万博1manbetx模,使解释更有效率。有关这些技术的更多信息,请参阅解释机器学习模型。在这个例子中,评分模型creditscorecard对象作为黑盒模型。这个工作流程的一个例子,看到解释为违约概率和压力测试深度学习网络

背景

信用评分是贷款人将分数分配给借款人的过程和使用这些分数来决定是否接受贷款申请。银行使用信用评分模型来提出这些分数。传统上,简单,可判断的信用计分卡和逻辑回归等模型被广泛应用于这一领域。随着时间的推移,机器学习(ML),介绍了人工智能(AI)技术实现信用评分模型。这些技术,同时提高预测能力,也更黑盒,有很少或根本没有解释背后的决策。因此,毫升的信用评分预测和人工智能技术对人类来说,是难以解释。因此,银行正在实施不同的可解释性和explainability方法获得更好的理解背后的逻辑的信用评分预测。此外,监管机构也要求从业人员使用更多的可解释性和公平的方法来确保没有平等机会法破碎而信贷决策。使用公平指标的更多信息,请参阅探索公平指标信用评分模型

创建信用计分卡模型

信用卡数据加载和创建信用计分卡模型使用creditscorecard对象。

负载CreditCardDatasc = creditscorecard(数据,IDVar =“CustID”);

应用自动装箱。这个示例使用分割算法,与最多5箱/预测和约束,每本至少有50的观察。有关更多信息,请参见autobinning本数据使用装箱Explorer创建信用计分卡

sc = autobinning (sc算法=“分裂”AlgorithmOptions = {“MaxNumBins”5,“MinCount”,50});

验证数值变量有五个箱子的装箱或水平。例如,这是本信息为客户年龄预测。

bi = bininfo (sc,“CustAge”);disp (bi)
本好与坏的几率,悲哀InfoValue _________________出生______ _____ __________{[无穷,35岁)的}93 76 1.2237 -0.50255 0.038003{[35岁,47)的}321 184 1.7446 -0.14791 0.0094258{[47,53岁)的}194 64 3.0312 0.40456 0.03252{[53,61)的}128 64 2 -0.011271 - 2.0365 e-05{”(61年,正)}67年9 7.4444 1.303 0.079183{“总数”}803 397 0.15915 2.0227南

为分类变量,可能有少于五个箱子,因为分割算法autobinning可以将类别合并到一个组。例如,住宅状态预测最初有三个级别:租户、业主和其他。只返回两组分割算法。

(bi, cg) = bininfo (sc,“ResStatus”);disp (bi)
本好与坏的几率,悲哀……替InfoValue __________出生{Group1的}672 344 1.9535 -0.034802 0.0010314{的Group2} 131年53 2.4717 0.20049 0.0059418{“总数”}803 397 0.0069732 2.0227南

类别分组信息显示Tentant和房主都并入Group1。这个分组意味着租户和业主会在最后的计分卡相同数量的点。

disp (cg)
_____类别BinNumber * * *{“租户”}{‘业主’}1{‘其他’}2

符合模型系数使用fitmodel。出于演示的目的,只保留5个模型预测,包括一些分类的。

PredictorsInModel = [“CustAge”“CustIncome”“EmpStatus”“ResStatus”“UtilRate”];sc = fitmodel (sc PredictorVars = PredictorsInModel VariableSelection =“fullmodel”显示=“关闭”);

这样规模的点500年点对应的几率2,双每几率50点。

sc = formatpoints (sc PointsOddsAndPDO = (500 2));

显示计分卡使用displaypoints。信用计分卡模型是一个查找表。例如,客户年龄有五箱或水平为每个级别不同的点。可视化的分数,年龄的函数具有分段常数与五个层次模式,如图所示部分依赖情节。住宅状况,租户和业主Group1,他们得到相同数量的点。

[ScorecardPointsTable, MinPts MaxPts] = displaypoints (sc);disp (ScorecardPointsTable)
_________________ ______预测本点* * * {‘CustAge}{[无穷,35岁)的71.84}{‘CustAge}{[35岁,47)的91.814}{‘CustAge}{[47, 53岁)的122.93}{‘CustAge}{[53, 61)的99.511}{‘CustAge}{”(61年,正)}173.54 {‘CustAge}{' <失踪>}南{‘ResStatus} {Group1的}97.318 {‘ResStatus}{的Group2} 116.43 {‘ResStatus}{' <失踪>}南{‘EmpStatus}{‘未知’}85.326 {‘EmpStatus}{“雇佣”}118.11 {‘EmpStatus}{' <失踪>}南{‘CustIncome}{[无穷,31000)的68.158}{‘CustIncome}{[31000、38000)的102.11}{‘CustIncome}{[38000、42000)的93.302}{‘CustIncome}{[42000、47000)的109.18}{‘CustIncome}{”(47000年,正)}121.21 {‘CustIncome}{' <失踪>}南{‘UtilRate}{[无穷,0.12)的106.84}{‘UtilRate}{[0.12, 0.3)的94.647}{‘UtilRate}{[0.3, 0.39)的140.95}{‘UtilRate}{[0.39, 0.68)的69.635}{‘UtilRate}{'[0.68,正]}94.634 {‘UtilRate}{' <失踪>}NaN

一个“传统”的方法来衡量信用计分卡模型中的每个因素的重要性是计算总分范围的百分比来自每一个预测。

PtsRange = MaxPts - MinPts;NumPred =长度(PredictorsInModel);PercentWeight = 0 (NumPred, 1);2 = 1:NumPred印第安纳= strcmpi (PredictorsInModel {2}, ScorecardPointsTable.Predictors);MaxPtsPred = max (ScorecardPointsTable.Points(印第安纳州));MinPtsPred = min (ScorecardPointsTable.Points(印第安纳州));PercentWeight (ii) = 100 * (MaxPtsPred-MinPtsPred) / PtsRange;结束PredictorWeights =表(PredictorsInModel、PercentWeight VariableNames = (“预测”“重量”]);disp (PredictorWeights)
预测体重_______ ______“CustAge”36.587“CustIncome”19.085“EmpStatus”11.795“ResStatus”6.8768“UtilRate”25.656

客户年龄是主要的变量在模型中,因为它与总分的36%范围内。客户可以从任何地方71.8173.5点,基于他们的年龄。这个范围的差异超过100点的最小值和最大值之间。另一方面,住宅中扮演一个次要角色状态得分,分从97.3116.4,低于20分的差距。

这种“传统”的方法的另一种选择是使用以下explainability技术统计和机器学习工具箱:部分依赖情节,个人条件期望的阴谋,当地可判断的Model-Agnostic解释情节,沙普利值

部分依赖情节

部分依赖图(PDP)显示了一个或两个变量对预测评分的影响。

使用plotPartialDependence函数通过分数的方法creditscorecard对象作为一个黑箱模型。

一个预测

选择一个预测使用下拉选项。

作为一个例子,如果选择客户年龄,注意分段常数的形状图,与跳跃发生在箱子边,和五个层次。这是符合客户年龄的5箱在信用计分卡模型。

预测=PredictorsInModel (1);plotPartialDependence(@(台)得分(sc(资源),预测,数据)

图包含一个坐标轴对象。坐标轴对象与标题部分依赖图,包含CustAge, ylabel Y包含一个类型的对象。

两个预测

生成部分依赖情节有两个预测可以显著长于one-predictor情况。通常,越独特价值预测数据集,情节部分依赖的时间越长。这里有一个惟一的值的数量的报告数据。

NumUniqueValuesTable = varfun (@ (x)长度(独特的(x)),数据(:,PredictorsInModel));NumUniqueValuesTable.Properties。VariableNames =擦掉(NumUniqueValuesTable.Properties.VariableNames,“Fun_”);disp (NumUniqueValuesTable)
CustAge CustIncome EmpStatus ResStatus UtilRate _________ __________替________ 54 45 2 3 110

分类预测没有独特的水平,所以这些情节分类预测运行得更快。数值变量如客户年龄相对独立,所以利用率因为这个速度值的两个小数。然而,一个连续预测(例如,平均每月余额(AMBalance)数据表)可以有许多独特的价值观。

选择一个预测和额外的预测,然后使用plotPartialDependence生成PDP阴谋。

预测=PredictorsInModel (1);additionalPredictor =PredictorsInModel (4);plotPartialDependence(@(台)得分(sc(资源),预测,additionalPredictor,数据)

图包含一个坐标轴对象。坐标轴对象与标题部分依赖图,包含CustAge, ylabel ResStatus包含一个类型的对象的表面。

个人条件期望的阴谋

类似于部分依赖图,个人条件期望的情节(ICE)显示了其中一个变量对预测评分的影响。冰的红线图匹配的部分情节的依赖。虽然部分依赖图显示,平均分数的函数选择的预测,冰情节分解并显示每个观测的分数(每个灰线)作为选择的预测函数。有关更多信息,请参见更多关于上节plotPartialDependence参考页面。

预测=PredictorsInModel (1);plotPartialDependence(@(台)得分(sc(资源),预测,数据,条件=“绝对”)

图包含一个坐标轴对象。坐标轴对象与标题个人条件期望的情节,包含CustAge, ylabel Y包含1202行,类型的对象分散。

选择一个查询点

PDP和冰情节提供了一个全局视图的信用计分卡的分数,分数是可视化的所有值选择的预测。相比之下,石灰和沙普利当地explainability技术解释模型的行为在一个社区查询点的选择。有关更多信息,请参见解释机器学习模型

如何查询点有助于解释信用评分,使用指数92年训练数据作为查询点。你可以选择其他查询点向文本框中输入一个索引值。

QueryPointIndex =92年;% ID号的观察来解释

使用分数显示查询点和分,预测,这个查询点。

[ScoresTraining, PointsTraining] =分数(sc、数据);流(“选择指数% d,以分数% g \ n”、QueryPointIndex ScoresTraining (QueryPointIndex))
选择指数92,得分417.289
disp (PointsTraining (QueryPointIndex:))
CustAge ResStatus EmpStatus CustIncome UtilRate替_____ ________ 71.84 97.318 - 85.326 68.158 - 94.647

下面的情节显示查询点的位置(垂直虚线)相对于值的分布为每个预测分数和。例如,对于索引92年相对于分布,分数很低。为客户年龄预测,查询点是在底部。这个结果是相似的客户收入、就业状况、居住状态预测。点利用率预测值更接近中间的分布,但仍低于平均水平。

图t = tiledlayout (3,2);nexttile plotQueryInHistogram (“分数”,ScoresTraining QueryPointIndex PointsTraining) nexttile plotQueryInHistogram (“CustAge”,ScoresTraining QueryPointIndex PointsTraining) nexttile plotQueryInHistogram (“CustIncome”,ScoresTraining QueryPointIndex PointsTraining) nexttile plotQueryInHistogram (“EmpStatus”,ScoresTraining QueryPointIndex PointsTraining) nexttile plotQueryInHistogram (“ResStatus”,ScoresTraining QueryPointIndex PointsTraining) nexttile plotQueryInHistogram (“UtilRate”,ScoresTraining QueryPointIndex PointsTraining)标题(t)“查询点相对于分配”)

图包含6轴对象。轴和包含对象1得分,ylabel频率直方图类型的对象包含2,constantline。坐标轴对象2包含CustAge ylabel频率包含2直方图类型的对象,constantline。轴和包含对象3 CustIncome ylabel频率包含2直方图类型的对象,constantline。4轴对象包含EmpStatus ylabel频率包含2直方图类型的对象,constantline。5轴对象和包含ResStatus ylabel频率包含2直方图类型的对象,constantline。坐标轴对象和包含6 UtilRate ylabel频率包含2直方图类型的对象,constantline。

当地可翻译的Model-Agnostic解释情节

当地可判断的model-agnostic解释(石灰)情节显示附近的局部线性模型的系数分,你想解释的实例。石灰解释特定的观察周围的分数,或查询点,用一个简单的局部模型,如线性回归模型或决策树。

使用石灰创建一个石灰对象指定感兴趣的数据集(训练数据集),模型的“类型”(用“回归”来表示一个数值预测),和哪些变量是分类。当您创建一个石灰对象,工具箱生成一个随机合成数据集。使用合成数据适合简单的局部模型来解释当地的行为。

rng (“默认”);%的再现性limeExplainer =石灰(@(台)得分(sc(资源),数据(:,PredictorsInModel)类型=“回归”,CategoricalPredictors = [“ResStatus”“EmpStatus”]);

选择一个最大数量的预测(NumPredToExplain)解释和使用SimpleModelType“树”解释的本地行为得分。结果是敏感到内核参数(宽度KernelWidthChoice)控制多少邻居点加权拟合线性简单的模型。

NumPredToExplain =5;%变量数/预测因素来解释KernelWidthChoice =0.5;limeExplainer =适合(limeExplainer、数据(QueryPointIndex PredictorsInModel),NumPredToExplain SimpleModelType =“树”KernelWidth = KernelWidthChoice);图f =情节(limeExplainer);

图包含一个坐标轴对象。坐标轴对象与标题石灰与决策树模型,包含预测的重要性,ylabel预测包含一个对象类型的酒吧。

树是一个简单的模型,基于预测的重要性,客户年龄是主要的因素,其次是就业状况和客户的收入。

沙普利值

沙普利值解释偏差预测评分的平均预测分数。所有预测夏普利值之和对应查询的得分点的总偏差的平均得分。

沙普利值估计基于模拟。对于更大的数据集,这模拟耗时。出于演示目的,本例中使用的训练数据只有500行沙普利构造函数。

rng (“默认”);%的再现性shapleyExplainer =沙普利(@(台)得分(sc(资源),数据(500年,PredictorsInModel),QueryPoint =数据(QueryPointIndex PredictorsInModel) CategoricalPredictors = [“EmpStatus”“ResStatus”]);图绘制(shapleyExplainer)

图包含一个坐标轴对象。坐标轴对象与标题沙普利解释,包含夏普利值,ylabel预测包含一个对象类型的酒吧。

查询点的索引92年,预测评分417年的平均分数,而训练数据集传递给沙普利函数是516年。你期望的夏普利值是负的,或者至少有重要的消极成分,解释为什么预测评分低于平均水平。相比之下,成绩高于平均水平的夏普利值加起来积极的数量。在这个例子中,估计夏普利值表明,主要偏离平均值是解释为客户收入和就业状况预测,其次是客户的年龄和利用率的作用。住宅状态预测并不重要。这个结果可能的组合模拟本身与住宅状况有一个较小的对分数的影响模型。

最后的评论

Explainability技术被广泛用于理解的行为预测模型。在这个例子中,一个creditscorecard模型显示explainability技术,如PDP,冰,石灰,沙普利应用于解释一个黑箱模型。虽然信用计分卡模型简单,可翻译的,您可以应用explainability工具在这个例子中其他评分模型视为黑盒模型或统计和机器学习的工具箱支持模型。万博1manbetx或者,而不是解释的分数,你可以通过probdefault函数作为黑盒模型来解释违约概率预测。

本地函数

函数plotQueryInHistogram (VariableChoice QueryPointIndex,分数,PointsTable)如果VariableChoice = =“分数”HistData =分数;其他的HistData = PointsTable。(VariableChoice);结束直方图(HistData)参照线(HistData (QueryPointIndex),“:”,“线宽”,2.5)包含(VariableChoice) ylabel (“频率”)结束

相关的话题

外部网站