各位同学,大家好,欢迎来到金融数据挖掘的课堂。今天我们学习的内容呢,是模块2第9章金融分类算法的性能评估。作为金融工程专业的学生呀,我们都知道资产不良率是不良金融机构资产安全的重要指标。观察近10年我国商业银行的资产不良率,我们可以发现呢,近几年我国商业银行的不良贷款率啊维持在一个非常稳定的水平。那么其中一个重要的做法呢,就是银行引入了大数据技术进行信贷风险的防控。我们通过课程前期的学习呢,了解了决策树模型,基于规则的分类器。
朴素VS模型VS信念网络等一系列大数据模型,那么这些模型都可以用于银行风险的防控。那么如何去评价这些不同的模型,它的性能到底是如何的呢?我们来看这样的一种情况,现在有一个A企业啊,它由于经营的需要,要去进行贷款,并提供了自己的一系列信息,例如我们的企业规模,我们的资产负债率。那么银行的客户经理啊,将这样的一个申请呢,递交给了风控部门。风控部门呢,正好设计了一个模型,这个模型啊,在历史的数据当中,准确率是99.9%。
那么请问这是一个好模型吗?能直接用来使用吗?我们?我们可以从今天这节课找到答案。
课前呢,我也将这个问题呢通过云课堂推送给了大家。那么,大家也进行了积极的反馈。我对大家的结果呀,进行了一个统计,60%的同学都认为它是一个好模型。为什么准确率非常的高。但是呢,也有40%的同学提出了反对的意见,那么他的准确答案到底是什么呢?不妨来看一下这样的一个场景。如果银行用来测试的数据集一共有1000个客户,其中990个是无风险的,只有10个是有风险的,那么如果一个模型把所有的客户都预测为无风险,那么。
它的准确率就是99.9%。那么大家觉得这是一个好模型吗?显而易见,答案是否定的,为什么?因为它没有任何针对风险客户的预警能力。因此呀,在金融分类模型的评估当中,不能仅仅把准确率作为评估的指标。那么问题就来了,我们需要什么样的评估指标呢?现在进入我们的小组讨论环节,希望同学们针对刚才的场景啊,去想一想我们到底需要什么。用的非常的充分。有的小组呢,认为我们模型需要能够评价预测出来的风险客户中,到底有多少是真正有风险的客户。
还有的小组认为啊,我们应该能够评价真正的风险客户中能够被准确预测的比例。非常好。简而言之呢,我们要更加关注于对风险客户的评价,那有没有这样的指标呢。我们可以给于混淆矩阵去发现这些指标。
混淆矩阵呢,是对模型的评价的结果呀,做了一个可视化的展示,它是一个2×2的矩阵。那么将模型预测的结果与我们真实的情况做一个对比呢,我们就可以获取到TPFFPT这些专业的术语。
那么。
他们是什么样的含义呢?其实很简单,P呢就是positive,表示我预测的出来的是正类。那么正类呢,就是有风险的客户。那么A呢,自然就是我预测出来是没有风险的情况。那么T和F又是什么意思呢?对了,是出和false。也就是说,我模型预测结果是正确的,那么它就是一个T,如果预测是错误的,那么它就是一个F。因此,如果对这些术语进行解释的话,我们以TP为例,它就是模型预测出来是风险的客户实际上也是风险的这样客户的数量,那么F呢,就是我模型预测出来的是一个无风险的客户,但是真实的情况呢?
它是错误的,它是有风险的情况。那么,结合课前功课的学习呢,我希望同学们其实刚才学习的混淆矩针啊,去想一想真正的风险科目中能够被准确预测的比例,它应该用哪一种指标来进行描述呢?我们这里有ABC三种不一样的指标,请同学们思考一下。邀请一个同学回答。李同学,李同学的回答呢,是我们的召回率。这个结果呀,是正确的。另外,去观察一下我们正回率的指标,可以发现呢,它的分子是模型预测出来有风险真实也是有风险客户的数量。
但它的分母呀,恰恰是数据集里所有有风险可估的数量。答的非常好,但是呢,课前也有同学反映ABC这三个指标呀,有一点混淆。接下来呢,我们就进入混淆场景的解惑环节。那么什么是精度呢?这个精度呀,从它的公式里面可以发现。它是能够度量预测出来是有风险的客户当中多少是真正有风险的比例。例如,上一排呢,是我们模型预测出来真正有风险的客户。下面呢,是真实情况。那我们同学们回答一下,它的精度等于多少呢?非常好,精度很明显是2/5。
那么召回率呢,我们刚刚解释过了,它是度量,能够正确预测这样的。是风险客户的比例。那这个时候呢,我们一共有5个有风险的客户。我们准确抓住了三个,那么它的召回率就是3/5。那么什么是F度量呢?其实也很简单,它是对精度和召回率的一个综合考虑。
它是一种线性加权的表示。
那么,这三个指标到底能不能解决刚才准确率的缺陷呢?这些场景的呈现。这是我们刚才所说的场景。共有1000个客户模型呢,将990个都。一共有1000个客户,990条是有风险的,10个是无风险的。模型将所有的客户都预测为无风险。那么准确率是99.9%,那么同学们去计算一下,我们的精度召回率和F度量能不能解决准确率缺陷问题开始。
同学们都已经计算出结果了吧?是不是很明显?如果我把所有的客户都预测为无风险,那么我的T它就是没有的。因此呀,我的TP和FP都等于0。我准确预测了非风险的客户是990个,没有什么作用。我的精度召回率和F度表通通都是0。是不是可以解决准确率的缺陷问题?可是问题又来了,那么它满足我们分类算法里所有模型评估的要求吗?
我们继续往下听。
其实,通过课程前期的学习啊,我们发现了模型去判断一个客户有没有风险,就是去计算有风险条件下给定企业信息的后验概率的大小。当它的阈值大于0.5的时候,我们就判定它为有风险。但是不要忘了我们真实的金融场景,场景的不同对阈值是有不同的要求的,如果我们的阈值发生了变化,我们会发现我们模型的结果也会发生变化。那么如果金融场景里面需要对更高的风险进行计量,预值就会变成0.60.7乃至0.8。所以我们就需要一个能够动态评估,动态预值下模型综合表现的方法,可是我们刚刚学过的几个指标呀。
都是静态的标。
解决这个问题,那么有没有能够综合评估模型性能的指标呢?答案是有,它是什么呀?
它就是我们的。中心的曲线。
什么是LC曲线呢?它的。历史非常的悠久。它起源于我们的二战战场。英国的雷达兵啊,他需要通过雷达观测对方来袭的是敌机还是飞鸟。但是呢,凭肉眼去观察呀,有的时候呢。
雷达夫这个过于的大胆。他家粉。
敌机呢,当做是飞鸟形成了漏报。有的时候呢,又过于的谨慎,它会把飞鸟当做敌机,这个时候呢,就会形成误报。所以就需要一个能够综合评价。这大表。项的指标是不是是不是和我们的风险评价是非常类似的,所以在这样的一种场景下呀,LC曲线横空出世。他长得就是这样的一个样子。它代表什么样的含义呢?LC曲线呢,它其实很简单啊,它是一个二维平面,它的纵轴呢,表示的是敏感性,也就是对风险客户能够准确预警的概率。而它的横轴呢,表示的是特异性,也就是对非风险客户错误预警的概率。
注意我的干关键词正确与错误。然后再思考一下这个问题,LC曲线上的哪个点?是代表模型的性能是最优的呢?请同学们思考一下。开始我们的弹幕。注意我刚才的关键词哟,正确还是错误?好,开始。已经有同学开始发动弹幕了。左上。左上角。好,大部分同学呢,已经找到了准确的答案。它就是我们的临界这个点。因为这个点代表模型预测的风险。客户。都已经全部预测出来了一嘛。0是代表什么非风险客户?我没有一个错误预警的。因子,它是最优的一个点。
那我们是一个曲线呀,怎么评价它的优劣呢?没有关系,我们的LC曲线越接近于左上角,那么它的性能就是越优的。那么听到这里,同学们是不是很想知道ROC曲线是如何去进行构造的呢?来看一下LC曲线的构造过程。LC曲线的构造过程呀,其实也就三个步骤。第一个步骤呢,我们需要获取不同模型的对不同客户的后验概率的预测大小。然后我们要做一件什么样的事情,我们需要对这个后页呢做一个排序。哎,排序在我们的数据挖掘课程里非常的有用哦,排完序之后,干什么?
每一个概率值我都可以当成是一个域值。大于等于这个域值呢,我就判定它是有风险的客户,小于这个阈值呢,我就判定他是没有风险的客户。我们是不是会产生很多的阈值,因此我们就能够对多种阈值条件下去计算模型的真正率和假正率,那我们的LC曲线是不是就刻画出来了?这就是LC曲线的构建过程。那同学们想不想结合实际的场景去自己尝试一下,构建一个模型的LC曲线呢?好,接下来进入到我们的实战来讲。现在呀,我们都要化身成数据分析师了,我们现在银行呢,给我们提供了010001到零幺零十个客户的信贷通信的信息,然后运用了一个朴素贝叶斯模型A,他做了一件什么样的事情呢。
他将模型,他将可001~010号客户的风险预测呀,都给出来了,我们预测风险的概念就是我们的最后一列,同时呢,银行也提供了我们实际的风险情况,现在我们就需要针对这个模型A去预测一下。刻画一下模型的ROC曲线,回想一下我们刚才ROC曲线的构建过程。衣服是什么,还记得吗?对了,第一步就是我们数据挖掘课程里经常使用的。排序。我们需要针对这最后一列预测风险的概率呢,去做一个由大到小的排序。好,我们来看一下,这就是我们的排序结果。
没有问题,那第二步是干什么呀?对了,第二步就是针对每一个阈值呢,我们都要去判断有风险客户和没有风险客户的数量,然后去计算呀,真正率和假正率化成LC曲线上坐标上的一个点,对不对?对,好,我们继续往下。这就是我计算的完整过程,我们此时呀,以第一个科目为例。进行说明。也就是说,如果他的预值是0.9≥0.9,我们预测为有风险的客户。小于0.9呢,就是没有风险。我们来看一下实际情况,第一个,它是有风险的。因此,在这样的一种预知情况下,准确预测有风险的客户是几个?
对了一个,所以我们的TP术语它就是等于1。因为没有预测出其他的有风险的客户,所以我们的FP=0。那剩下的9个客户里,正确预测的没有风险的客户很显然是5个嘛。那么。预测出来无风险实际是错误的呢,那就是4个。因此我们就可以计算出我们的真正率是0。点2假证率呢是0,以此类推,10个客户的真正率和假证率我们是不是都知道啦,那么我们的LC曲线呢,就个。是不是有同学有疑问,老师,我看的这个啊,这曲线和你刚才给我讲的不一样嘛,刚才是一个曲线,现在怎么变成折线了呢?
同学们想一想,我们是针对10个客户去进行的刻画,如果将这个范围扩大到真实的金融大数据,几十万、几百万条,它是什么线,曲线对不对?好。那么接下来呀,我们就进行金融场景的升级了,我们现在又有一个新的模型,贝叶斯信的网络模型,它呀也产生了10个客户的预测结果,后面呢,也是我们的预测概率,那中间呢,是真实情况。那么,现在呢,就需要进入到我们的小组PK环节了。同学们需要组队啊,去刻画这个模型B的LC曲线这样。
前后更重要的是什么?你要去对比刚才的模型A和现在的模型B,哪一个综合评价的性能更优呢?小组批阅环节时间是10分钟。
同学们是不是都已经完成了?而且各个小组呢都按时提交了这样的一个报告。我们就选取第三小组的报告来看一下。那么,大家还记得如果要去刻画一个模型呢?LC曲线第一步是干什么呀?
对排序嘛。
我们看一下第三小组。果然是对我们的10个客户的模型B的预测风险的概率去进行了排序。然后呢,针对每一个客户,我们都可以依照这个风险概率的预值量去计算TPPT等。然后,就可以计算出真正率和假正率咯。然后,10个客户的真正率和假正率,我们。都计算出来了,接下来我们就可以在坐标轴上进行刻画了。我们来看一下第三小组是如何来进行刻画的。这条蓝色的线呀,就是我们刚才第三小组所刻画的。而且,第三小组做了一件非常有意义的事情,他把模型A的LC曲线这条紫色的线呢,也留在了这个坐标轴上。
为什么需要留在坐标轴上呀?或者需要回答。哪个模型的风险理解能力更强呀?怎么去判断,还记得吗?我们刚才讲离哪一个点更近,模型的性能更优。对了,越接近于左上角,模型的性能是更优的。这个模型的性能是最优的呢。是不是很明显,模型A我们解答了这个困惑?但是呢,现实中的场景真的有如此美妙吗?
这样的两个模型。
M1和M2。哪一个模型的预警能力更强呢?很难说。因为他们是交叉的。没有哪一个完全在哪一个模型之上,越跟越接近于左上角对吗。
那怎么办?
同学开始思考一下。集中你们的智慧。唐军说了。既然不能肉眼去判断哪一个更接近于左上角,我们能不能有量化的指标呢?去计算一下LC曲线,它怎么样能量化比较大小呢?没有这样的指标。答案是有。
是什么呢?
就是我们的A。Nuc, 什么是a UC啊?它就是LC曲线与坐标轴围成的面积。那我们是不是就可以判断了?越接近于左上角,就表示面积越大呗?那谁的面积越大,谁就更优秀。那a UC是如何计算的呢?这是我们下节课需要去讨论的问题。那回到我们的。本节课的内容呀,我们主要是关注银行信贷风险预警的金融场景,然后。呢,我们需要去做金融分类算法的性能评估。在这样的一个方案当中啊,我们首先基于混淆矩阵去产生了精度、召回率和F度量三个不一样的指标,解决了金融场景下准确率的缺陷问题。
然后,由于不同的金融场景需要我们有不同的预值下综合的评价,因此我。我需要去构建行曲线。那么综合这两种方式呢,我们进行了实战,去真实的体验了一把在信贷风险预警的场景下,如何去评价金融分类算法的性能,那么我们自然而然的就实现了金融场景和大数据的有机结合。这是本节课的课后作业,第一个呢是需要计算混淆矩阵下模型的准确率、精度和召回率以及F度量。第二个作业呢,是希望根据模型的表现情况去计算模型A的ROC曲线。
希望同学们按时在与课堂平台进行提交,如果有问题呢,及时在课堂群进行反馈和交流。好,本节课的内容到此结束,谢谢大家。