精华内容
下载资源
问答
  • 信贷客户评分卡
    2019-06-13 17:02:10

    先上一张评分卡

    一、评分卡逻辑

    信贷业务评估的是客户的客户违约率(Percent of Default)即PD,是[0,1]的概率,比如2%即100个客户中有2个违约,简称为p。

    评分卡中不直接用客户违约率p,而是用违约概率与正常概率的比值,称为Odds,即

    O d d s = p 1 − p Odds=\frac{p}{1-p} Odds=1pp p = O d d s 1 + O d d s p=\frac{Odds}{1+Odds} p=1+OddsOdds

    评分卡的背后逻辑是Odds的变动与评分变动的映射(把Odds映射为评分),分值是根据Odds的前提条件算出来的,不是人工取的。以单个客户在整张评分卡的得分的变动(比如评分从50分上升到70分)来反映Odds的变动(比如Odds从5%下降至1.25%),以及背后相对应的客户违约率PD的变动(比如从4.8%下降到1.2%)。违约率PD不直观、业务看起来不方便、不便计算,而评分就很直观、便于计算。如图所示。

    image-20190523140453482

    因此评分卡的生成过程,就是Odds变动映射成评分变动的过程。

    二、评分映射公式

    Odds映射为评分的公式为:

    S c o r e = A − B l o g ( p 1 − p ) Score=A-Blog(\frac{p}{1-p}) Score=ABlog(1pp)

    <1> 预设条件

    要算出系数A、B的话,需要从业务角度先预设两个前提条件:

    1. 在某个特定的比率 θ 0 \theta_0 θ0设定特定的预期分值 P 0 P_0 P0
    2. 指定比率翻番时分数的变动值(PDO)

    解释:

    1. 比如根据业务经验,消费金融信贷的客户违约率4.8%算正常( θ 0 = O d d s = 5 % ) ) 。 预 设 评 分 卡 的 分 值 为 0 − 100 分 , 那 取 预 期 分 值 \theta_0=Odds=5\%))。预设评分卡的分值为0-100分,那取预期分值 θ0=Odds=5%)0100P_0)为50分,并指定当Odds按双倍上下浮动时(比如2.5%或10%),分值则对应上下变动10分(比如60分或40分)。
    2. 这里 θ 0 \theta_0 θ0=5%是根据业务经验来的,没有数学依据;
    3. 0-100分是根据做评分卡的需要来的,没有数学依据。要是想做成600-1000分的评分卡也可以,修改对应的 P 0 P_0 P0和PDO就行;
    4. P 0 P_0 P0=50分是根据0-100分来的,也可以取45分或73分,不重要。重要的是随着Odds翻番变动时,分数也随之变动的联动变化体系(你翻番我就变PDO=10分)

    <2> 求解A、B

    设定好 θ 0 \theta_0 θ0 P 0 P_0 P0、PDO后,联动变化为: O d d s ( θ 0 ) Odds(\theta_0) Odds(θ0)对应的分值为 P 0 P_0 P0,且翻番的 O d d s ( 2 θ 0 ) Odds(2\theta_0) Odds(2θ0)对应的分值为 P 0 P_0 P0+PDO。则有以下两式:

    P 0 = A − B l o g ( θ 0 ) P_0=A-Blog(\theta_0) P0=ABlog(θ0)

    P 0 + P D O = A − B l o g ( 2 θ 0 ) P_0+PDO=A-Blog(2\theta_0) P0+PDO=ABlog(2θ0)

    解出A、B为:

    B = P D O l o g ( 2 ) B=\frac{PDO}{log(2)} B=log(2)PDO

    A = P 0 + B l o g ( θ 0 ) A=P_0+Blog(\theta_0) A=P0+Blog(θ0)

    按上面的解释举个例子:

    θ 0 \theta_0 θ0 P 0 P_0 P0、PDO为5%、50分、10分,则

    B = 10 l n ( 2 ) = 14.43 B=\frac{10}{ln(2)}=14.43 B=ln(2)10=14.43

    A = 50 + 14.43 ∗ l n ( 0.05 ) = 6.78 A=50+14.43*ln(0.05)=6.78 A=50+14.43ln(0.05)=6.78

    S c o r e = 6.78 − 14.43 l o g ( p 1 − p ) Score=6.78-14.43log(\frac{p}{1-p}) Score=6.7814.43log(1pp)

    <3> 完整的对应关系表

    按照公式,可以把所有 O d d s ( p 1 − p ) Odds(\frac{p}{1-p}) Odds(1pp)和客户评分、客户违约概率(PD)的对应关系算出来

    image-20190523142625084

    该关系对应表应该算信用评分卡的核心思想了,评分是外层表现,客户违约率是内层核心,Odds是中间层转换计算

    三、Odds映射X变量

    那问题来了,现在能算Score了,但输入是Odds。但数据的输入是特征变量 [ x 1 , x 2 , x 3 , ⋯ &ThinSpace; , x n ] [x_1,x_2,x_3,\cdots,x_n] [x1,x2,x3,,xn],这里怎么对应呢?这就要说到逻辑回归本身了,先放结论:

    l o g ( p 1 − p ) = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n log(\frac{p}{1-p})=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n log(1pp)=β0+β1x1+β2x2++βnxn

    怎么来的,以下详细讲。

    <1> Sigmoid

    逻辑回归来源于线性回归(二维空间中就是一条直线拟合所有样本点),虽然线性回归是回归算法,逻辑回归是分类算法,但从算法表达式上,逻辑回归就是在线性回归算法外面套了一层壳。

    线性回归:
    f ( x ) = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n f(x)=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n f(x)=β0+β1x1+β2x2++βnxn

    image-20190522163109474

    逻辑回归:
    f ( x ) = 1 1 + e − ( β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n ) f(x)=\frac{1}{1+e^{-(\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n)}} f(x)=1+e(β0+β1x1+β2x2++βnxn)1
    image-20190522162447433

    可以看到,从表达式上看,逻辑回归只是在线性回归的表达式外面套了一层 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1的壳。为什么要套这层壳,因为线性回归的值域为实数集R,但逻辑回归是二分类算法,需要输出的是类别1和类别2的概率,而概率是个[0, 1]之间的数。因此需要将线性回归的输出实数变成[0, 1]之间的概率,而能满足输入是实数而输出是[0, 1]的,就是Sigmoid函数,它的图形是个类S(见上面逻辑回归图)的限定在[0, 1]之间的函数。因此将Sigmoid函数套在线性回归外面,构成逻辑回归,拥有处理非线性的能力,可以做分类。

    <2> 变换公式形式

    那么在信贷评分卡上, f ( x ) f(x) f(x)即为要预测的客户违约率(PD) p p p,另将 β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n \beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n β0+β1x1+β2x2++βnxn简写为向量形式 β T x \beta^Tx βTx,即:

    p = 1 1 + e − β T x p=\frac{1}{1+e^{-\beta^Tx}} p=1+eβTx1

    经过变换,可得 l n ( p 1 − p ) = β T x ln(\frac{p}{1-p})=\beta^Tx ln(1pp)=βTx

    四、X变量细分到分组

    好,回到主线, l o g ( p 1 − p ) = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n log(\frac{p}{1-p})=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n log(1pp)=β0+β1x1+β2x2++βnxn,将score公式中的输入p变成输入特征变量X。到这里按理就可以结束了,有X就可以产出客户的Score,即:

    S c o r e = A − B ( β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n ) Score=A-B(\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n) Score=AB(β0+β1x1+β2x2++βnxn)

    但我们要做的是分组评分卡,X是要对应到每个分组,得到各变量分组的评分然后相加得到客户总评分的,那就还需要将X打散到各分类(用离散型数据入逻辑回归模型)。因此这里的输入X就不能是原始变量,而是原始变量分箱并算WOE后的woe值(类似离散变量中各类别的数值化),即:

    S c o r e = A − B [ β 0 + β 1 ( δ 11 w 11 + δ 12 w 12 + δ 13 w 13 ) + β 2 ( δ 21 w 21 + δ 22 w 22 + δ 23 w 23 + δ 24 w 24 ) + ⋯ + β n ( δ n 1 w n 1 + δ n 2 w n 2 ) ] Score=A-B[\beta_0+\beta_1(\delta_{11}w_{11}+\delta_{12}w_{12}+\delta_{13}w_{13})+\beta_2(\delta_{21}w_{21}+\delta_{22}w_{22}+\delta_{23}w_{23}+\delta_{24}w_{24})+\cdots+\beta_n(\delta_{n1}w_{n1}+\delta_{n2}w_{n2})] Score=AB[β0+β1(δ11w11+δ12w12+δ13w13)+β2(δ21w21+δ22w22+δ23w23+δ24w24)++βn(δn1wn1+δn2wn2)]

    1. 假设类别型变量 x 1 x_1 x1 x 2 x_2 x2 x n x_n xn分别有3、4、2个分类(数值型变量先分箱成类别型变量)
    2. δ i j \delta_{ij} δij代表第i个变量的第j个分类,客户数据参与评分时,某个变量x只会有1个数,只会对应一个分类。比如,变量 x 1 x_1 x1的取值是第2个分类的话,那 δ 12 \delta_{12} δ12为1,则第二个分类的woe值 w 12 w_{12} w12生效, x 1 x_1 x1的其他两个 δ \delta δ则为0,对应的其他两个分类的woe值无效不参与计算

    五、生成评分卡

    将上面的公式变下形式,变成最终可以组成评分卡的样式,即:
    S c o r e = A − B { β 0 + ( β 1 w 11 ) δ 11 + ( β 1 w 12 ) δ 12 + ( β 1 w 13 ) δ 13 + ( β 2 w 21 ) δ 21 + ( β 2 w 22 ) δ 22 + ( β 2 w 23 ) δ 23 + ( β 2 w 24 ) δ 24 + ⋯ + ( β n w n 1 ) δ n 1 + ( β n w n 2 ) δ n 2 } \begin{aligned} Score=A-B\{\beta_0 &amp; +(\beta_1w_{11})\delta_{11}+(\beta_1w_{12})\delta_{12}+(\beta_1w_{13})\delta_{13} \\ &amp; +(\beta_2w_{21})\delta_{21}+(\beta_2w_{22})\delta_{22}+(\beta_2w_{23})\delta_{23}+(\beta_2w_{24})\delta_{24} \\ &amp; +\cdots \\ &amp; +(\beta_nw_{n1})\delta_{n1}+(\beta_nw_{n2})\delta_{n2}\} \end{aligned} Score=AB{β0+(β1w11)δ11+(β1w12)δ12+(β1w13)δ13+(β2w21)δ21+(β2w22)δ22+(β2w23)δ23+(β2w24)δ24++(βnwn1)δn1+(βnwn2)δn2}

    S c o r e = ( A − B β 0 ) − ( B β 1 w 11 ) δ 11 − ( B β 1 w 12 ) δ 12 − ( B β 1 w 13 ) δ 13 − ( B β 1 w 14 ) δ 14 − ⋯ − ( B β n w n 1 ) δ n 1 − ( B β n w n 2 ) δ n 2 \begin{aligned} Score=(A-B\beta_0) &amp; - (B\beta_1w_{11})\delta_{11}-(B\beta_1w_{12})\delta_{12}-(B\beta_1w_{13})\delta_{13}-(B\beta_1w_{14})\delta_{14} \\ &amp; -\cdots-(B\beta_nw_{n1})\delta_{n1}-(B\beta_nw_{n2})\delta_{n2} \end{aligned} Score=(ABβ0)(Bβ1w11)δ11(Bβ1w12)δ12(Bβ1w13)δ13(Bβ1w14)δ14(Bβnwn1)δn1(Bβnwn2)δn2

    image-20190523150029384

    A、B已经算出, β \beta β是逻辑回归模型的输出系数, β 0 \beta_0 β0是逻辑回归模型的输出截距项,w是分箱后的woe值

    嗯,至此评分卡就可以生成了。

    更多相关内容
  • 金融风控实战——信贷评分卡

    千次阅读 2022-02-05 12:10:47
    信贷评分卡介绍 风控系统业务流程   在一个完整的风控系统中,信贷准入模型在整个体系的前半部分,下面我们了解一下一个完整的风控系统是如何构建的 获客阶段   基本的,对于一个信贷产品来说,首先要有目标客户...

    信贷评分卡介绍

    风控系统业务流程

      在一个完整的风控系统中,信贷准入模型在整个体系的前半部分,下面我们了解一下一个完整的风控系统是如何构建的

    获客阶段

      基本的,对于一个信贷产品来说,首先要有目标客户愿意去使用才有构建信贷准入模型的意义,对于小型信贷公司来说,如果本身用户的数量很少,人工信审和评估绰绰有余,则没有太大的必要去使用人工智能技术来处理信贷审批的问题,当用户的数量到达了较大量级之后才有意义,对于银行来说,用户不是问题,银行本身用户的量级一般都很大并且质量整体较好,对于互联网巨头来说,例如阿里、京东、字节等,本身的流量用户数量非常大,这些用户客群是天然的信贷产品的目标用户
      信贷产品的获客方式有很多,例如企业内积累的一些其它业务领域的用户、渠道的引流(短信、广告、人工电话推销等),大家平常在日常生活中可能经常会收到XXX机构的电话,问你要不要借钱,或者是短信:“恭喜您获得XXX机构的XXXXXX元额度,请点击XXXX网址下载对应app进行借款,利息优惠放款快哦”,etc,关于用户的获客,很多机构使用的获客方式都比较偏向纯营销一些,当然也有一些机构会使用精准营销的方式来提高营销的成功率,基于算法的精准营销算是风控领域的“推荐”项目,和传统的电商推荐存在很多相似之处但也存在较大的区别,本课程并不会在推荐相关项目上进行详细描述。在这里插入图片描述

    初期的冷启动问题

      当获客的用户达到一定数量之后,并且有了一定的深度和厚度的用户数据积累,我们才可以开始构建一个风控体系,这个时候问题来了,初期没有用户的信贷资料的情况下我们如何防范风险?此时就涉及到了信贷准入模型的冷启动问题,即初期只有少量甚至没有用户数据(例如没有用户的标签因为用户此时压根就还没开始借款),此时一般来说机构往往依赖于(下面按照重要程度依次展开)
      1.第三方数据:第三方机构数据可以说是机构非常重要的信息来源了,过去,互联网信息获取的方式处于较为灰色的地方,小贷公司可以非常自由的获取用户的基本身份信息,家庭住址,通讯录等隐私信息,这也导致了非常大的公民信息泄露的隐患,这两年国家对于互联网信息获取的手段管制越来越严格,目前许多早期重要的用户个人信息已经不允许随意获取了,因此信贷机构逐渐非常依赖于第三方数据。
      目前在市面上有许多第三方数据商,这类数据商往往具有一些较为特殊的背景,例如百信金融,数美科技,永安科技等等,这类数据商往往和社保局,公安,运营商等具有一定的联系,因此可以从公共服务部门获取大量原始数据,典型的,例如用户的多头借贷数据(即用户在几家机构贷款),征信黑名单,设备风险评级等等,这类数据对于初期的冷启动问题都具有极其重要的作用;
      2.风控策略:和风控算法工程师一样,风控策略工程师也是整个风控体系中非常重要的一环,可以说,在数据的质量得到保证之前,风控体系的主力就是风控策略工程师,并且在后期也具有很重要的协调作用,主要原因在于模型是死的,而人是活的;

    人工信审

      一般来说,对银行等这类大型的机构都有专门的信审部门,当然,有的信贷公司可能信审只是走个形式甚至完全依赖于一些自动化技术,例如用户申请贷款的时候常常需要用户填写身份证,地址,进行人脸识别的活体验证等等,这些过程通过计算机视觉,自然语言处理等技术已经有非常成熟的解决方案了。
      信审部门的主要工作是对用户的基本信息、资产信息等进行审查,其实大家在申请信贷产品的时候一般都会有一定的夸大收入、资产等自身资质水平的倾向,所以很多用户的申请信息与相关数据等都存在一定的水分,需要通过信审部门进行调查与证实,对于资料造假或者资料不足的用户直接进行拒绝;

    风控引擎

      关于风控引擎,很多机构的叫法和用法都不尽相同,但是可以确定地一点是风控引擎的核心其实就是大量的if else规则,在风控领域,可以说万物皆规则,无论是根据某些征信黑名单直接对黑名单用户进行拒绝这样简单的规则,还是模型输出的用户的信用评分,确定某个阈值,接受高于阈值的用户的申请,拒绝低于阈值的用户的申请,其本质上都是规则。
      风控引擎是整个风控体系的主要组成部分,并且往往管理着不止一个的信贷产品,对于不同类型的产品,用户的规则存在区别,例如针对于白领用户的“白领贷”类型产品,会内置一些基本规则对所有申请的用户进行查询和筛选,例如年龄太大与太小,收入太低,没有固定职业或从事高风险职业等用户,在用户数据进入信贷准入模型之前,全量申请用户都会先经过风控引擎的“洗礼”之后然后过渡到模型阶段进行用户信用分的评估;
      这里需要额外去详细解释的,就是关于规则部分,整体来说,常见的规则体系可以划分为下面几种:
      1.前置规则:这类规则往往是定死的一些基本规则,典型的年龄限制,超过六十岁或小于十八岁的用户一般是不受理其贷款申请的;
      2.风控规则:这类规则常常是由风控策略工程师来帮助制定的,我们前面提到的很多重要的第三方数据常常会被直接当作风控规则来使用,例如腾讯的设备评分,蚂蚁的高危支付号关联手机号等等;
      3.模型规则:需要注意的是,在整个风控体系中,模型并不一定是占据主导,很多时候,算法工程师所担任的工作的最终输出可以概括为用户的评分体系,例如从用户的行为信息,用户的消费序列等等,相对而言较为弱的弱特征中挖掘出一定有价值的结果,并以评分的形式输出,作为风控规则之一纳入整个风控体系中。

    反欺诈

      值得一提的是,反欺诈规则常见的方式也有两种,一种是常规的基于某些第三方数据或自有的重要数据直接构建一些硬规则,例如对于平台而言,逾期次数超过三次则用户将被拉入黑名单不再对其进行贷款业务受理,或是命中了多条高风险的评分,例如同时命中腾讯和阿里的高风险手机号,则申请直接拒绝,另外一种形式就是反欺诈评分卡了,其实本质上也是用常见的逻辑回归或xgb等极其学习算法,使用欺诈用户标签构建一个有监督模型,欺诈标签一般来自于第三方数据或自身业务推进过程中的积累。
      反欺诈评分卡或反欺诈规则分析,反欺诈在评分卡中的应用仅仅是反欺诈领域的一个小分支,反欺诈本身所涵盖的知识体系是非常丰富而复杂的,相对于成熟稳定,套路固定的评分卡构建来说,反欺诈的难度往往要高几个级别,尤其是电商领域的反欺诈问题,根据不同的场景,或是同一个场景下的欺诈手法,使用的套路和模型常常是大相径庭的;
      风控反欺诈,尤其是互联网反欺诈业务也是目前的一个比较常见的岗位,相对于纯粹的评分卡性质的风控算法来说,

    信贷评分卡

    申请评分卡、A卡

      这一部分就是该风控算法工程师大展身手的时候了,我们通过一些机器学习算法来构建一个健壮而泛化性能良好的模型,根据存量用户的数据来对新用户的信用进行评分,然后根据某个阈值来进行截断,高于阈值的用户进行放款,低于阈值的用户拒绝放款,并且,用户的信用评分作为重要的参考指标参与到后续的用户的额度、期限、利率的定价上。关于用户的额度、利率、期限等,其中常见的消费分期和现金分期产品的期限一般比较常见的有6和12个月。除此之外也有少部分3个月的极短期信贷产品和2~3年的较长期的信贷产品。需要注意,我们平常所说的车贷,房贷等大型贷款项目一般不属于本课程主要涉及的部分,因为这类贷款往往是需要一定的抵押物,相对而言其用户群体的质量较高,相对来说并没有特别大的建模需求,因此市面上往往也比较少见这类直接对标车贷和房贷的风控岗位。

    行为评分卡、B卡

      行为评分卡可以看作申请评分卡在时间上的扩展,相对于A卡的数据来说,B卡的特征更加丰富,因为我们拥有了用户在拿到贷款之后的还款行为数据等一系列时序类数据,当然,我们前面提到过,并不是所有产品都有构建B卡的数据基础与必要,例如7天为周期的现金分期产品,用户贷后的数据往往是稀少的也难以反映用户的某种潜在的不良行为模式。
      需要注意的是,行为评分卡一般是基于存量客户上的,即“老客”,并且往往需要保证有较长周期的数据才能较好的保障B卡的模型效果,和A卡的作用一样,行为评分卡也可以作为用户放款(后续)的依据,并且因为拥有了更多维度的特征,行为评分卡的泛化性能往往相对于申请评分卡更高,我们可以根据行为评分卡的结果来作为参考,决定是否对老客户的新的申请予以批准,并且在能够动态的调整用户的额度和利率,例如某个老客在还款期间经常出现拖欠的问题,则下次老客再来申请新的信贷产品则降低额度,提高利率或直接拒绝;

    催收评分卡、C卡

      相对A和B卡而言,C卡的出场率较低,很多公司对C卡也没有那么重视,造成这种现象的主要原因有:
      1.贷前风控是整个风控的重中之重,贷前做好了,贷中和贷后就相对容易;
      2.人的因素对贷后催收的效果影响很大,且很多公司在用户发生M1(银行一般是M2或M3)之后都会进行委外处理
      我们前面说过,很多公司往往在催收阶段往往使用一些简单的催收策略比如无脑给所有逾期用户打电话消耗大量的人力和成本,或者直接委外处理,但是伴随着目前整个信贷行业的发展趋势,委外被慢慢的淘汰,各家公司开始重视自己的贷后催收团队,为了提高利润,贷后催收也越来越会向精细化的方法发展,模型+策略的优化则变得越来越重要。
      催收评分卡和A、B卡不一样,催收评分卡往往包括了多个模型,其中有缓催模型、贷后N天响应模型、失联修复模型等等

    反欺诈评分卡、F卡

      反欺诈评分卡和我们常听到的互联网风控中的反欺诈的概念略微不同,反欺诈评分卡的做法其实本质仍旧是做有监督模型,其作用往往是作为反欺诈规则的补充,输出反欺诈分,用于评估用户是欺诈用户的可能性是高or低

    传统信贷评分卡和大数据信用评分模型

      传统信用评分卡基本是逻辑回归一把梭,逻辑回归因为其模型的轻量、易于部署、可解释性强大、方便加入人工先验知识,至今仍旧是很多银行和金融机构所使用的主要模型,基本思想就是将好坏用户的区分定义为传统的机器学习中的线性的二分类问题,使用借款人基本信息、资产信息、征信报告等数据,预测借款人未来发生违约的概率,并根据概率对用户的信用进行评分,比较常见的例如蚂蚁的芝麻信用分、京东的小白信用分等形式都是很典型的信用评分体系(当然蚂蚁和京东的评分卡不像银行那么简单)

    大数据信用评分模型
      传统信用评分模型使用的特征往往是严格限制数量的,一般主要包括了用户的基本属性、金融属性、征信等强信贷类型的属性特征,传统的金融机构偏向于简约型模型,即使用简单的线性模型,并且特征的数量控制在一个较小的范围内,这样整个模型的可解释性强,可控,稳定性高,便于人工进行分析和控制,然而这种做法是对大量弱特征的浪费,并对模型的精度和泛化性能有较大程度的削弱。
      大数据信用评估模型的基本思路是一切数据都和信用有关,在能够获取的数据中尽可能的挖掘信用信息。
      通过大数据采集技术,挖掘一个借款人的信用变得更加多元化,比如一个借款人缺乏银行信用卡的数据,但从借款人的航旅出行数据中挖掘出具备较好的信用资质,同样可以完成借款人的信用贷款。
      通过多源化的信息采集,一方面传承了传统征信体系的金融决策变量,重视深度挖掘授信对象的信贷历史,另一方面能够将影响用户信贷水平的其他因素也考虑进去,如社交网络数据、用户地址文本信息等,从而实现深度和广度的高度融合。
      以网络数据为例,如设备是否苹果,用户申请贷款时的gps信息,用户申请贷款的总时间等,这些数据一定程度上可以反应用户的某些较为隐蔽的信息,有利于评估用户当下的信贷风险。
      大数据信用评估模型通过融合多源信息,采用先进的人工智能技术进行大数据挖掘。
      这一点对于大型互联网金来说尤其突出,例如支付宝,背靠阿里巴巴,往往拥有海量的电商数据,用户的商品购买记录,消费水平等对于用户的信用评估具有重要的作用,除此之外,蚂蚁自身也存在许多的理财产品例如典型的余额宝,因此,蚂蚁自身的数据是非常多维而丰富的,而这类数据和银行所拥有的信贷性质的特征不同,互联网数据往往是海量而弱关联的特征,这个时候就需要我们使用广泛而前沿的技术来帮助挖掘出弱属性特征中的magic。

    信贷准入模型(A卡)的构建全流程

    在这里插入图片描述
      一般来说,前期工作都完成妥当之后,申请用户会被削减一部分,剩余的通过前置的各类规则之后的用户会进入我们的建模过程,成为我们的样本,在实际应用的过程中,我们拿到的原始数据是不直接包含标签信息的,并且一般情况下也不太可能是直接的一张大宽表,而是不同的数据表,这些数据表的重要性各不相同,从用户的注册到登录,到浏览,填写资料到最终的申请等,再整个用户的生命周期中,不同周期都对应着大量的表格,除此之外,还有第三方数据源,前置规则的预警或拦截日志等等,并且最为重要的是,初始的A卡的标签需要我们根据用户的还款情况记录来进行定义。
      一般来说,我们要先根据用户的还款情况,借助vintage分析和滚动率分析来对用户的好坏以及表现期做出明确的定义

    观察时点的确定
      观察期与表现期:
      观察期:在观察期,主要抽取用户历史的数据作为特征,用于后续建模
      表现期:用来定义用户的标签,作为模型预测的目标
    在这里插入图片描述
      观察点大部分时候是根据数据的完整情况+拍脑袋得到的,为了排除观察点选择时的随机影响,一般会多次选择不同的观察点然后重复后续的建模步骤,例如我们有一段跨度为15个月的数据,一开始需要根据不同时间点或时间段的用户数量,历史数据的厚度和广度等确定一个观察时间点
      一这个时候我们需要先使用滚动率分析确定用户的好坏定义,然后使用vintage分析来确定用户的表现期
      补充:之所以选择观察时点是因为我们需要对训练,验证和测试集进行划分,才能在离线阶段评估模型的泛化性能,一般来说,我们线上的预测过程是使用历史的数据建模预测未来数据,具有时间上的先后关系,所以我们需要保证模型构建阶段也满足和线上的预测过程一致的时间顺序,即我们需要使用过去的数据来预测未来,而不能简单的对全部数据继续宁交叉验证;
      之所以需要选择观察期(观察期指观察点往过去后推的一段时间,一般比较常见的是半年到一年的长度,太短则数据太少,太长则过于久远的数据的分布和当前存在较大差异)和表现期,表现期的设定主要是考虑到用户的风险需要一定的时间才能表现出来,常见的情况是用户可能头一两个月正常还款,后面就开始赖账了,因此我们需要尽量给用户一个宽松的表现时间,将其逾期还款的无赖本质暴露出来。

    滚动率分析
      在信用评分领域,一般会有一个叫客户还款周期表的数据表来刻画客户的还款情况,逾期时间越长,客户风险越高。但是,并不是客户一旦有逾期行为就定义为’坏客户‘,相反,逾期一定周期内的客户的还款概率也是较高的,是有收益的,是可以接受的。因此,问题转化为如何找到逾期周期与收益的平衡点,逾期超过多少天定义为’坏用户‘是合理的呢?这就需要使用到滚动率分析。
      滚动率:一个时间段过渡到另一个时间段内的所有用户逾期情况的比率变化。在信贷交易过程中,实际上是用户的还款状态由上个时间段向下个时间段滚动的比率计算。
      注意,前面说过,用户的实际还款情况一般会记录在一张单独的还款记录表上存放在数据库中,我们要先根据用户的逾期情况对用户进行逾期周期标注,这里涉及到了逾期期数的概念,逾期期数M,指实际还款日与应还款日之间的逾期天数,并按区间划分为不同的逾期状态。M取自Month on Book的第一个单词。基本上大部分机构的逾期标准定义如下:
      M0:当前未逾期(或用C表示,取自Current)
      M1: 逾期1-30日
      M2:逾期31-60日
      M3:逾期61-90日
      M4:逾期91-120日
      M5:逾期121-150日
      M6:逾期151-180日
      M7:逾期180日以上。
      此时也被称为呆账(Bad Debts),会予以注销账户(write-off)

    例如某一个用户的逾期情况可能是这样的:在这里插入图片描述  上述为一个还款周期为14个月的信贷产品,即该信贷产品的周期为14个月,需要注意,信贷产品的周期并不一定以一个完整的自然年为定义,例如上述14期的信贷产品我们就无法以年为单位,并且不同用户发放贷款的月份是不同的,因此实际上我们所说的用户的还款周期实际上是按照用户被发放贷款到产品周期结束来定义的。
      假设一个客户在11月还款日的时候没有及时还上钱,那么他的逾期期数就记为1,如果他在下个月仍然没能在还款日时还上这笔款,那么他的逾期期数就记为2,期数会持续累加,直到他把这笔款还上。
      所以上表中的这个客户,他在观察期里11月有过1次逾期,12月还清欠款,但是在次年的3-5月连续逾期,也就是说该客户在一个完整的还款周期里的逾期记录应该是3期(一般我们是取用户的最长的逾期记录作为用户的逾期情况的评估)。同理,在后1年里面最坏的逾期记录是2期。
      注意这里的前1年对应上面的观察期,后1年对应上面的表现期,因此上图的观察时点是前一年的8~9月份之间的某一天,往前推14个月为观察期,往后推12个月为表现期。
      那么当我们有n个用户的时候,就有n个上述的记录,然后:
      1、统计客户在观察期(如前一年)的最长逾期期数,按最坏逾期状态将用户分为几个层次,如M0、M1、M2、M3、M4.。。。。
      2、以观察点为起始时间,统计客户在表现期(如后一年)的最长逾期期数,按最坏逾期状态将用户分为几个层次,如M0、M1、M2、M3、M4.。。。。。
      3、如果某个用户观察期最坏逾期状态为m1,表现期最坏逾期状态为m2,则滚动率表格中,(m1,m2)的计数加1,依次类推;
      4、统计客户占比;
      5、为了排除观察点选择时的随机影响,一般会选择多个观察点,然后重复上述步骤得到最终的较为客观和稳定的用户的好坏定义

    滚动率分析表如下图在这里插入图片描述
      得到了滚动率分析表之后,就基本完成了滚动率分析了,可以看到,滚动率分析本质上就是分析观察期和表现期,用户的最坏逾期状态的迁移情况。可以看到,上表中,(m0.m0)对应的90.81%表示的是观察期未逾期的用户在表现期也没有逾期的占比,例如观察期未逾期用户为100人,表现期这100个人中仅仅10个人发生逾期,则(m0,m0)对应的值为1-10/100=0.9,可以看到,上图中,观察期逾期状态为m7的用户在表现期仍旧有93.07%的用户未改变逾期状态,即这批人
      为了更好的理解滚动率分析的过程,这里放一下大佬求是汪的知乎图
    在这里插入图片描述
    从这张图中,我们就可以很清楚的明白滚动率分析的具体过程了:
      1.从老客中选择10000个用户进行计算;
      2.统计观察期所有用户的逾期状态并进行统计,可以看到,观察期间,有9000个用户未逾期,500个用户发生了m1的逾期,300个用户发生了m2的逾期,150个用户发生了m3的逾期,50个用户发生了m4的逾期;
      3.统计表现期的用户的逾期情况,可以看到,观察期未逾期的用户中,有8640个用户继续保持未逾期的状态,270个用户逾期1个月,90个用户逾期两个月;依次类推
      4.可以看到,在观察期逾期m4+的用户中有40个仍旧处于m4+的逾期状态,可以看到这批用户基本上大部分无法转化为未逾期或逾期较轻的用户,因此我们可以初步认为,m4+就是一个坏客户的定义,因为m4+逾期的用户很难变成正常用户而是继续保持老赖状态

    vintage分析
      vintage分析是用来确定成熟期的,前面提到过,用户的风险需要一定的时间来暴露,这个时间段就是成熟期,注意,成熟期是指观察时点之后我们要取得表现期的时间的长度,这里比较容易和我们上面谈到的表现期混淆,一个简单的例子帮助了解,假设我们获取了某个观察时点,这个观察时点前,数据有记录的时刻开始到观察时点的时间我们可以称之为“历史数据时间间隔”,但是一般来说我们不可能取所有的历史数据,只会取最近一段时间的数据作为观察期,比如我们不太可能取过去五年的所有数据,因为越早的数据分布情况和观察时点的数据分布情况差异往往越大,因此,假设数据日期有5年,我们可能只会取最近一年甚至是最近半年的数据作为观察期,同理,观察时点到当前时间之间的数据记录我们可以称之为“当前日期时间间隔”,当然,我们也不一定会使用到当前的所有最新数据来建模,因为有的用户可能距离当前时点,上个月甚至上周才放款,这类用户压根就没什么充足的数据,必须驱逐在外,所以假设观察时间点到当前时间点时间间隔为6个月,则可能我们会取4~5个月作为表现期长度,而成熟期的长度必然是小于等于表现期长度的;
      vintage涉及到账龄MOB的概念:
      账龄(Month of Book,MOB)、
      指资产放款月份。类似于婴孩一出生就有了年龄,一旦申贷订单被放款,也便拥有了账龄和生命周期。
      MOB0:放款日至当月月底
      MOB1:放款后第二个完整的月份
      MOB2:放款后第三个完整的月份
       。。。依此类推
    在这里插入图片描述
      一图胜千言,可以看到vintage分析一般是按照月份进行统计的,需要注意,我们是先做滚动率分析确定了好坏客户的定义之后,然后再做vintage分析确定用户的成熟期,以上图为例,滚动率分析确定m4+的用户为坏客户,因此,mob的1~3个月的占比均为0,因为此时用户还没有触发逾期定义,到达第四个月之后,可以发现,所有放款用户中的坏客户比例开始出现,我们以2018年01月为例,第四个月坏客户占比0.93%,第五个月1.52%,第6个月2.05%。。。第十二个月3.85%,可以看到,随着时间的延长,整个用户群体的风险暴露的越来越彻底,从最初的0.93%到最终的3.85%左右,并且坏用户的占比不再发生显著的变化,
      我们需要一个良好的成熟期长度来让用户的风险彻底暴露,但是成熟期又不能太长,比如你成熟期定义个12个月,则数据的分布在太长的周期下又会发生变化,并且成熟期太长则观察期相应会缩短,建模样本变少对模型不利,那么这里的成熟期如何定义,很简单,根据上表和上图,可以看到,从9月份开始,9~12月,不同月份(2018年1、2、3、4.。。。)下观测的用户的整体的坏客户比例就趋于稳定了:
    在这里插入图片描述
      可以看到,坏样本占比在一个非常小的区间内波动,此时我们可以认为坏客户比例“收敛”,用户已经充分暴露风险了,那么我们就可以选择9个月作为我们的成熟期长度。
      那么当我们确定了成熟期长度之后要做什么呢,很简单,正式构建建模用的样本,具体的过程是这样的:
      1.2018年1月份放款用户往后推9个月,凡是在这9个月之内最坏逾期情况为m4+的用户我们打上标签1,其它用户则打上标签0;
      2.2018年2月份放款用户往后推9个月,凡是在这9个月之内最坏逾期情况为m4+的用户我们打上标签1,其它用户则打上标签0;
      3.依此类推。。。
      最后我们可以构建出许多好客户和坏客户的样本

    pay attention
      在实际的应用过程中,我们并不一定教科书式的完全按照上述的方法来,而是业务根据实际的产品性质,例如偏保守还是偏盈利,来对用户的好坏定义进行选择,比如说对于那种短周期一个月的现金分期产品,一般就直接拍脑袋,逾期就算坏客户,所以具体情况还要结合具体实际产品分析,除此之外,好坏客户的定义也不一定是固定的,当我们后续的建模发现模型的效果较差的时候,也常常需要对之前的分析进行一定的调整,例如m3的用户定义为坏客户,成熟期重定义等等

    展开全文
  • Python实现贷款用户的信用评分卡

    千次阅读 2021-11-11 21:17:35
    信用风险评级模型的主要开发流程如下: (1) 获取数据,包括申请贷款客户的数据。数据包括客户各个维度,包括年龄,性别,收入,职业,家人数量,住房情况,消费情况,债务等等。 (2) 数据预处理,主要工作包括...

    在公众号「python风控模型」里回复关键字:学习资料

    信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级。人信用评级有一系列评级模型组成,常见是A卡(申请评分卡)、B卡(行为模型)、C卡(催收模型)和F卡(反欺诈模型)。 今天我们展示的是个人信用评级模型的开发过程,数据采用kaggle上知名的give me some credit数据集。

    一、建模流程

    典型的信用评分卡模型如图1-1所示。信用风险评级模型的主要开发流程如下:
    (1) 获取数据,包括申请贷款客户的数据。数据包括客户各个维度,包括年龄,性别,收入,职业,家人数量,住房情况,消费情况,债务等等。
    (2) 数据预处理,主要工作包括数据清洗、缺失值处理、异常值处理、数据类型转换等等。我们需要把原始数据层层转化为可建模数据。
    (3) EDA探索性数据分析和描述性统计,包括统计总体数据量大小,好坏客户占比,数据类型有哪些,变量缺失率,变量频率分析直方图可视化,箱形图可视化,变量相关性可视化等。
    (4) 变量选择,通过统计学和机器学习的方法,筛选出对违约状态影响最显著的变量。常见变量选择方法很多,包括iv,feature importance,方差等等 。另外缺失率太高的变量也建议删除。无业务解释性变量且没有价值变量也建议删除。
    (5) 模型开发,评分卡建模主要难点是woe分箱,分数拉伸,变量系数计算。其中woe分箱是评分卡中难点中难点,需要丰富统计学知识和业务经验。目前分箱算法多达50多种,没有统一金标准,一般是先机器自动分箱,然后再手动调整分箱,最后反复测试模型最后性能,择优选取最优分箱算法。
    (6) 模型验证,核实模型的区分能力、预测能力、稳定性、排序能力等等,并形成模型评估报告,得出模型是否可以使用的结论。模型验证不是一次性完成,而是当建模后,模型上线前,模型上线后定期验证。模型开发和维护是一个循环周期,不是一次完成。
    (7) 信用评分卡,根据逻辑回归的变量系数和WOE值来生成评分卡。评分卡方便业务解释,已使用几十年,非常稳定,深受金融行业喜爱。其方法就是将Logistic模型概率分转换为300-900分的标准评分的形式。
    (8) 建立评分卡模型系统,根据信用评分卡方法,建立计算机自动信用化评分系统。美国传统产品FICO有类似功能,FICO底层语言是Java。目前流行Java,python或R多种语言构建评分卡自动化模型系统。

    (9)模型监控,着时间推移,模型区分能力,例如ks,auc会逐步下降,模型稳定性也会发生偏移。我们需要专业模型监控团队,当监控到模型区分能力下降显著或模型稳定性发生较大偏移时,我们需要重新开发模型,迭代模型。模型监控团队应该每日按时邮件发送模型监控报表给相关团队,特别是开发团队和业务团队。

    图片

    二. 获取数据

    建模数据方面包含借款申请人填写的基本资料,通讯录,通话记录和其他运营商数据,以及在其他第三方平台提供的黑名单和其他借贷平台借贷还款数据,和app抓取的手机数据,有些还包含人行征信,社保公积金工资银行流水,个人消费等数据,针对不同额度和客群需要用户填写和授权的资料不一样。收集需要的数据后,通过SQL提取相关变量特征构造建模用的宽表。具体建模信息如下图。

    图片

    python评分卡建模实战数据集

    之前我讲过利用German credit德国信用数据集建立python信用评分卡模型,该数据集优势是数据量小,对计算机硬件要求不高,方便各个阶层学员学习和测试。

    图片

    信用评分算法对违约概率进行猜测,是银行用来确定是否应授予贷款的方法。数据属于个人消费类贷款,通过预测某人在未来两年内遇到财务困境的可能性,提高信用评分的最新水平。

    银行在市场经济中发挥着至关重要的作用。他们决定谁可以获得资金以及以什么条件获得资金,并且可以做出投资决策或终止投资决定。为了让市场和社会发挥作用,个人和公司需要获得信贷。

    give me some credit有15万样本数据,该数据量解决中大型金融机构实战数据,更加接近金融企业项目实战。该数据集通过预测某人在未来两年内遇到财务困难的可能性,提高信用评分的水平。

    图片

    变量中文释义,变量少而精,可作为建模的参考

    图片

    我们对上述变量归类,主要分为:

    – 基本属性:包括了借款人当时的年龄。

    – 偿债能力:包括了借款人的可用额度比值、月收入、负债比率。

    – 信用历史:两年内35-59天逾期次数、两年内60-89天逾期次数、两年内90

    天或高于90天逾期的次数。

    – 财产状况:包括了开放式信贷和贷款数量、不动产贷款或额度数量。

    – 其它因素:借款人的家属数量(不包括本人在内)

    kaggle模型竞赛中,奖金5000美金,模型评估指标为AUC。

    图片

    互联网上国内外关于give me some credit数据集AUC得分最佳表现为0.85.

    图片

    但我方《python信用评分卡建模(附代码)》教程中AUC可以达到0.929,调参后AUC可以更高,远高于互联网上give me some credit论文的模型性能AUC=0.85。互联网论文关于建模步骤有很多看似有理,但实际上不正确的理论。

    图片

    如果你好奇我方如何将give me some credit数据集AUC达到0.929,可参考教程
    python信用评分卡建模(附代码)

    《python信用评分卡建模(附代码)》中give me some credit数据集一览。

    图片

    三、数据预处理

    数据预处理,主要工作包括数据清洗、缺失值处理、异常值处理、数据类型转换等等。我们需要把原始数据层层转化为可建模数据。


    3.1 缺失值处理

    give me some credit数据集缺失数据并不严重,只有两个变量有缺失值,缺失率为2%和19.8%。

    图片

    现实中数据存在大量缺失值是非常普遍。央行征信很多变量缺失率可以高达99%。缺失值会导致一些数据分析和建模的问题。通常在信用风险评分卡模型开发的第一步我们就要进行缺失值处理。缺失值处理的方法,包括如下几种。
    (1) 直接删除含有缺失值的样本。
    (2) 填补缺失值。
    (3) 不予理睬。

    # 用随机森林对缺失值预测填充函数
    def set_missing(df):
        # 把已有的数值型特征取出来
        process_df = df.ix[:,[5,0,1,2,3,4,6,7,8,9]]
        # 分成已知该特征和未知该特征两部分
        known = process_df[process_df.MonthlyIncome.notnull()].as_matrix()
        unknown = process_df[process_df.MonthlyIncome.isnull()].as_matrix()
        # X为特征属性值
        X = known[:, 1:]
        # y为结果标签值
        y = known[:, 0]
        # fit到RandomForestRegressor之中
        rfr = RandomForestRegressor(random_state=0, 
        n_estimators=200,max_depth=3,n_jobs=-1)
        rfr.fit(X,y)
        # 用得到的模型进行未知特征值预测
        predicted = rfr.predict(unknown[:, 1:]).round(0)
        print(predicted)
        # 用得到的预测结果填补原缺失数据
        df.loc[(df.MonthlyIncome.isnull()), 'MonthlyIncome'] = predicted
        return df
    

    3.2 异常值处理

    缺失值处理后,我们需要进行异常值检验。异常值分为统计学上异常值和业务上异常值。统计学异常值通常用箱型图来判断,如下图。

    图片

    业务上异常值是根据业务线对变量定义和常识来判断该数据是否合理。比如give me some credit数据集中有个人客户的年龄为0,按照常理,我们认为该值为异常值。哪个贷款公司会把钱借给年龄为0的用户?

    图片

    3.3 数据划分

    我们建立模型后一般会遇到下面三种情况,underfitting欠拟合,just right拟合合适,overfitting过度拟合。

    图片

    为了验证模型的性能,我们需要对数据集进行划分。

    首先把所有数据分成x数据和y数据(target目标变量)。

    然后把x数据和y数据分成训练集和测试集,并生成四个变量train_x,test_x,train_y,test_y.

    图片

    四、EDA探索性数据分析和描述性统计

    由于人大脑的生理结构,大部分人对数字不敏感,但数据可视化对大脑理解更友好。这就是数据可视化重要性,也方便向领导或决策层汇报工作。

    图片

    EDA探索性数据分析和描述性统计包括统计总体数据量大小,好坏客户占比,数据类型有哪些,变量缺失率,变量频率分析直方图可视化,箱形图可视化,变量相关性可视化等。EDA是Exploratory Data Analysis缩写,中文释义为探索性数据分析。探索性数据分析方法很多常见的有:hist直方图、scater散点图,boxer箱线图,heat热力图,pairplot配对图。

    give me some credit数据集的age年龄变量直方图

    图片

    give me some credit数据集的target目标变量直方图,可以发现好坏客户占比非常不平衡。好客户数量大概是坏客户数量15倍左右。

    图片

    give me some credit数据集的家庭成员数量变量直方图

    图片

    give me some credit数据集所有变量的pairplot配对图,大量信息一目了然。

    图片

    give me some credit数据集所有变量相关性的热力图,可以分析出有6对变量相关性非常高,变量筛选时候需要注意。

    corr = data.corr()#计算各变量的相关性系数
        xticks = ['x0','x1','x2','x3','x4','x5','x6','x7','x8','x9','x10']#x轴标签
        yticks = list(corr.index)#y轴标签
        fig = plt.figure()
        ax1 = fig.add_subplot(1, 1, 1)
        sns.heatmap(corr, annot=True, cmap='rainbow', ax=ax1, annot_kws={'size': 9, 'weight': 'bold', 'color': 'blue'})#绘制相关性系数热力图
        ax1.set_xticklabels(xticks, rotation=0, fontsize=10)
        ax1.set_yticklabels(yticks, rotation=0, fontsize=10)
        plt.show()
    

    图片

    give me some credit数据集age年龄变量关于好坏客户的分类箱型图统计。我们可以看到好客户年龄中位数要高于坏客户年龄中位数。

    图片

    五、变量选择

    变量选择,通过统计学和机器学习的方法,筛选出对违约状态影响最显著的变量。常见变量选择方法很多,包括iv,feature importance,方差等等 。另外缺失率太高的变量也建议删除。无业务解释性变量且没有价值变量也建议删除。

    《python信用评分卡建模(附代码)》教程中集成树算法catboost的feature importance可视化图,我们可以明显看出RevolvingUtilizationOfUnsecuredLines可用额度比值变量的重要性最高。图中蓝色柱越长,重要性越大,反之亦然。

    图片

    《python信用评分卡建模(附代码)》教程中变量iv值计算结果如下,我们清晰看到RevolvingUtilizationOfUnsecuredLines可用额度比值变量的iv最高。

    图片

    通过feature importance和iv值方法我们都得到同样结论:RevolvingUtilizationOfUnsecuredLines可用额度比值变量是最重要的。

    六、模型开发

    下图是建立分类器模型的常见算法,模型验证方法和模型监控内容结构化展示

    图片

    逻辑回归,决策树,随机森林不同算法的对比如下图

    图片

    逻辑回归的类型:

    大体上可以分为,

    1. 二元逻辑回归——两个或二元结果,如是或否

    2. 多项 Logistic 回归 - 三个或更多结果,如一等、二等和三等或无学位

    3.序数逻辑回归——三个或更多类似于多项逻辑回归。

    评分卡模型开发用的是逻辑回归。逻辑回归的一个难点是sigmoid函数,我们简单介绍一下sigmoid函数和逻辑回归关系。

    Logit 函数到 Sigmoid 函数 - Logistic 回归:

    逻辑回归可以表示为,

    图片

    其中 p(x)/(1-p(x)) 称为赔率,左侧称为 logit 或 log-odds 函数。几率是成功几率与失败几率的比值。因此,在逻辑回归中,输入的线性组合被转换为 log(odds),输出为 1。

    以下是上述函数的反函数

    图片

    这是 Sigmoid 函数,它产生 S 形曲线。它总是返回一个介于 0 和 1 之间的概率值。Sigmoid 函数用于将期望值转换为概率。该函数将任何实数转换为 0 到 1 之间的数字。我们利用 sigmoid 将预测转换为机器学习中的概率。

    数学上的 sigmoid 函数可以是,

    图片

    图片

    模型开发,评分卡建模主要难点是woe分箱,分数拉伸,变量系数计算。其中woe分箱是评分卡中难点中难点,需要丰富统计学知识和业务经验。目前分箱算法多达50多种,没有统一金标准,一般是先机器自动分箱,然后再手动调整分箱,最后反复测试模型最后性能,择优选取最优分箱算法。

    《python信用评分卡建模(附代码)》讲解Kmeans,等频分箱、等距分箱,卡方分箱,决策树分箱算法原理和python实现分箱代码。《python信用评分卡建模(附代码)》还告诉你如何选择分箱方法?在不同需求下,选择最合适分箱方法。

    图片

    分箱主要分为有监督方法和无监督方法。k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。下图是Kmeans分箱算法原理。

    图片

    传说中的最优分箱就是决策树分箱。

    决策树分箱算法步骤为:

    步骤 1:首先,它使用我们想要离散化的变量来训练一个有限深度(2、3 或 4)的决策树来预测目标。

    _第 2 步:_然后将原始变量值替换为树返回的概率。单个 bin 内的所有观测值的概率相同,因此用概率替换相当于将决策树决定的截止值内的观测值分组。

    决策树分箱算法好处和缺点是:

    好处 :

    • 概率预测返回的决策树与目标单调相关。

    • 新的 bin 显示出减少的熵,这是每个桶/桶内的观察结果与它们自己的相似度,而不是其他桶/桶的观察结果。

    • 树会自动找到垃圾箱。

    缺点:

    • 可能会导致过拟合

    • 更重要的是,可能需要对树参数进行一些调整以获得最佳分割(例如,深度、一个分区中的最小样本数、最大分区数和最小信息增益)。这可能很耗时。

    图片

                                    (决策树分箱可视化)
    

    等距分箱可用于类似age年龄的变量。

    图片

    分箱完成后,就把分箱数据转换为woe数据,最后用逻辑回归算法建模。

    分箱的简单代码

    # 定义自动分箱函数
    def mono_bin(Y, X, n = 20):
        r = 0
        good=Y.sum()
        bad=Y.count()-good
        while np.abs(r) < 1:
            d1 = pd.DataFrame({"X": X, "Y": Y, "Bucket": pd.qcut(X, n)})
            d2 = d1.groupby('Bucket', as_index = True)
            r, p = stats.spearmanr(d2.mean().X, d2.mean().Y)
            n = n - 1
        d3 = pd.DataFrame(d2.X.min(), columns = ['min'])
        d3['min']=d2.min().X
        d3['max'] = d2.max().X
        d3['sum'] = d2.sum().Y
        d3['total'] = d2.count().Y
        d3['rate'] = d2.mean().Y
        d3['woe']=np.log((d3['rate']/(1-d3['rate']))/(good/bad))
        d4 = (d3.sort_index(by = 'min')).reset_index(drop=True)
        print("=" * 60)
        print(d4)
        return d4
    

    七、模型验证

    逻辑回归算法建模后,我们需要模型验证。模型验证是核实模型的区分能力、预测能力、稳定性、排序能力等指标是否合格,并形成模型评估报告,得出模型是否可以使用的结论。模型验证不是一次性完成,而是当建模后,模型上线前,模型上线后定期验证。模型开发和维护是一个循环周期,不是一次完成。

    着时间推移,模型区分能力,例如ks,auc会逐步下降,模型稳定性也会发生偏移。当模型区分能力下降显著或模型稳定性发生较大偏移时,我们需要重新开发模型,迭代模型。

    模型验证指标涉及到脚本主要来自sklearn的metrics,具体指标如下:

    图片

    排序类评估——ROC指标:

    很多统计指标来源于战争。ROC最早用于英国雷达分辨鸟或德国飞机的概率。二战期间首次用于分析雷达有效性。在早些时候雷达,有时很难从飞机上分辨出一只鸟。英国人率先使用 ROC 曲线来优化他们依赖雷达进行判别的方式在来袭的德国飞机和鸟类之间。

    AUC(area under the curve)是机器学习领域中一种常见且重要的模型评估指标,用于计算二元分类器效率的方法。AUC表示ROC(receiver operator characteristic)曲线下的面积,即AUC = ROC 曲线下面积。

    图片

    sensitivity=黑色竖线右边红色像素面积/红色像素总面积

    false positive=黑色竖线右边绿色像素面积/蓝色像素总面积

    当我们对不同的阈值进行遍历时,产生的 (假阳率, 真阳率) 坐标点也就可以连成ROC曲线,进而求得曲线下面积AUC。

    图片

    K-S值

    在完成一个模型后,将测试模型的样本平均分成10组,以好样本占比降序从左到右进行排列,其中第一组的好样本占比最大,坏样本占比最小。将KS检验应用于信用评级模型主要是为了验证模型对违约对象的区分能力,通常是在模型预测全体样本的信用评分后,将全体样本按违约与非违约分为两部分,然后用KS统计量来检验这两组样本信用评分的分布是否有显著差异。

    图片

    图片

    GINI系数

    图片

    使用洛伦茨曲线,可以描述预期违约客户的分布。

    基尼系数常用于统计宏观经济的贫富差距。例如将一个国家所有的人口按最贫穷到最富有进行排列,随着人数的累计,这些人口所拥有的财富的比例也逐渐增加到100%,按这个方法得到图中的曲线,称为洛伦兹曲线。基尼系数就是图中A/B的比例。可以看到,假如这个国家最富有的那群人占据了越多的财富,贫富差距越大,那么洛伦茨曲线就会越弯曲,基尼系数就越大。

    基尼系数显示的是好客户的比例(累计),而不是所有客户。它显示了模型与随机模型相比具有更好分类能力的程度。它也被称为基尼指数。基尼系数可以取-1 到1 之间的值。负值对应于分数含义相反的模型。

    下面看基尼系数的计算步骤:

    图片

    在ROC图中,GINI=A/(A+B)=A/C=(A+C)/C-1=AUC/C-1

    其中,C=1/2 所以,GINI=2AUC-1

    《python信用评分卡建模(附代码)》教程中训练模型AUC为0.929,具体模型性能如下:

    model accuracy is: 0.9406307593547452

    model precision is: 0.9060132575757576

    model sensitivity is: 0.6077497220898841

    f1_score: 0.7274973861800208

    AUC: 0.9290751730536397

    good classifier

    gini 0.8581503461072795

    ks value:0.7107

    远超互联网give me some credit数据集建模论文的模型性能AUC 0.85。

    图片

    逻辑回归调参

    在模型验证中,我们还要测试模型参数是否最佳。逻辑回归中没有需要调整的基本超参数。尽管它有很多参数,但以下三个参数可能有助于微调以获得更好的结果,

    正则化(惩罚)有时可能是有益的。

    惩罚 - {‘l1’, ‘l2’, ‘elasticnet’, ‘none’}, default=‘l2’

    惩罚强度由 C 参数控制,这可能很有用。

    C –浮点数,默认值 = 1.0

    使用不同的求解器,您有时可能会观察到有用的性能或收敛变化。

    求解器 - {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default=‘lbfgs’

    注意:要使用的算法由惩罚决定:求解器支持的惩罚:

    1. ‘newton-cg’ – [‘l2’, ‘none’]

    2. ‘lbfgs’ – [‘l2’, ‘none’]

    3.‘liblinear’ - [‘l1’, ‘l2’]

    4. ‘sag’ – [‘l2’, ‘none’]

    5. ‘saga’ – [‘elasticnet’, ‘l1’, ‘l2’, ‘none’]

    八、评分卡诞生

    ===

    模型根据逻辑回归的变量系数和WOE值来生成评分卡。评分卡方便业务解释,已使用几十年,非常稳定,深受金融行业喜爱。其方法就是将Logistic模型概率分转换为300-900分的标准评分的形式。国内绝大多数信用评分卡都效仿的美国FICO分数。

    FICO 分数为 800 或以上的个人具有特殊的信用记录。信用评分高的人很可能多年来拥有多项信用额度。他们没有超过任何信用额度,并及时还清了所有债务。

    中高 700 分的 FICO 分数是不错的分数。得分在此范围内的个人明智地借贷和消费并及时付款。这些人,例如 800 岁以上的人,往往更容易获得信贷,并且通常支付的利率要低得多。

    最常见的分数介于 650 和 750 之间。虽然分数在此范围内的个人信用相当好,但他们可能会延迟付款。这些人通常不会很难获得贷款。但是,他们可能需要支付略高的利率。

    最后一个要考虑的实际范围是 599 或更低的分数。它们被认为信用评分不佳,通常是由于多次延迟付款、未能偿还债务或已转到收款机构的债务所致。拥有此类 FICO 分数的个人通常很难(如果不是不可能的话)获得任何形式的信用。

    图片

    如下图, FICO信用分在very poor300-579分的占比最低,只有17%;good670-739分的占比最高,达到21.5%。

    图片

    《python信用评分卡建模(附代码)》中评分卡生成有详细章节讲解,包括PDO,theta0,P0,A,B,odds,woe,iv等专业术语有完全解读。

    图片

    九.评分卡自动评分系统

    我们通过上面基础,可以生成自动化评分系统,对每个申请单用户生成好坏客户真实标签,好坏客户预测标签,坏客户概率值,拉伸评分。

    图片

    根据信用评分卡方法,我们可以建立计算机自动信用化评分系统。美国传统产品FICO有类似功能,FICO底层语言是Java。目前流行Java,python或R多种语言构建评分卡自动化模型系统。如果数据量大,建立自动信用化评分系统并非易事,需要专业团队不断测试和更新。python或R是开源语言,包定期升级,如果没有专业团队维护,该系统在将来会出现严重问题。

    十.模型监控

    着时间推移,模型区分能力,例如ks,auc会逐步下降,模型稳定性也会发生偏移。我们需要专业模型监控团队,当监控到模型区分能力下降显著或模型稳定性发生较大偏移时,我们需要重新开发模型,迭代模型。模型监控团队应该每日按时邮件发送模型监控报表给相关团队,特别是开发团队和业务团队。

    模型监控的ks指标,当模型ks低于0.2时,模型区分好坏客户能力几乎没有作用,需要重新迭代模型。

    图片

    模型监控的bad rate指标,当bad rate突然升高时,领导会非常紧张,这意味着大量贷款收不回成本。

    图片

    模型监控的PSI指标,当PSI高于0.25时,暗示模型极不稳定,需要重新迭代。

    图片

    模型监控与模型效果评测一样,也是从两个方面去监控,一是有效性,主要看过件样本在后续的逾期表现,这种逾期不需要和建模样本那么严格,可以放松一些。二是稳定性,同样是变量稳定性和模型稳定性,评测的方式与模型效果评价部分类似。监测可以分为前端、后端监控。

    图片

    (1)前端监控,授信之前,别的客户来了,这个模型能不能用?

    长期使用的模型,其中的变量一定不能波动性较大。

    比如,收入这个指标,虽然很重要,但是波动性很大,不适合用在长期建模过程中。如果硬要把收入放到模型之中,可以改成收入的百分位制(排名)。

    (2)后端监控,建模授信之后,打了分数,看看一年之后,分数是否发生了改变。

    主要监控模型的正确性以及变量选择的有效性。出现了不平滑的问题,需要重新考虑

    图片

    总结

    基于Python的信用评分卡模型主要流程就为大家介绍到这里,但实操评分卡建模中有很多细节,互联网上对这些细节描述过于草率甚至不正确。例如变量缺失率达到80%-90%就应该直接删除该变量吗?变量相关性高达0.8就可以去掉吗?经验丰富建模人员需要在数学理论,业务线实际需求,计算机测试结果等多方面找到平衡点,而不是只从一个角度思考问题。这就像经验丰富外科医生并不一定完全遵循教科书的理论。统计学,机器学习,人工智能等领域里有很多争议地方,并非有完全统一共识。各位在学习时要保持独立思考能力,这样才能不断优化数据科学知识。

    基于Python的信用评分卡模型-give me some credit就为大家介绍到这里了,欢迎各位同学报名<python金融风控评分卡模型和数据分析微专业课>,学习更多相关知识。

    展开全文
  • 关于信贷评分卡模型,看这篇就够了!

    千次阅读 多人点赞 2022-08-10 10:09:32
    风险并不是所有人都能轻松看到,信贷公司同样如此...8月4日下午15:00,顶象研发总监就评分卡模型展开分享,详细介绍了评分卡模型的原理、评分卡模型的构建过程、评分卡模型的开发投产以及顶象的评分卡模型实践。......

    风险并不是所有人都能轻松看到,信贷公司同样如此。

    8月4日下午15:00,顶象研发总监就评分卡模型展开分享,详细介绍了评分卡模型的原理、评分卡模型的构建过程、评分卡模型的开发投产以及顶象的评分卡模型实践。

    评分卡模型原理

    通常来说,我们把贷款分为抵押贷款和信用贷款。抵押贷款顾名思义需要贷款人以抵押物作担保向银行贷款,对银行来说这是一种“有保障”的贷款,而信用贷则不需要提供抵押或担保,仅凭自己的信誉就能取得贷款,这也在一定程度上加大了信用贷的利率和风险。

    因而,信用贷对于金融机构和借贷公司来说是一个不小的风险。

    那么,如何帮助金融机构和借贷公司来规避风险呢?业内的有效解决方法是建立评分卡模型来帮助金融机构和借贷公司来评估借贷人的风险。

    评分卡模型是常用的金融风控手段之一,诞生于上世纪50年代,由FICO公司开发,经历了70多年依然在信用评估中不可替代,几乎每一家金融公司都在用评分卡模型来评估风险。

    其原理是根据客户的各种属性和行为数据,利用信用评分模型,对客户的信用进行评分,从而决定是否给予授信,授信的额度和利率,减少在金融交易中存在的交易风险。

    按照不同的业务阶段,可以划分为三种:

    贷前:申请评分卡(Application score card),称为A卡;

    贷中:行为评分卡(Behavior score card),称为B卡;

    贷后:催收评分卡(Collection score card),称为C卡。

    如何构建评分卡模型?

    首先我们来初步认识下评分卡。

    评分卡分为离散特征(性别、婚姻状况、学历)和连续特征(年龄、月收入),其中年龄和月收入又进行字段细分。

    要构建一个评分卡,需要以下几个步骤:

    首先是数据准备。一般来说,构建评分卡可用的数据也分为三类:

    即个人在金融机构的账户与行为数据,包括交易行为、日常消费、存款信息、投资理财、逾期信息等;

    个人在中国人民银行的征信报告,包括个人近5年内,在国内留下的所有信用信息、家庭住址、工作单位、配偶信息、手机号、公积金、社保信息、信贷记录、房贷车贷记录、历史逾期信息、违法行为、征信查询信息,基于人行征信,可以衍生出 “上千维” 特征,足以构建一个效果非常不错的贷前评分卡;

    第三方公司提供的个人信用分,诸如芝麻分、微信支付分、京东信用分、百融分等。

    本质上来说,中国人民银行的征信报告好于金融机构的账户与行为数据好于第三方公司提供的个人信用分。

    其次是数据探索,包括数据的缺失情况、直方图分布、最大值、最小值、均值、分位数。

    然后是数据预处理,包括数据清洗、缺失值处理、异常值处理。

    特征筛选,通过统计学的方法,筛选出对违约状态影响最显著的指标。主要有单变量特征选择和基于机器学习的方法。

    分箱,包括变量分段、变量的WOE(证据权重)变换和逻辑回归估算三个部分。

    模型评估,评估模型的区分能力、预测能力、稳定性,并形成模型评估报告,得出模型是否可以使用的结论。

    生成评分卡(信用评分),根据逻辑回归的系数和WOE等确定信用评分的方法,将Logistic模型转换为标准评分的形式。

    建立评分系统(布置上线),根据生成的评分卡,建立自动信用评分系统。

    最后通过评分卡模型收集违约信息,进行效果监控。

    那么,如何对特征进行分箱(区间划分),为什么要分箱?每个分箱的得分,怎么确定的?

    WOE、IV、PSI、KS,它们有什么含义?

    我们先来看分箱。

    分箱是对特征变量进行区间划分或者对不同枚举值进行合并的过程,它可以降低特征的复杂度,提升变量可解释性。

    分箱的两个功能:

    拆分:对 “连续变量” 进行分段离散化,使它变成 “离散变量”。比如:年龄、月收入。拆分分为等频拆分、等距拆分、信息熵分箱。

    以信息熵分箱为例,这是一种监督的拆分方式,可衡量好坏样本的区分度。其方法是先对特征所有值进行排序遍历特征所有值 (连续值需要进行细粒度分组),以每个值做为划分点,计算 “条件熵”,选择 “条件熵最小” 的特征值作为分割点,将数据分成两部分,设置一些停止条件,重复以上步骤。

    合并:减少离散变量的状态数,对 “离散变量” 进行合并。比如:地区、学历。合并又分为卡方检验和WOE值。

    以卡方检验为例。卡方检验是一种假设检验方法,先提出两个变量没有相关性,然后对数据进行抽象证明他们是否有相关性。根据卡方检验的计算公式对比实际频数和理论频数是否具有显著差异,卡方值越小,实际频数与理论频数就越接近,也就证明卡方检验成立,也就可以证明分组与分类不相关。

    每个变量的分箱数,控制在十个以下,通常 5个左右是最佳的;分箱越多,模型过拟合的风险越高,模型的稳定性也会变差,在金融场景,风险可控与稳定至关重要。

    WOE (Weight of Evidence) 是判断 “一个分箱区间”,区分好坏样本的能力。

    其公式如下:

    IV (Information Value) 是计算各分箱区间的 WOE 加权和,可以衡量 “一个特征”,区分好坏样本的能力。

    其公式如下:

    但事实上,分箱方法很多,顶象实现了一种简单可行的全自动分箱方法。

    对于连续变量,可先进行等频拆分得到细分箱,对于离散变量可直接认为是细分箱,然后进行WOE合并,每次合并WOE值最接近的相邻细分箱或离散值,同时要满足以下条件:

    1、每个分箱至少包含 5% 的样本;

    2、每个分箱必须包含 正常样本与违约样本;

    3、分箱数控制在 5个左右;

    4、除了 age 外,其他变量尽可能保持单调性。

    值得注意的是,特征分箱并不是完美的,但总体来说利大于弊。

    比如连续变量分箱、离散变量合并,会 “降低特征变量的复杂度,降低模型过拟合的风险”;可以 “增强模型的稳定性”,对特征变量的异常波动不会反应太大,也利于适应更广泛的客群;将特征变量划分为有限的分箱,可以 “增强模型的可解释性”;可以更自然地将 “缺失值作为单独的分箱”。

    目前,主流的评分卡模型仍以逻辑回归模型为主要模型。假设客户违约的概率为p,则正常的概率为1 − p。由此可以得到违约几率:

    评分卡是 “将Odds赔率的对数,转变为分值的线性函数”,表示如下:

    为了确定公式中的A与B值,需要定义2个条件:

    1、基准分 P_0 ,在Odds赔率为 θ_0 时的得分 (例如,赔率为 1:50 时,基准分为 500)

    2、PDO (point of double),Odds赔率翻倍时减少的分值 (赔率为 1:25 时,减少 20)

    评分卡设定的分值刻度可以通过将分值表示为几率对数的线性表达式来定义,即:

    A和B都是常数且(a>=0, b>=0)。当希望违约几率越低,得分越高时,取负号。通常情况下,这是分值的理想变动方向,即高分值代表低风险,低分值代表高风险。

    逻辑回归算法相比于其他算法更优,一方面是因为其“可解释性强,易于理解”,可以追查每个变量的得分,变量的权重也可以从业务视角去交叉验证;一方面是其“简单,稳定”可配合分箱可以进一步增强稳定性,分箱本身也一定程度上解决了部分非线性问题;并且“易于跟踪,排查问题”,当模型衰退、客群发生变化时,通过分箱的 PSI 与 IV 可以快速定位出问题的原因。

    评分卡模型如何评估、应用、跟踪?

    评分卡模型评估分为效果评估和稳定性评估。

    先来看效果评估。

    模型输出的每个评分值,都可以作为阈值。如果小于阈值,我们可以预测为“违约”,如果大于等于阈值,则可以预测为“正常”,根据每个阈值,可以计算出混淆矩阵,然后根据混淆矩阵我们可以进一步计算出违约比率或正常比率,进而得出KS曲线或者ROC曲线。

    其中,KS曲线具备对好坏样本的区分能力,如果KS值小于0.20则不建议采用,大于0.75则可能存在错误。

    但需要注意的是,单独从KS训练样本评估出的KS值还不足以评估模型的好坏,一定要做长期的验证来证明KS值是稳定的,确保模型在验证集上的 KS 与 训练样本上的 KS,不出现大幅度下降,如果下降幅度超过10% (比如: 训练集 KS = 0.50,4个月后 KS_4 = 0.45, 下降幅度为10%),说明模型衰退明显,也就进一步说明其稳定性是有问题的。

    接下来看下稳定性评估。

    PSI (Population Stability Index)称为群体稳定性指标,用来 “对比2个数据集的分布,是否发生比较大的偏差”,对比一定要有参照物,对评分卡模型来说,参照物是模型训练时的 “训练样本” (期望分布),而评估对象称为 “验证样本”(实际分布)。

    PSI 越小则说明稳定性越好,如果PSI大于0.50则需要进一步分析特征变量。

    PSI 可从两个计算维度来看,即评分 PSI和特征变量 PSI。

    评分 PSI对 “模型的输出分值” 进行分箱,在验证集与训练集上做 PSI 对比,判断是否发生大的变化。如下图,期望分布代表训练集,实际分布代表验证集。

    特征变量 PSI对 “入模的每个特征变量” 进行分箱,在验证集与训练集 上做 PSI 对比,判断是否发生大的变化。

    同样的,PSI 也需要做跨期验证。确保 “评分值、每个特征变量”,在近N个月的验证集上,对比训练集计算出的PSI,在可接受的范围内。

    接下来看下模型的应用。

    当模型评估合格后,此时我们需要权衡违约率与通过率,确定自动通过阈值。如果阈值在0.2%~0.8%之间则可自动通过阈值,如果在0.8%~3.0%之间则需要人工审核阈值,如果大于3.0%则会直接拒绝。

    评分越高,违约率与通过率也是逐步提升,此时我们就需要权衡违约率与通过率,设定阈值来区分样本好坏。

    最后我们来看下模型跟踪。

    当模型应用后,可能会出现衰退甚至不可用,其原因主要有三:

    一是客群变化:模型开发阶段选取的人群,与应用阶段的人群,发生大的偏差。业务在应用的过程中,有可能在某个渠道引入新人群。

    二是特征变量的含义或加工逻辑发生变化:入模的特征变量,在某个时间点,技术人员不小心更改了字段的加工逻辑,比如:字段的时间窗口,过滤条件等逻辑变化。

    三是社会环境发生变化:同样的客群,在不同时期不同的社会经济环境下,模型的效果表现可能也会不同,比如:新冠疫情、俄乌冲突等社会问题,会导致经济衰退、失业率升高,进而影响客户的还款能力。

    而发现模型衰退时,可通过 “评分 PSI” 可以发现问题,但其根本原因是特征变量,模型监控与分析,一定要深入到 “特征变量”,通过 “特征变量 PSI” 找出根本原因 。

    模型跟踪也分为PSI 和KS。

    PSI 可做月度监控,当月的 “申请样本” 与 “模型训练样本” 进行对比,计算出 “评分PSI” 与 “每个特征变量的PSI”。

    同样的,KS 也可做月度监控:收集月度内的 “申请样本” 以及 “违约标签”,计算出 “评分KS” 与 “每个特征变量的IV”。

    整体来看,评分卡模型是统计学的创新应用,分箱与WOE编码降低了数据的复杂度,降低了特征的灵敏度,提升了模型的稳定性,同时可进行跨期验证,确保验证模型的长期稳定可靠,并且具备配套的跟踪监控体系,根据评分PSI、参数PSI、评分KS、参数IV快速分析模型衰退的原因。

    下期我们业务安全大讲堂将由顶象技术总监杜威为大家带来《业务安全平台核心模块解析——设备指纹》的主题课程,敬请期待!

    展开全文
  • 模型监控指标二、申请评分卡在互联网金融业的重要性和特性三、贷款申请环节的数据介绍和描述1.申请评分卡的常用特征2.数据介绍四、非平衡样本问题的定义和解决办法1.非平衡样本的解决办法 一、信用风险和评分卡模型...
  • 基于python的申请评分卡模型,训练,测试数据集 application.csv
  • P2P金融评分卡模型.pdf

    2020-10-31 22:34:16
    产品定价:按照模型计算的通过率给申请信息定价 ...• 商业模式拓展:对通过率高的客户,可直接推荐给B端,放款收 佣金 • 上述策略的应用基础建立在模型精准的基础上,现有的模型需要 新的数据迭代验证和迭代开发。
  • 评分卡开发介绍

    2018-07-13 18:49:08
    风险评分、收入评分、响应度评分客户流失(忠诚度)评分、催收评分、信用发卡审核评分、房屋按揭贷款发放审核评分、信用额度核定评分等。 综合信用风险评分——鹏元 800 2005年4月底,鹏元征信有限公司自主研发...
  • 业务 | 信贷模型中的评分卡

    千次阅读 2019-06-03 21:18:54
    评分卡模型1 消费信贷概述1.1 消费金融概述1.2 消费信贷发展痛点1.3 痛点解决思路2 模型业务目标确定2.1 风控内容2.2 Vintage分析法2.3 如何确定业务目标2.4 Vintage和迁移率模型对比3 A卡和B卡3.1 A卡3.2 B卡3.3 C...
  • python 评分卡

    千次阅读 2022-01-18 09:50:17
    人信用评级有一系列评级模型组成,常见是A卡(申请评分卡)、B卡(行为模型)、C卡(催收模型)和F卡(反欺诈模型)。 今天我们展示的是个人信用评级模型的开发过程,数据采用kaggle上知名的give me some credit数据...
  • python 评分卡_评分卡原理及Python实现

    千次阅读 2022-01-18 09:44:50
    人信用评级有一系列评级模型组成,常见是A卡(申请评分卡)、B卡(行为模型)、C卡(催收模型)和F卡(反欺诈模型)。 今天我们展示的是个人信用评级模型的开发过程,数据采用kaggle上知名的give me some credit数据...
  • python评分卡模型

    千次阅读 2022-01-18 09:54:24
    人信用评级有一系列评级模型组成,常见是A卡(申请评分卡)、B卡(行为模型)、C卡(催收模型)和F卡(反欺诈模型)。 今天我们展示的是个人信用评级模型的开发过程,数据采用kaggle上知名的give me some credit数据...
  • 信用评分卡(A卡/B卡/C卡)模型简介

    千次阅读 2019-07-24 21:10:48
    如今在银行、消费金融公司等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户有一个优质与否的评判。但是不是所有人都知道信用评分卡还分A,B,C卡三类!A卡(Application score card)申请评分卡B...
  • 这次主要介绍的信贷审查流程、风控评分卡建模、授信额度设定、贷后催收的一些内容。特别是在风控建模流程和方法上都有一些借鉴的价值。具体课程链接:https://xue.tongdun.cn/courses 一、信贷审查 概念:信贷审查...
  • 金融风控实战——申请评分卡

    千次阅读 2022-02-03 23:40:59
    )) #家属数量缺失比:2.62% df=df.fillna({'月收入':df['月收入'].mean()}) df1=df.dropna() df1.shape #(146076, 11) gbdt不考虑特征缺失,逻辑回归要对缺失值处理,逻辑回归这类广义线性模型在评分卡的构建过程中会...
  • 信贷b卡(行为评分卡

    千次阅读 2020-03-24 22:25:12
    1、定义:B卡即行为评分(Behavior Scoring),主要目的为监控放款后的风险变化。 2、业务阶段:B卡适用于贷...3、数据使用:B卡行为评分卡则是在申请人有了贷款还款行为后,有相当的数据基础后进行的分析,一般为3-...
  • 评分卡模型

    2021-05-16 22:46:46
    一、评分卡模型: 1、评分卡模型是常用的金融风控手段之一 风控,就是风险控制,我们采取各种措施和方法,减少风险发生的可能性,或风险发生时造成的损失 2、根据客户的各种属性和行为数据,利用信用评分模型,对...
  • 风控业务背景 不夸张地说,贷前风控可覆盖80%的风险,这是业内普遍共识,当然更是信贷风控的内在需要,毕竟放款...本文以贷前授信风控模型为例,介绍客户层申请评分卡的一些构建思路。 目录 Part 1. 产品层和客户层评分
  • 《老饼讲解机器学习》本文讲述小贷评分卡的完整流程,包括数据处理、变量筛选、建模、上线等。小贷评分卡有很多细节,它不只是单纯的逻辑回归模型,而是一整套业务处理,本文正是把小贷评分卡的细节、操作、原理以...
  • 信用评分卡模型

    千次阅读 2021-06-19 22:54:31
    信用评分卡模型是最常见的金融风控手段之一,它是指根据客户的各种属性和行为数据,利用一定的信用评分模型,对客户进行信用评分,据此决定是否给予授信以及授信的额度和利率,从而识别和减少在金融交易中存在的交易...
  • 主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用“四张卡”来表示,分别是A、B、C和F;债项评级模型通常按照主体的融资用途,分为企业融资模型、现金流融资模型和项目融资模型等。 我们...
  • 催收评分卡(一)催收评分卡介绍

    千次阅读 2019-08-25 13:51:40
    从今天开始本号会陆续公开催收评分卡的原创教程和资料,如果对这部分内容有兴趣,麻烦动动手关注转发,谢谢大家的捧场。 搜索关注公众号“ 番茄风控大数据”,获取更多风控干货。   我这里所要介绍给各位的是:...
  • 信贷申请评分卡1

    2021-04-12 09:52:16
    对于选择逾期多少天以后的作为坏客户除了定性的与业务部门商定外,可以进行定量分析,建立滚动率二维分析表,观察起始点每个账龄在6个月后的迁徙情况,对于滚动有坏件率依然很高的账龄确定为坏用户,逾
  • 信用评分卡(A卡/B卡/C卡)简介

    千次阅读 2021-05-26 09:53:48
    如今在银行,P2P等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户有一个优质与否的评判。但是不是所有人都知道信用评分卡还分A,B,C卡三类!所以,如果你只知道ABC是Gary的ABC汤,那就赶紧来补习...
  • 某网贷行业贷款,包括信用违约标签(因变量)、建模所需的基础与加工字段(自变量)、相关用户的网络行为原始数据,关于信用评分模型的应用以及实现,进行信用评分卡构建,以此来对客户贷款进行风险预警。
  • 本篇文章上接《申请评分卡简介》,有需要的童鞋可以参考下: 原始文章链接:https://www.it610.com/article/1305285460372787200.htm 下面介绍下A卡的开发步骤。 开发过程 1、评分卡模型开发步骤: 1、立项:...
  • C卡催收评分卡

    千次阅读 2020-03-26 21:22:27
    转自公众号:天天学风控 1、定义:C卡(Collection scorecard)催收评分...3、数据使用:A卡申请评分卡一般可做贷款0-1年的信用分析,B卡行为评分卡一般为3-5年,催收评分卡则对数据要求更大,需加入催收后客户反应...
  • 信贷风控八)行为评分卡模型(B卡)的介绍

    万次阅读 多人点赞 2019-02-24 22:45:56
    本篇我们来学习一下行为评分卡(B卡),首先什么是行为评分卡呢,行为评分卡的使用场景以及目的,适用的信贷产品? 其中特别注意一下,不适合先息后本的信贷产品,因为每个月的违约概率不一样,不好预测 观察...
  • 主要是用来在贷后管理中确定客户风险的高低, (3)催收评分卡(C卡)主要是用来在催收管理中确定风险比较高的客户。 (4)反欺诈评分卡(F卡)是对每一笔新申请的贷款进行可疑欺诈判断。主要用来准入。 申请评分卡...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,483
精华内容 993
热门标签
关键字:

信贷客户评分卡