日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习在金融风控实践经验

發布時間:2023/12/15 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习在金融风控实践经验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于金融風控場景的特殊性,很多算法同學在剛進入這個領域容易“水土不服”,為了使機器學習項目(也包括圖算法相關的應用)落地更加順利,本文介紹下實踐過程的一些經驗和踩過的坑。

金融風控場景的特殊性

與電商、廣告等場景的風控不同,金融風控有關“錢”的安全,決定了公司的營收甚至是公司的生命線。例如360金融月放款200億,如果違約率上升1個點,損失有多大?當然反過來如果風控做得好,違約率稍微下降一些,大家就可以開心過個好年了:)此外,風險具有滯后性,用戶借款后至少要一個月才能知道是否會違約,甚至很多用戶在還了半年甚至一年之后才違約。再者,線上獲客成本比較高,成本低則百元,高的甚至超過千元,為了提高轉化,授信、申請、審核等環節一般都是實時的。

由于這樣的特殊性,在Kaggle比賽、推薦等領域中大發光彩的機器學習算法,卻容易在金融風控場景中水土不服。道理很簡單,不是算法不夠強大,而是沒有抓住金融風控的核心:可解釋性、穩定性:因為是有關“錢”的安全,風控建模是比較嚴謹的,保證模型在可掌控、可理解范圍內,包括如何評估數據、如何設計模型、如何進行特征工程以及后續模型開發和監控都有一套體系框架;而由于風險滯后性,模型上線后會運行很長時間,故對模型穩定性的要求其實要高于預測能力。

如何減少水土不服呢?下面筆者從數據質量評估、模型設計、特征工程、線上監控環節介紹下在金融風控場景實踐的一些經驗和踩過的坑。

一、數據質量評估:數據是萬坑之源

模型不穩定,效果不好,絕大多數是數據質量的問題,而在金融風控場景表現得更為突出,一方面因為要回溯歷史很長時間的數據,另外是因為風控流程比較復雜,模型實時性等特征。

1. 線上線下一致性評估

模型離線訓練過程應保證與線上應用場景一致,從而使訓練的模型具有代表性,這其實是機器學習的問題,但在金融風控場景上不一致這個坑很深又有迷惑性,體會較深,非常痛的領悟。

數據回溯的坑

由于數據存儲/更新方式等原因,歷史數據無法被回溯,直接使用當前數據建模,發生數據穿越,容易造成模型不穩定,效果不達預期。
這個問題在風控場景會受到更多的關注,一方面原因是時間太久了,相比用戶半年甚至一年前借款時的狀態,當前狀態很有可能發生變化;另一方面是一些老賴在借款后會主動刪除資料甚至銷號以逃避債務。
故在建模前需要確認數據是否可回溯,重要的數據在存儲時因考慮這個問題。

那不可回溯的特征都不能用了嗎? 如果特征比較重要,且可以構造出穩定的特征,可以評估其帶來的增益及風險,讓老板/業務方拍板。

不熟悉業務的坑

信貸風控流程每個環節的數據是不同的。比如考慮用戶體驗提高轉化,在授信環節無需提交資料,在用戶申請時又需要用戶提交較多的資料;又如考慮成本問題,在審批時先用自有數據篩選出一批用戶,然后再調用第三方數據進一步篩選。
如果建模時使用了后面環節才會有數據,也會造成不一致問題,故提前溝通需求,了解風控業務流程很重要的:)

計算邏輯的坑

當好不容易完成模型開發,評審通過,準備上線時,才發現還又更深的坑在前面。
一般實時和離線存儲和計算是兩套邏輯,如果是不同團隊負責,容易造成不一致,例如對手機號清洗的正則不同,又比如實時取數和離線取數的邏輯不同。
之前某次模型開發,使用了數倉團隊開發的的特征庫建模,結果模型上線驗證時發現不一致,排查很久發現是取數邏輯不一致,無法修復,實在太心酸了。
后面我們開發了統一存儲和計算引擎,模型上線周期從月為單位降低到周為單位,極大提高了生產力。

2.其他評估項

數據時間項檢查

分析數據起止時間、中間時段是否有缺失、是否有異常等現象,從而評估數據可用性。

主鍵是否唯一

過往每一家公司都遭遇過這種情況:離線數據可能存儲時存在重復插入的現象,導致主鍵不唯一,導致計算“求和”、“次數”等指標會出錯。實際為避免這種情況,習慣使用count(distinct key)替代count(key),或事先通過group by 去重。

缺失值/異常值處理

不同數據源可能缺失值填充方式不同,需要統一標識;另外在風控場景往往需要考慮缺失或異常值背后的原因是什么,因為可能和風險相關。

二、模型設計:如何讓你的模型更貼近業務

風險管理的本質不是杜絕壞賬,而是追求利潤最大化,但這個目標比較難衡量和優化,一般是用通過率壞賬率這兩個量化指標來替代。
在信貸產品不同生命周期中,業務對模型的要求是不同的:新產品剛上線時希望能整體提升模型性能;而在放量階段允許壞賬有一定升到而盡可能提高通過率;在存量用戶則可能降低壞賬為主要目標。

模型怎么設計滿足上述目標呢?一方面是特征工程的側重性,挖掘的特征是更偏信用還是欺詐,另一方面則是模型設計上下功夫,下面來介紹下信貸風控模型如何設計,包括好壞用戶如何定義、模型選型以及模型效果評價

1. 好壞用戶定義

如何定義好壞用戶其實是有“套路的”,首先介紹下圖的時間軸中的三個術語:觀察點、表現期、觀察期

  • 觀察點:用于構建樣本集的時間點,不同環節定義不同,比較抽象,這里舉例說明:如果是申請模型,觀察點定義為用戶申貸時間,取19年1-12月所有的申貸訂單作為構建樣本集;如果是貸中行為模型,觀察點定義為某個具體日期,如取19年6月15日在貸、沒有發生逾期的申貸訂單構建樣本集。
  • 表現期:定義好壞標簽Y的時間窗口,信貸風險具有天然的滯后性,因為用戶借款后一個月(第一期)才開始還錢,有得可能還了好幾期才發生逾期。
  • 觀察期:構造特征的相對時間窗口,例如用戶申請訂單前12個月平均消費金額。設定觀察期是為了每個樣本的特征對齊,長度一般根據數據厚度決定。

所以我們只要定義表現期長度、逾期天數,例如前三期逾期15+為壞用戶;前三期未發生逾期的為好用戶。
那這兩個這么定義呢?發生過逾期就是壞用戶嗎? 逾期可能是多方面的,可能只是忘還了,從“利潤最大化”的角度,這部分人其實是好人,因為適當逾期其實可以增加公司的營收,接下來引入兩個工具:賬齡分析和滾動率分析。

賬齡分析:定義表現期

一般通過賬齡分析或者Vintage分析目標用戶的“違約成熟度長度”來定義表現期。
具體方法是將不同時期申貸的用戶按“貸款時長”進行對齊,即觀察用戶還款多少期后,其違約率開始穩定,不會出現較大的變化/轉移。由下圖可以看出,可以將表現期定義為15期/20期。

滾動率分析:定義逾期天數

逾期超過多少天定義為’壞用戶‘是合理的呢?對業務而言適當的逾期有助于提高收入的增長,一般可以通過“滾動率”來分析定義壞用戶。
如下圖所示:逾期1天的用戶中有50%會償還債務,剩余50%保持原有逾期狀態,逾期2天的用戶有25%會催收回來,而逾期7天后趨向穩定狀態,有95%以上的用戶不會償還債務,則可以定義逾期7+為壞用戶,更精細化的化可以結合催收策略及收益來定義。

?

樣本劃分

由于用戶隨時間變化比較大,信貸模型一般是按時間來切分樣本:

  • 首先按時間將分成訓練-驗證集和測試集(Out of Time,OOT)
  • 然后將訓練-驗證集隨機劃分成訓練集(In the Sample, INS)和驗證集(Out of Sample,OOS)
  • 通過INS訓練模型,OOS調參,最終以OOT的效果為準,同時要保證這三個數據集的KS相差不大。

行業通用模型的樣本如何設計

在乙方由于需要服務于不同場景的客戶,如互金、銀行、消費金融等,樣本來源也多樣化,需要設計一套基準來篩選樣本,使構建的模型具有通用性并且效果達到預期,主要基于下面幾個點:

1. 特殊樣本處理:特殊月份單獨拿出來作為測試集/單獨建模模型,如暴雷潮、疫情期間的樣本。

2. 時效性:篩選樣本的時候,樣本的發生日期不宜過早(比如近2年內),各月份樣本量相對均衡,且確保有足夠的表現期。

3. 代表性:樣本需要來自穩定合規的業務,能反應所在細分市場主流的業務場景,另外避開單一地域限制,剔除局部地域業務為主的合作方樣本。

4. 穩定性:各合作方的樣本在各省份上的樣本量分布與真實人口分布一致;各合作方在各月份的壞樣率要相對穩定。

5. 樣本相對均衡:不同業務場景的樣本量要相對均衡,如消金、銀行、現金貸場景的樣本量要相當。

2.模型選型:LR真的很差勁嗎

剛接觸金融風控時,感覺評分卡用LR太Low,機器學習可以拳打南山猛虎。但評分卡其實從60年代開始至今是依然主流的風控建模方法,存在即合理,因為評分卡是一套標準的建模流程,而不僅僅是LR。由于評分卡使用的模型LR因為是線性的,可解釋性性較強,不過也需要在用戶分群、特征分箱轉換等方面需要耗費較大的精力以增加擬合能力。

而機器學習模型如XGBoost性能較強大,據對比一般KS能比LR高2-3個點,那機器學習如何嵌入到評分卡中呢? 一般有兩種方案:

1. 僅在建模環節使用機器學習模型替代LR,這樣一來就不用進行繁瑣的用戶分群、特征分箱轉換等步驟,但是整個評分卡框架不變,包括樣本定義、特征分析、模型設計、模型分析等

2. 機器學習用于構造特征,如embedding, 這個在下面特征工程模塊具體展開。

具體不展開細講,不是本文重點。

3.效果評估:KS表是與業務溝通效果最好的方式

業務目標是幫助業務達到預期,如模型上線后,壞賬率降低多少,通過率提升多少。而模型目標一般用KS來衡量,或者更關注預測概率前10%人群的壞賬率,根據不同目標去設計評價函數,此外也關注模型在未來很長時間內的的穩定性,用PSI來衡量。這里想說的是光看KS數值是不夠的,還需要分析KS表,這是與業務溝通效果最好的方式,下面介紹下KS表主要的組成及badcase:

  • Rank:將模型預測的用戶違約概率進行排序,并等分成k組,(k根據樣本規模一般取5、10、20)
  • #Total:每一組用戶總數
  • #Bad:每一組壞用戶本數量
  • %Total_bad:每一組壞用戶在所有壞用戶中占比
  • Cum_%_Total_BadCum_%_Total_Good:累積好壞用戶占比
  • K-S:每一組的KS=|Cum_%_Total_Bad-Cum_%_Total_Good|,模型的KS值=每一組KS的最大值。

從上表中可以看出KS=0.28,具有一定區分性。但繼續分析,發現**%Total_bad并不保序**,違反了“預測風險越高,其壞賬率也越高”的假設,所以這個模型打回重做:)

KS表還有哪些比較有價值的信息呢? 例如可以看預測風險最高一組是否可以直接拒絕,又如看預測風險最低一組決策進行決策是否可以審批通過。

三、特征工程

特征衍生的方法是比較通用的,本章主要介紹實踐中一點經驗之談。

1.特征上線成本與項目周期的平衡

項目管理意識在金融風控場景是比較重要的,晚一天上線模型,對業務來說是多損失一天的錢,故需要評估特征是否已上線、新上線特征的時間成本、計算成本等因素,以保證項目進度。

2.特征篩選策略

  • 強規則、調整頻繁的規則對應特征不用:模型不穩定會受規則調整影響
  • 穩定性差的特征不用(根據psi計算):一般PSI超過10%的特征,考慮不入模,如果不穩定的特征效果很好,考慮用于規則,這樣從特征層面保證模型的穩定性。
  • 特征數量不宜過多,根據top特征的數量與效果的趨勢來卡閾值,減少上線成本。
  • 無法解釋的特征不用,如隨著特征取值增加,風險程度不是隨之增高,而是呈U字型,如果無法合理解釋,剔除這類特征。

3.Embedding特征如何使用?

  • 首先需要確保embedding的特征觀察期長度相同、未發生數據穿越。
  • 其次看效果,加入embedding特征后的增量及穩定性。
  • 最后應用時一般單獨訓練一個子模型,子模型的分數作為主模型的輸入特征,這種方式相當于在”性能“和”可解釋性“上做了折中,并且方便管理和維護。

四、線上監控:只是剛剛開始

因為模型要長期運行,線上監控非常重要,主動發現問題,和被業務找上門來是有很大差別的,此外通過監控可以評估模型是否需要迭代。

1.穩定性監控

穩定性主要是通過監控模型分數psi、重要特征的psi以及特征缺失比例的變化(線上故障一般會造成某些特征缺失比例特別大)。

PSI中計算預期分布怎么計算?一般是以OOT樣本對應的時間窗下所有申請用戶進行計算, 因為模型上線后是對所有的申請用戶進行決策。

?

PSI過高,代表模型不穩定了嗎? 一般PSI小于5%說明模型比較穩定,如果超過了10%甚至20%,需要排查原因,有可能是業務拉新導致大量新客群進入,需要及時和業務溝通確定;如果模型PSI持續升高,就需要提前計劃迭代了。

?

2.模型效果監控

模型上線后,線上KS效果比離線差怎么辦?不要慌,模型上線后一般不看KS,而是通過觀察逾期率和通過率是否改善了業務。因為模型進入決策,攔掉了較壞的那群人,效果肯定會下降一般保證線上ks在0.2左右,且保序即可。

五、寫在最后

把握住金融風控的核心,后續機器學習相關應用落地會更順利,包括但不限于如何設計金融風險圖譜進行反欺詐、遷移學習如何解決違約樣本獲取成本較大的問題、如何用深度學習生成行為序列、風險文本相關的Embedding等等。

?

?

總結

以上是生活随笔為你收集整理的机器学习在金融风控实践经验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。