金融風控相關業務介紹
學習目标
- 知道常見信貸風險
- 知道機器學習風控模型的優勢
- 知道信貸領域常用術語含義
1 信貸&風控介紹
- 信貸業務,就是貸款業務,是商業銀行和網際網路金融公司最重要的資産業務和主要赢利手段
- 通過放款收回本金和利息,扣除成本後獲得利潤。
- 貸款平台預測有信貸需求使用者的還款情況,然後将本金借貸給還款機率大的使用者
- 信貸業務中的風險控制:
- 信貸業務中,使用信用來預支金錢,在小額貸業務中往往沒有抵押物,那麼貸款方就會承擔一定風險(使用者不還錢)
- 風控就是對使用者的信用風險進行管理與規避,對于預測信用較差的人,不向其放款,即便放款,也會是較小的貸款額度和較高的利率
- 信貸領域有兩類風險:
- 信用風險:借款人的的還款能力和還款意願在貸款後出現問題的風險
- 欺詐風險:借款人壓根沒想還錢,以詐騙為目的
- 風控業務主要針對這兩類風險
- 信用評分系統:針對信用風險
- 反欺詐系統:針對欺詐風險
- 基于機器學習的人工智能風控模型對比傳統人工審批:
- 人工審批:效率低,對人員業務能力要求高,不适合金融零售業務場景
- 機器學習模型:批量,迅速,準确,同時處理大量貸款請求(幾萬,幾十萬,上百萬/天)
2 常見信貸産品及常見風險介紹
- 信貸産品介紹
個人信貸産品 |
大額借貸 | 房貸車貸 |
小微企業貸 |
小額借貸 | 消費貸 | 螞蟻花呗,京東白條 |
現金貸 | 螞蟻借呗,京東金條,微粒貸,各類網貸 |
資料服務 | 信用分服務 | 芝麻信用分,京東小白分 |
信用資料服務 | 同盾資料,百融,集奧,大峰... |
額度 | 500~3000 |
利率 | 24%~36% |
期限 | 714,30天 |
放款形式 | 借給現金,不限場景 |
可選功能 | 訂單展期 |
現金貸産品 | 年化利率 | 現金貸産品 | 年化利率 |
蘇甯金融 | 24% | 國美易卡 | 34% |
螞蟻借呗 | 24% | 馬上消費 | 35% |
微粒貸 | 24% | 招聯金融 | 36% |
有錢花 | 24% | 桔子分期 | 36% |
京東金條 | 24% | 拍拍貸 | 36% |
360借條 | 24% | 趣店 | 36% |
小米金融 | 24% | 捷信 | 36% |
美團生活費 | 24% | 宜人貸 | 44% |
分期樂 | 24% | 玖富 | 50% |
-
消費貸
信用卡,花呗,白條等産品,有賬單日,還款日
申請消費貸 -> 額度授信->客戶使用消費貸消費
額度 | 1000~10000 |
利率 | 24% |
賬期 | 30天 |
放款形式 | 指定消費場景 |
可選功能 | 最低還款,賬單展期,賬單分期,停息挂賬,臨時額度,備用金 |
- 産品類型:
- 還款方式:
- 砍頭息:短期産品, (服務費)
- 等額本金
- 等額本息
- 常見風險
- 冒名頂替,黑産騙貸
- 多頭借貸,借新還舊
- 客戶:工行信用卡,招商信用卡... n張信用卡,網貸平台1,網貸平台2,網貸平台n
- 用新借來的錢還已有的負債: 負債變多 -> 需新借更多 -> 設法提額 -> 信用資質不夠 -> 出現流動性風險 -> 逾期
-
特點:第三方資料:多頭申請記錄
APP安裝:大量借款類APP
短信:大量申請短信,提醒還款,催收短信
- POS機套現,以少換多
- 購買有支付牌照機構的POS機進行套現,手續費0.6%
- 針對風控模型,制作資料
- 使用花呗在天貓購物,對花呗賬單做分期
- 買入存金寶,一個禮拜後追加存金寶資金
- 購買***元基金
- 保持餘額寶XXX元不動,餘額寶累計收益做到 XX元
- 購買XXXX保險
3 風控相關術語介紹
解釋 |
DPD | Day past due 逾期天數 DPD0為到期當日,DPD1為逾期一日,DPD7為逾期一周 |
FPD | First time past due 首次逾期天數 |
F/S/T/QPD | 首次 二次 三次 四次 逾期天數 |
M1 | 逾期 [1, 30)天 M 是英文“Months”的首寫字母 |
M1+ | 逾期[30, inf]天 |
default | 壞賬 |
delinquency | 拖欠 |
flow rate | 流動率 一般指M1向M2,M2向M3轉移的比例 |
bad rate | 壞賬率 當月不良資産數/總資産數 |
vintage | 賬齡分析 |
4 風控業務案例
4.1 案例背景介紹
- 通過對業務資料分析了解信貸業務狀況
- 資料集說明
- 從開源資料改造而來,基本反映真實業務資料
- 銷售,客服可以忽略
- 賬單周期,放款日期
- 賬單金額-實收金額 = 未收金額
- 應付日期為還款時間
- 賬期分成兩種 60天和90天
- 實際到賬日為空白 說明沒還錢
-
- 通過對貸後業務資料的分析要分析出如下内容
- 每個季度賬單金額和壞賬率(逾期90天以上)
- 所有未收金額/所有賬單金額
- 未收金額 = 賬單金額-實收金額
- 每個季度60天賬期 入催率,90天賬單 入催率
- 不同逾期天數的回款情況
- 曆史逾期天數 有逾期 已經還完了
- 目前逾期天數 現在還欠着錢,沒還完
4.2 代碼實作
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#770088">import</span> <span style="color:#000000">pandas</span> <span style="color:#770088">as</span> <span style="color:#000000">pd</span>
<span style="color:#770088">import</span> <span style="color:#000000">datetime</span>
<span style="color:#770088">from</span> <span style="color:#000000">pyecharts</span>.<span style="color:#000000">charts</span> <span style="color:#770088">import</span> <span style="color:#981a1a">*</span>
<span style="color:#770088">from</span> <span style="color:#000000">pyecharts</span> <span style="color:#770088">import</span> <span style="color:#000000">options</span> <span style="color:#770088">as</span> <span style="color:#000000">opts</span>
<span style="color:#000000">df1</span> = <span style="color:#000000">pd</span>.<span style="color:#000000">read_excel</span>(<span style="color:#aa1111">'data/業務資料.xls'</span>)
<span style="color:#aa5500">#要使用原始資料建構新名額,是以保留原始資料,copy新的資料,在新的資料中建立新名額</span>
<span style="color:#000000">df2</span> = <span style="color:#000000">df1</span>.<span style="color:#000000">copy</span>()
<span style="color:#000000">df2</span>.<span style="color:#000000">head</span>()</span></span>
顯示結果 銷售 | 賬單狀态 | 賬單周期 | 賬單金額 | 開票金額 | 實收金額 | 未收金額 | 預計付款日 | 應付日期 | 商務催收日期 | 賬期 | 實際到賬日 | 開票日期 | 客服 |
s101 | 未确認 | 2019-05 | 29805.0 | NaN | NaN | NaN | 2019-07-31 | 2019-07-31 | 2019-08-15 | 60 | NaN | NaN | a201 |
1 | s102 | 未确認 | 2019-05 | 1572.6 | NaN | NaN | NaN | 2019-07-31 | 2019-07-31 | 2019-08-15 | 60 | NaN | NaN | a202 |
2 | s103 | 已确認 | 2019-04 | 487551.2 | 487551.2 | NaN | 487551.2 | 2019-06-30 | 2019-06-30 | 2019-07-15 | 60 | NaN | 05-16 | a203 |
3 | s104 | 已确認 | 2019-04 | 378835.0 | 378835.0 | NaN | 378835.0 | 2019-07-31 | 2019-07-31 | 2019-08-15 | 90 | NaN | 05-08 | a204 |
4 | s105 | 已确認 | 2019-04 | 326866.0 | 326866.0 | NaN | 326866.0 | 2019-07-31 | 2019-07-31 | 2019-08-15 | 90 | NaN | 05-10 | a205 |
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">df2</span>.<span style="color:#000000">info</span>()</span></span>
顯示結果 <span style="background-color:#f8f8f8"><class <span style="color:#aa1111">'pandas.core.frame.DataFrame'</span>>
RangeIndex: <span style="color:#116644">5257</span> entries, <span style="color:#116644">0</span> to <span style="color:#116644">5256</span>
Data columns (total <span style="color:#116644">14</span> columns):
<span style="color:#aa5500"># Column Non-Null Count Dtype </span>
<span style="color:#0000cc">---</span> <span style="color:#0000cc">------</span> <span style="color:#0000cc">--------------</span> <span style="color:#0000cc">-----</span>
<span style="color:#116644">0</span> 銷售 <span style="color:#116644">5257</span> non-null object
<span style="color:#116644">1</span> 賬單狀态 <span style="color:#116644">5257</span> non-null object
<span style="color:#116644">2</span> 賬單周期 <span style="color:#116644">5257</span> non-null object
<span style="color:#116644">3</span> 賬單金額 <span style="color:#116644">5257</span> non-null float64
<span style="color:#116644">4</span> 開票金額 <span style="color:#116644">5010</span> non-null float64
<span style="color:#116644">5</span> 實收金額 <span style="color:#116644">4470</span> non-null float64
<span style="color:#116644">6</span> 未收金額 <span style="color:#116644">5010</span> non-null float64
<span style="color:#116644">7</span> 預計付款日 <span style="color:#116644">5256</span> non-null object
<span style="color:#116644">8</span> 應付日期 <span style="color:#116644">5257</span> non-null object
<span style="color:#116644">9</span> 商務催收日期 <span style="color:#116644">5257</span> non-null object
<span style="color:#116644">10</span> 賬期 <span style="color:#116644">5257</span> non-null int64
<span style="color:#116644">11</span> 實際到賬日 <span style="color:#116644">4387</span> non-null object
<span style="color:#116644">12</span> 開票日期 <span style="color:#116644">4996</span> non-null object
<span style="color:#116644">13</span> 客服 <span style="color:#116644">5257</span> non-null object
dtypes: float64(4), int64(1), object(9)
memory usage: <span style="color:#116644">575</span>.1<span style="color:#981a1a">+</span> KB</span>
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">df2</span>.<span style="color:#000000">describe</span>()</span></span>
顯示結果 賬單金額 | 開票金額 | 實收金額 | 未收金額 | 賬期 |
count | 5.257000e+03 | 5.010000e+03 | 4.470000e+03 | 5.010000e+03 | 5257.000000 |
mean | 4.073241e+04 | 4.096896e+04 | 4.082419e+04 | 4.684636e+03 | 64.539661 |
std | 8.176172e+04 | 8.007245e+04 | 7.970628e+04 | 2.888464e+04 | 15.622765 |
min | 0.000000e+00 | 2.500000e+01 | 0.000000e+00 | 0.000000e+00 | 0.000000 |
25% | 5.103000e+03 | 5.300000e+03 | 5.112250e+03 | 0.000000e+00 | 60.000000 |
50% | 1.436500e+04 | 1.486560e+04 | 1.434000e+04 | 0.000000e+00 | 60.000000 |
75% | 4.178000e+04 | 4.220250e+04 | 4.170750e+04 | 0.000000e+00 | 75.000000 |
max | 1.508796e+06 | 1.356215e+06 | 1.301665e+06 | 1.277098e+06 | 90.000000 |
- 資料處理,填充缺失值,将日期時間類型轉換成datetime類型
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"># 擷取最大的日期,作為目前時間</span>
<span style="color:#000000">today_time</span> = <span style="color:#000000">pd</span>.<span style="color:#000000">to_datetime</span>(<span style="color:#000000">df2</span>.<span style="color:#000000">實際到賬日</span>.<span style="color:#000000">fillna</span>(<span style="color:#aa1111">'0'</span>).<span style="color:#000000">max</span>())
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'實收金額'</span>] = <span style="color:#000000">df2</span>.<span style="color:#000000">實收金額</span>.<span style="color:#000000">fillna</span>(<span style="color:#116644">0</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'開票金額'</span>] = <span style="color:#000000">df2</span>.<span style="color:#000000">開票金額</span>.<span style="color:#000000">fillna</span>(<span style="color:#116644">0</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'未收金額'</span>] = <span style="color:#000000">df2</span>.<span style="color:#000000">未收金額</span>.<span style="color:#000000">fillna</span>(<span style="color:#116644">0</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'賬單周期'</span>] = <span style="color:#000000">pd</span>.<span style="color:#000000">to_datetime</span>(<span style="color:#000000">df2</span>.<span style="color:#000000">賬單周期</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'應付日期'</span>] = <span style="color:#000000">pd</span>.<span style="color:#000000">to_datetime</span>(<span style="color:#000000">df2</span>.<span style="color:#000000">應付日期</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'實際到賬日'</span>] = <span style="color:#000000">pd</span>.<span style="color:#000000">to_datetime</span>(<span style="color:#000000">df2</span>.<span style="color:#000000">實際到賬日</span>).<span style="color:#000000">fillna</span>(<span style="color:#000000">today_time</span>)</span></span>
- 為了後續計算,在原始資料基礎上構造新的字段:是否逾期,是否逾期90天,未收金額2(校驗原始資料中的未收金額),目前逾期天數,曆史逾期天數
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">df2</span>[<span style="color:#aa1111">'是否到期'</span>] = <span style="color:#000000">df2</span>.<span style="color:#000000">apply</span>(<span style="color:#770088">lambda</span> <span style="color:#000000">x</span> : <span style="color:#116644">0</span> <span style="color:#770088">if</span> <span style="color:#000000">x</span>.<span style="color:#000000">應付日期</span> <span style="color:#981a1a">></span> <span style="color:#000000">today_time</span> <span style="color:#770088">else</span> <span style="color:#116644">1</span>,<span style="color:#000000">axis</span>=<span style="color:#116644">1</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'是否到期90天'</span>] = ( <span style="color:#000000">today_time</span> <span style="color:#981a1a">-</span> <span style="color:#000000">df2</span>.<span style="color:#000000">應付日期</span> ).<span style="color:#000000">map</span>(<span style="color:#770088">lambda</span> <span style="color:#000000">x</span> : <span style="color:#116644">1</span> <span style="color:#770088">if</span> <span style="color:#000000">x</span>.<span style="color:#000000">days</span> <span style="color:#981a1a">></span>= <span style="color:#116644">90</span> <span style="color:#770088">else</span> <span style="color:#116644">0</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'未收金額2'</span>] = (<span style="color:#000000">df2</span>.<span style="color:#000000">賬單金額</span> <span style="color:#981a1a">-</span> <span style="color:#000000">df2</span>.<span style="color:#000000">實收金額</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'曆史逾期天數'</span>] = <span style="color:#000000">df2</span>.<span style="color:#000000">apply</span>(<span style="color:#770088">lambda</span> <span style="color:#000000">x</span> : (<span style="color:#000000">x</span>.<span style="color:#000000">實際到賬日</span> <span style="color:#981a1a">-</span> <span style="color:#000000">x</span>.<span style="color:#000000">應付日期</span>).<span style="color:#000000">days</span> <span style="color:#770088">if</span> <span style="color:#000000">x</span>.<span style="color:#000000">未收金額2</span> == <span style="color:#116644">0</span> <span style="color:#770088">else</span> (<span style="color:#000000">today_time</span> <span style="color:#981a1a">-</span> <span style="color:#000000">x</span>.<span style="color:#000000">應付日期</span>).<span style="color:#000000">days</span>,<span style="color:#000000">axis</span>=<span style="color:#116644">1</span>)
<span style="color:#000000">df2</span>[<span style="color:#aa1111">'目前逾期天數'</span>] = <span style="color:#000000">df2</span>.<span style="color:#000000">apply</span>(<span style="color:#770088">lambda</span> <span style="color:#000000">x</span> : (<span style="color:#000000">x</span>.<span style="color:#000000">曆史逾期天數</span>) <span style="color:#770088">if</span> <span style="color:#000000">x</span>.<span style="color:#000000">未收金額2</span> <span style="color:#981a1a">></span> <span style="color:#116644">0</span> <span style="color:#770088">else</span> <span style="color:#116644">0</span> ,<span style="color:#000000">axis</span> = <span style="color:#116644">1</span>) </span></span>
- 查詢實際到賬日期字段得知目前最近的到賬日為2019年5月17日,如果以2019年5月17日為觀察點,有些貸款還沒到還款日,沒法統計DPD90的資料,是以,這裡隻統計2019年之前的情況,下面将對應時間段的資料取出
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">df3</span> =<span style="color:#000000">df2</span>.<span style="color:#000000">copy</span>()
<span style="color:#aa5500">#建立’賬單季度‘字段,将日期轉換成季度</span>
<span style="color:#000000">df3</span>[<span style="color:#aa1111">'賬單季度'</span>] = <span style="color:#000000">df3</span>[<span style="color:#aa1111">'賬單周期'</span>].<span style="color:#000000">map</span>(<span style="color:#770088">lambda</span> <span style="color:#000000">x</span> : <span style="color:#000000">x</span>.<span style="color:#000000">to_period</span>(<span style="color:#aa1111">'Q'</span>))
<span style="color:#aa5500">#提取2017年3季度到2018年4季度資料</span>
<span style="color:#000000">df3</span> = <span style="color:#000000">df3</span>[(<span style="color:#000000">df3</span>[<span style="color:#aa1111">'賬單季度'</span>]<span style="color:#981a1a"><</span>=<span style="color:#aa1111">'2018Q4'</span>) <span style="color:#981a1a">&</span> (<span style="color:#000000">df3</span>[<span style="color:#aa1111">'賬單季度'</span>]<span style="color:#981a1a">></span>=<span style="color:#aa1111">'2017Q3'</span>)]
<span style="color:#000000">df3</span>.<span style="color:#000000">shape</span></span></span>
顯示結果 <span style="background-color:#f8f8f8">(3856, 21)</span>
<span style="background-color:#f8f8f8"><span style="color:#333333">#賬單金額
fn1 = df3.groupby('賬單季度')[['賬單金額']].sum()
fn1.columns = ['賬單金額']
fn1
</span></span>
顯示結果 賬單金額 |
賬單季度 |
2017Q3 | 8247952.62 |
2017Q4 | 11643604.99 |
2018Q1 | 17149674.79 |
2018Q2 | 31097661.29 |
2018Q3 | 38292071.12 |
2018Q4 | 51963089.64 |
<span style="background-color:#f8f8f8"><span style="color:#333333">#90天到期金額
df4 = df3[(df3.是否到期90天 == 1)]
fn2 = df4.groupby('賬單季度')[['賬單金額']].sum()
fn2.columns = ['到期金額']
fn2
</span></span>
顯示結果 到期金額 |
賬單季度 |
2017Q3 | 8247952.62 |
2017Q4 | 11643604.99 |
2018Q1 | 17149674.79 |
2018Q2 | 31097661.29 |
2018Q3 | 38292071.12 |
2018Q4 | 28265677.59 |
<span style="background-color:#f8f8f8"><span style="color:#333333">df4 = df3[(df3.是否到期90天 == 1)]
fn3 = df4.groupby('賬單季度')[['未收金額2']].sum()
fn3.columns = ['目前逾期90+金額']
fn3
</span></span>
顯示結果 目前逾期90+金額 |
賬單季度 |
2017Q3 | 63883.0 |
2017Q4 | 57380.0 |
2018Q1 | 64283.0 |
2018Q2 | 106930.0 |
2018Q3 | 412920.1 |
2018Q4 | 304183.0 |
<span style="background-color:#f8f8f8"><span style="color:#333333">dfs = [fn1,fn2,fn3]
final1 = pd.concat(dfs,axis=1)
final1
</span></span>
顯示結果 賬單金額 | 到期金額 | 目前逾期90+金額 |
賬單季度 |
2017Q3 | 8247952.62 | 8247952.62 | 63883.0 |
2017Q4 | 11643604.99 | 11643604.99 | 57380.0 |
2018Q1 | 17149674.79 | 17149674.79 | 64283.0 |
2018Q2 | 31097661.29 | 31097661.29 | 106930.0 |
2018Q3 | 38292071.12 | 38292071.12 | 412920.1 |
2018Q4 | 51963089.64 | 28265677.59 | 304183.0 |
<span style="background-color:#f8f8f8"><span style="color:#333333">final1['90+淨壞賬率'] = round(final1['目前逾期90+金額'] / final1.到期金額,3)
final1
</span></span>
顯示結果 賬單金額 | 到期金額 | 目前逾期90+金額 | 90+淨壞賬率 |
賬單季度 |
2017Q3 | 8247952.62 | 8247952.62 | 63883.0 | 0.008 |
2017Q4 | 11643604.99 | 11643604.99 | 57380.0 | 0.005 |
2018Q1 | 17149674.79 | 17149674.79 | 64283.0 | 0.004 |
2018Q2 | 31097661.29 | 31097661.29 | 106930.0 | 0.003 |
2018Q3 | 38292071.12 | 38292071.12 | 412920.1 | 0.011 |
2018Q4 | 51963089.64 | 28265677.59 | 304183.0 | 0.011 |
<span style="background-color:#f8f8f8"><span style="color:#333333">bar = (
Bar()
.add_xaxis(list(final1.index.values.astype(str)))
.add_yaxis(
"賬單金額",
list(final1.賬單金額),
yaxis_index=0,
color="#5793f3",
)
.set_global_opts(
title_opts=opts.TitleOpts(title="90+淨壞賬率"),
)
.extend_axis(
yaxis=opts.AxisOpts(
name="90+淨壞賬率",
type_="value",
min_=0,
max_=0.014,
position="right",
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(color="#d14a61")
),
axislabel_opts=opts.LabelOpts(formatter="{value}"),
)
)
)
line = (
Line()
.add_xaxis(list(final1.index.values.astype(str)))
.add_yaxis(
"90+淨壞賬率",
list(final1['90+淨壞賬率']),
yaxis_index=1,
color="#675bba",
label_opts=opts.LabelOpts(is_show=False),
)
)
bar.overlap(line).render_notebook()
</span></span>
顯示結果
- 計算每個季度的60天賬單入催金額,90天賬單入催金額
<span style="background-color:#f8f8f8"><span style="color:#333333">#60天賬期的賬單金額
df4 = df3[(df3.賬期 == 60)&(df3.是否到期 == 1)]
fn1 = df4.groupby('賬單季度')[['賬單金額']].sum()
fn1.columns = ['60天賬期的賬單金額']
#60天賬期的入催金額
df4 = df3[(df3.賬期 == 60)&(df3.是否到期 == 1)&(df3.曆史逾期天數>0)]
fn2 = df4.groupby('賬單季度')[['未收金額2']].sum()
fn2.columns = ['60天賬期的入催金額']
#90天賬期的賬單金額
df4 = df3[(df3.賬期 == 90)&(df3.是否到期 == 1)]
fn3 = df4.groupby('賬單季度')[['賬單金額']].sum()
fn3.columns = ['90天賬期的賬單金額']
#90天賬期的入催金額
df4 = df3[(df3.賬期 == 90)&(df3.是否到期 == 1)&(df3.曆史逾期天數>0)]
fn4 = df4.groupby('賬單季度')[['未收金額2']].sum()
fn4.columns = ['90天賬期的入催金額']
</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">dfs = [fn1,fn2,fn3,fn4]
final2 = pd.concat(dfs,axis=1)
# final2 = fn1.merge(fn2,on='賬單季度').merge(fn3,on='賬單季度',how='left').merge(fn4,on='賬單季度')
final2['60天賬期入催率'] = round(final2['60天賬期的入催金額'] / final2['60天賬期的賬單金額'],3)
final2['90天賬期入催率'] = round(final2['90天賬期的入催金額']/final2['90天賬期的賬單金額'],3)
final2
</span></span>
顯示結果 60天賬期的賬單金額 | 60天賬期的入催金額 | 90天賬期的賬單金額 | 90天賬期的入催金額 | 60天賬期入催率 | 90天賬期入催率 |
賬單季度 |
2017Q3 | 4854770.94 | 36983.0 | 2769264.0 | 1900.0 | 0.008 | 0.001 |
2017Q4 | 6737327.99 | 52750.0 | 3921491.0 | 0.0 | 0.008 | 0.000 |
2018Q1 | 12106356.79 | 62460.0 | 4244304.0 | 800.0 | 0.005 | 0.000 |
2018Q2 | 19234086.87 | 13590.0 | 8427775.0 | 0.0 | 0.001 | 0.000 |
2018Q3 | 22830710.42 | 380265.1 | 9835629.0 | 8235.0 | 0.017 | 0.001 |
2018Q4 | 26337959.52 | 584789.5 | 17706430.0 | 325141.0 | 0.022 | 0.018 |
<span style="background-color:#f8f8f8"><span style="color:#333333">line = (
Line()
.add_xaxis(list(final1.index.values.astype(str)))
.add_yaxis(
"60天賬期入催率",
list(final2['60天賬期入催率']),
yaxis_index=0,
color="#675bba",
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="不同賬期入催率"),
)
.add_xaxis(list(final1.index.values.astype(str)))
.add_yaxis(
"90天賬期入催率",
list(final2['90天賬期入催率']),
yaxis_index=0,
color="#d14a61",
label_opts=opts.LabelOpts(is_show=False),
)
)
line.render_notebook()
</span></span>
顯示結果
<span style="background-color:#f8f8f8"><span style="color:#333333">df6 = df3[(df3.未收金額2 == 0)&(df3.是否到期 == 1)].copy()
#使用cut,講資料按照逾期天數分箱,然後添加分箱之後結果标簽
df6['曆史逾期天數'] = pd.cut(df6['曆史逾期天數'],bins=[-999,0,5,10,15,20,30,60,90,999],right=True,
labels=['0','1-5','6-10','11-15','16-20','21-30','31-60','61-90','91+'])
final3 = df6.groupby('曆史逾期天數')[['賬期']].count()
final3.columns = ['回收賬單數']
final3
</span></span>
顯示結果 回收賬單數 |
曆史逾期天數 |
2400 |
1-5 | 358 |
6-10 | 235 |
11-15 | 215 |
16-20 | 92 |
21-30 | 189 |
31-60 | 156 |
61-90 | 60 |
91+ | 88 |
<span style="background-color:#f8f8f8"><span style="color:#333333">ydata = final3['回收賬單數'].values.tolist()
bar = (
Bar()
.add_xaxis(list(final3.index.values.tolist()))
.add_yaxis("收回賬單數",ydata,yaxis_index=0,color="#675bba")
.set_global_opts(
title_opts=opts.TitleOpts(title="不同逾期天數的已收回賬單數"),
)
)
bar.render_notebook()
</span></span>
顯示結果
4.3 業務解讀
- 從資料中看出,在2018年Q2季度之前,營運政策比較保守,壞賬金額和入催率都比較低,
- 2018年Q2之後,有可能是由于營運政策調整,給更多的人放貸,但壞賬率和入催率均在3%一下,在合理範圍内
- 不同逾期天數收回賬單的資料看,30天内能收回絕大部分賬單
小結
- 知道常見信貸風險
- 知道機器學習風控模型的優勢
- 批量,迅速,準确,同時處理大量貸款請求
- 在零售信貸業務場景下,與人工稽核相比優勢顯著
- 知道信貸領域常用術語含義
- DPD 逾期天數
- FPD 首次逾期天數
- bad rate 壞賬率
- M1 逾期一個月以内