度小滿嚴澄:數據科學與金融風控模型

来源:https://www.cnblogs.com/datafuntalk/archive/2022/04/26/16195852.html
-Advertisement-
Play Games

導讀: 眾所周知,信息時代下的數據就是能源,就是生產力。但是面對海量、紛繁的數據,特別是在金融領域,如何充分地利用數據是核心問題。本次分享主要想和大家一起探討下,在金融風控場景下,如何通過數據對齊模型和業務目標,哪些數據、方法可以應用於風控模型,通過哪些指標可以正確地評估模型效果,以及最終如何用數據 ...


file


導讀: 眾所周知,信息時代下的數據就是能源,就是生產力。但是面對海量、紛繁的數據,特別是在金融領域,如何充分地利用數據是核心問題。本次分享主要想和大家一起探討下,在金融風控場景下,如何通過數據對齊模型和業務目標,哪些數據、方法可以應用於風控模型,通過哪些指標可以正確地評估模型效果,以及最終如何用數據科學解釋模型結果。今天的介紹會圍繞下麵四點展開:

  • 科學定義數據
  • 科學應用數據
  • 科學評估數據
  • 科學解釋數據

--

01 科學定義數據

1. 金融風險管理

file

信貸業務本質是儲蓄轉化為投資的一種形式。類比於其他的互聯網業務,電商平臺的推薦系統實現的是客戶和商品需求之間的精準匹配,廣告平臺的投放系統實現的是客戶和潛在興趣之間的精準匹配,互聯網信貸業務的風險管理目標就是實現資金供給方和資金需求方的精準風險匹配。在風險匹配的兩端,資金供給方期望的風險目標是明確的,所以風險管理的核心是預測資金需求方的風險,從而進行精準匹配。接下來我們講講風險定義以及如何科學地預測風險。

2. 科學定義數據

file

在信貸行業內,對風險最常見的定義是年化風險,即年化不良金額除以年化餘額。 這是因為簡化收益大多是按照年化定價 - 年化風險 - 年化資金成本來計算的。一整包資產的年化風險受很多因素影響:逾期的用戶分佈,逾期的金額分佈,放款的久期分佈。雖然年化風險從業務上來看是個非常直觀的指標,但如果要直接預測年化風險則是非常困難的。從更易實現的角度來看,預測逾期的用戶分佈會更直接而簡單。

假設有一個模型可以較好地預測人數逾期率,那麼我們怎麼與年化風險目標掛鉤呢?即模型的目標如何與業務的目標對應。在真實的業務場景中,我們很容易發現,資產的年化風險與人數逾期率(MOB12)的比值是一個在1附近的數值。對於這個數值的解讀,即當年化風險除以人數逾期率顯著大於1時,意味著整體額度過高,尤其是風險相對低的客戶的風險敞口沒有控制好;當年化風險與人數逾期率接近時,意味著額度和風險匹配得比較好;而當年化風險除以人數逾期率顯著小於1時,意味著整體的額度策略過於保守,雖然從風險角度講是好事,但從業務視角看其實是制約了整體的餘額規模。經過一定量的迭代以後,往往都會使得年化風險和人數逾期率之間的關係趨近於1。這時候如果人數逾期率預測得足夠準確,那麼意味著年化風險預測就會很容易。

file

在前面的定義中提到了“逾期”的概念,那麼如何定義逾期,以及如何定義用戶的“好”“壞”呢?

逾期本身是一個隨時間變化的狀態量, 比如在約定還款的15天內都沒有還款,而在第16天成功還款,那麼在前15天是逾期的,而第16天之後則不是逾期狀態。顯然,逾期的時間越長越壞,最終逾期的概率越高。如何選擇一個合適的時間尺度去定義一個用戶是逾期的“壞”用戶?在實際操作中,我們往往通過觀察逾期N天後到最終逾期180天以上的概率。比如說當這個概率已經大於90%時,我們就可以認為這個N已經是一個很好的時間刻度了。在實際業務中,我們一般取N=30。

同樣的,對於“好”的定義,一樣有一個時間問題。顯然,觀察越長時間沒有逾期發生,用戶“好”的概率越高。然而對於用戶的觀察時間越長,會導致可用於學習的樣本量越少(尤其是新發展的業務本身數據就很少),並且樣本都是過去很久以前的數據(這在內外環境快速變化的情況下影響更大)。

那麼如何設定一個合適的觀察時間窗呢?通過右側的vintage曲線圖,我們可以看到,隨著時間的推移,不斷有新的用戶發生逾期,但新逾期發生的增速在緩慢地下降(斜率在變小)。理想情況下,我們希望找到斜率為0的那個時間點作為觀察視窗;而在實際操作中,我們往往根據業務的發展階段和vintage曲線的斜率變化來決策觀察視窗。在我們的實際業務中,一般取MOB=12作為中長期的風險表現觀察視窗。

--

02 科學應用數據

file

當有了樣本和模型的目標以後,接下來看哪些特征數據可以應用於風控模型。從整個金融視角來看,可用數據類型有以下幾類:

  • 徵信報告:用戶歷史信用記錄
  • 互聯網數據:用戶在互聯網上的各種數據
  • 第三方金融科技公司的合規數據
  • 用戶在自身產品下的行為數據

從三個視角來描述用戶:

  • 基本屬性畫像:描述用戶的基本屬性畫像,如年齡、性別、婚姻、職業、文化水平、興趣愛好、人生階段、常駐地等(通過各種機器學習、NLP等演算法預測);
  • 行為序列:用戶在一段時間內的行為,總是有很強的相關性。尤其在信貸場景下,行為序列很好地反映了用戶的需求(通過各種RNNs做序列建模);
  • 社交關係:物以類聚,人以群分。比如通過用戶周圍人的收入及消費能力,例如同小區的人或者同事,可以一定程度從側面反映用戶的資產能力(通過各種GNNs做關聯網路的建模)。

以下是一些簡單的模型、特征設計示例,由於我們今天主要討論數據科學,就不詳細展開了。

file

  • 文本類數據:利用Attention網路提取大量文本的核心數據;
  • 時序類數據:利用大量借還款行為做RNNs模型預測用戶未來風險;
  • 關聯類數據:1)分群演算法:群屬性作為特征;2)基於深度圖捲積網路,充分利用相鄰節點的信息。

file

回顧之前關於選擇觀察期視窗的vintage圖表。如上圖紅框中所示,可以看到很多月份的曲線斜率突然大幅上揚。按時間去對應的話,就會發現這段時間正是2020年初新冠疫情爆發的時間。疫情的爆發導致逾期率大幅上漲,而對疫情的影響我們沒有任何歷史經驗,也就是說歷史學習到的特征X(用戶屬性)與目標Y(逾期率)之間的關係已經不適用在疫情場景下了。於是針對當下,我們需要考慮三個問題:

  • 疫情影響是否結束?這涉及到我們該選擇什麼樣的X—Y關係用於建模和預測。
  • 疫情影響了哪些樣本?疫情顯然是特殊場景,不應該和正常環境下的數據混合在一起。
  • 如何利用疫情下的樣本?

疫情持續反覆,但影響在不斷減弱,我們主要探討下麵兩個問題。

file

找出受疫情影響的用戶,可以把客戶分成以下兩種:

  • 表現期不在疫情期間:包括正常用戶和自然逾期的用戶;即這些用戶是不受疫情影響的。
  • 表現期在受疫情影響期間:包括正常用戶和逾期用戶,而逾期用戶里必然有自然逾期和受疫情影響而逾期的用戶。

我們將表現期不在疫情期間逾期的用戶標識為0,將表現期在受疫情期間的逾期用戶標識為1,基於二分類模型進行訓練。經過模型訓練以後,那些預測高概率為1的用戶就是那些受疫情影響而逾期的用戶,而那些預測高概率為0的用戶就是不管有沒有疫情都大概率會逾期的客戶。這樣,我們設定一個閾值,就可以將大部分受疫情影響而逾期的用戶找出來。

file

另一種方法是通過EM迭代進行識別。如上圖所示,我們按照授信月的各個MOB是否在疫情發生時期來對逾期客戶標記顏色。藍色:自然逾期;紅色:在疫情期間內逾期。

通過每一輪的EM迭代,我們可以將紅色分佈裡面近似於藍色分佈的部分逐漸找出來並加入到藍色區塊內。當整體的風險水平接近疫情前時停止,那麼依然留在紅色區域內的逾期用戶就是受疫情影響而逾期的用戶了。

file

通過以上兩種方法過濾後,我們再觀察下隨時間的逾期率變化。從上圖可以看到,原先逾期30天以上的曲線在疫情發生期間是大幅上揚的,但過濾後整個線就比較平了。

--

03 科學評估數據

file

接下來講一下如何科學準確地評估模型的效果。

風險模型最核心的指標就是排序指標KS。KS值可以很好地度量一個集合內好壞用戶的排序分佈。一個常見的情形是,離線評測模型的KS值很高,但是等到上線應用後,模型的KS很快就大幅“衰減”了,而且很多時候都是離線提升的越多,線上衰減越大。那麼是模型出問題了嗎?這裡其實有個觀察的誤區,所謂的“衰減”是指在不同時期的不同用戶集合上的KS值比較,而實際上不同集合間的KS絕對值是沒有比較意義的。

舉一個簡單的例子,某一場考試預測排名,試想對全校去年成績前50的學生進行排序預測容易還是對任意一個班的學生預測排序容易,顯然對後者的預測必然會更準確一些。上圖中右邊部分描述模型上線後KS“衰減”的原因。新模型V2的排序能力高於V1,它可以將V1授信通過的用戶中更多的壞用戶排到靠後。當V2上線後,V2高準確度識別的類似壞用戶無法通過了(也就是只剩下全校排名靠前的學生了),因此對V2決策通過的用戶算KS自然就下降了。上圖中,只有KS2與KS1、KS3與KS4是有比較意義的。

模型穩定性是另一個關鍵因素。分佈穩定性最基礎的指標是PSI,只有預測分數分佈是穩定的,這樣才有信心可以基於歷史數據去預測未來的風險;性能穩定性則是指,要保證預測分數區間對應的真實風險是相對穩定的,比如600-650分之間對應的逾期風險是1%,那麼我們希望在所有月份上真實風險都能穩定在1%的水平附近。

而在策略對模型的實際應用中, 核心則是基於Swap in & out的分析。通過分段交叉的矩陣,考量在人數相同的情況下,新模型的整體逾期率是否顯著低於舊模型;而在相同逾期率的水平下,新模型的通過率提升多少,可以提升整體規模多少。

file

那些被拒絕掉的用戶,是沒有風險表現的,只有那些最終通過且發生信貸行為的用戶才有風險表現。試想,用於學習的樣本都是歷代模型認為較好的客戶,隨著模型不斷迭代,模型學習的樣本向好用戶收斂,樣本的特征空間就越來越窄了。常見的一種方式是引入拒絕推斷,給拒絕的用戶賦予label,讓其參與到模型訓練里。上圖介紹了一種做拒絕推斷的方法。

給拒絕的用戶按照模型1給出的打分,比如某個用戶模型1的分數是0.2(逾期率20%),那麼將這個用戶的樣本複製10份,其中8份樣本的label設成0,2份設置成1。這樣10份樣本特征一樣,但整體label為1的比例就是20%。當然也可以不複製樣本,很多模型都支持設置樣本權重。通過這種方式增加了X取值的多樣性,可以一定程度提升模型的適用性。

file

客戶分群的方法有很多,上圖展示了一種劃分方法:最頂層先考慮實際的借款用途,區分為小微和消費;然後基於客戶的活躍程度進一步劃分成活躍和非活躍;最後再根據如行業或者行為上的差異進一步細分客群。細分客群的核心思想是,不同客群之間存在明顯的差異性,一種是特征上的差異,一種是風險表現上的差異。這種情況下,細分客群建模,可以讓每個模型充分學習自身樣本的信息,而不是從全局上平均化地去擬合。但是,如果尋找不到顯著的差異,特別是樣本總量還不是很充足的時候,分客群不是一個好的選擇。

--

04 科學解釋數據

file

最後講一下如何解釋模型結果。

  • V1:邏輯回歸模型:優點——可解釋強。缺點——特征數量少,模型簡單,對特征的質量要求非常高,預測的能力相對較弱。
  • V2:決策樹模型:優點——避免大量特征工程,模型效果較好。缺點——特征多,且特征之間是非線性關係,難以解釋。
  • V3: 兩層模型:把成千上萬的變數基於數據源,通過各種機器學習、深度學習的演算法構建子模型,然後把這些子分作為上層LR或淺層XGB模型的輸入,完成最終的模型。優點是在頂層模型上解釋性很好,子分與結果具有一定線性關係,可以快速定位子分的問題,非常便於排查問題。

今天的分享就到這裡,謝謝大家。
本文首發於微信公眾號“DataFunTalk”,歡迎轉載分享。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 作者:血夜之末 來源:www.cnblogs.com/Tiancheng-Duan/p/16002433.html 一、背景 一轉眼,又到了金三銀四的跳槽 & 求職季。 在 IT 行業,跳槽就離不開一個詞,那就是外包。 可以說,每一位 IT 人都接觸過外包,甚至參與其中。而多數IT職場萌新,都面臨著 ...
  • 在開發過程中經常需要在程式中嵌入瀏覽器控制項用於訪問網頁,Visual Studio中自帶了一個webbrowser控制項,但無奈這個控制項是調用用戶電腦上的IE瀏覽器來實現的,如果用戶裝的是低版本IE(比如Win7的IE8)很多新的網頁標準就無法得到支持,這時使用CefSharp來替代webbrowse... ...
  • Linux 下的 Docker 安裝與使用 一、安裝與配置 1.安裝依賴包 1 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.設置阿裡雲鏡像源 1 sudo yum-config-manager --add-re ...
  • 本文例子參考《STM32單片機開發實例——基於Proteus虛擬模擬與HAL/LL庫》 源代碼:https://github.com/LanLinnet/STM33F103R6 項目要求 按下按鈕控制LED燈的亮滅。 硬體設計 在第一節的基礎上,在Proteus中添加電路如下圖所示。 打開CubeM ...
  • win10系統不知道哪天開始,打不開組策略,區域網共用印表機也搜索不到,運行輸入gpedit.msc,就提示下圖: 百度了一大推解決方法,不是改防火牆就是win10安裝包重置系統,都沒有解決問題,最後終於找到瞭解決辦法: 因為mmc.exe不能運行,運行視窗直接輸入gpedit.msc是打不開組策略 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 一、版本說明 JetPack 4.6——2021.8 yolov5-v6.0版本 使用的為yolov5的yolov5n.pt,並利用tensorrtx進行加速推理,在調用攝像頭實時檢測可以達到FPS=25。 二、配置CUDA sudo gedit ...
  • 本文例子參考《STM32單片機開發實例——基於Proteus虛擬模擬與HAL/LL庫》 源代碼:https://github.com/LanLinnet/STM33F103R6 項目要求 STM32單片機控制單個LED燈亮滅,在PC0引腳控制LED燈以1s為周期閃爍。 硬體設計 在上一節的基礎上,在 ...
  • 1 緩存穿透 問題描述 緩存穿透是指查詢一個一定不存在的數據,由於緩存是不命中時需要從資料庫查詢,查不到數據則不寫入緩存,這將導致這個不存在的數據每次請求都要到資料庫去查詢,進而給資料庫帶來壓力。 解決方案 緩存空值,即對於不存在的數據,在緩存中放置一個空對象(註意,設置過期時間) 2 緩存擊穿 問 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...