FacebookTwitterLineHatena

文 | 傅一平

源 | 與數據同行

無論是金融、互聯網企業亦或運營商,都在基於多年積累的大數據分析搭建個人徵信評分體系,不僅用於自身,也在提供給其他徵信機構做為個人信用評估標準。

筆者相信不同的信用分有不同的計算方法,無論是FICO評分、阿里的芝麻信用亦或其它信用分,這些評分既可以很簡單,也可以很複雜,使用的建模方法各不同,但也總是會遵循一些基本的原則,這裡筆者就信用分計算的一些關鍵技術作簡要介紹,希望於你有益。

一、業務分析

我們在構建信用評分的時候,首先當然要定義何謂信用高,何謂信用低的用戶,這是建模的起點,銀行會基於用戶的還貸歷史來確定高低信用用戶,但如果是第三方企業,則需要基於自身的業務特點定義出類似的高低信用用戶,即正負樣本,比如運營商可能會基於通信欠費來確定高低信用用戶的樣本,當然這也是遠遠不夠的,需要從更多的途徑獲取,比如可以免費獲取法院公示的老賴名單等。

二、變數初選

身份特徵、消費能力、信用歷史、行為偏好及人脈關係是當前業界評估信用的五個方面,很多信用評分體系都基於此而來,當然,不同行業由於數據不同,因此形成的具體明細指標肯定也有明顯的差異,比如針對身份特徵,可能選擇的具體指標包括婚姻、年齡、職業、性別等等,諸如運營商可以有幾十個指標來表徵身份特徵,五個方面的涉及的具體指標更是多達上百個,因此,關鍵的下一步就是如何刪選合適的變數。

三、特徵刪選

很多新手喜歡用越多的變數來建模,以為多多益善,其實不然,變數篩選的目在於去除對於模型預測準確提升無效甚至影響模型預測效果的無用變數, 比如兩個相關變數的同時存在往往會導致準確性下降。

特徵的選擇有很多方式,比如IV值的判斷,這裡以隨機森林來示例,隨機森林演算法能夠輸出每個變數對模型預測的重要性大小,重要性越大代表該變數對於提升模型預測準確度所做貢獻就越大,反之如果重要度值為負,就代表該變數加入會降低模型預測準確度,所以在該步驟直接選擇基於模型輸出結果來完成變數篩選,以下是示例:

數據建模:個人信用分是如何計算出來的?

經過隨機森林初步篩選,和變數預測探索分析,最終五個維度共輸入XX個變數分別進入模型訓練。

四、演算法選擇

一般會採用logistic分類演算法,在輸入數據形式的標準與線性回歸基本一致。在選擇邏輯回歸時,注意要進行數據預處理,最主要是兩點:

1、 離散變數啞變數處理。
離散變數不適用於線性分類模型中,建議轉化為0,1類變數,例如用戶行業欄位,存在8個類別(學生、工人、公務員…),經過啞變數轉化處理的話,該欄位轉化為8個變數:是否學生,是否工人,是否公務員……)。

2、 變數線性化處理。
對於線性分類演算法,指標與目標變數之間呈現線性關係,對於變數的預測效果會更好,但實際數據往往都是非線性表示,因此為提升模型預測效果,需要針對連續型且非單調性變數進行WOE處理,用WOE值替換指標值,以實現數據之間的線性關係。WOE計算公式為 WOE=ln(%good/%bad),其中%good表示違約用戶構成。%bad表示好樣本用戶構成。以資金欄位為例:

數據建模:個人信用分是如何計算出來的?

接下來就是用邏輯回歸進行模型訓練,從而獲得概率值。

五、評分卡轉換

1、評分卡刻度

那麼如何將概率值轉化為評分呢,其實怎麼算都可以,這裡採用評分卡轉換的方式,具體網上都有詳細解釋,這裡簡要講下,違約與正常比率被定義為一個記錄被劃分為違約的估計概率與被劃分為正常的估計概率之間的比率,將估計違約概率用p表示,估計正常概率為1-p。因此可定義發生比:

Odds=p/(1-p)

評分卡設定的分值刻度是可以將分值表示為比率(Odds)的線性表達式來定義。如下所示:

Score=A-B*log(Odds)

其中:A,B都為常數。其中A成為補償分數,B稱為刻度,它們可以通過兩個已知或者假設的分值代入計算得到,一是在某個特定比率設定特定的預期分值,二是指定比率翻番的分數(PDO)。

首先,設定比率y的特定點的分值為P0,然後,比率為2y的點的分值為P0+PDO,代入上式可以得到如下兩個等式:

P0=A-B*log(y)

P0+PDO=A-B*log(2y)

解上述兩方程中的常數A和B,可以得到:

B=PDO/log(2)

A=P0+B*log(y)

在這裡可以借鑒標準FICO信用分與違約率的定義,比如B=58,A=437,計算分數公式則為:

Score=437-58*log(Odds)

最終可以得到該模型的評分卡刻度情況最終結果,如下表所示:

數據建模:個人信用分是如何計算出來的?

2、分值分配

對於logistic回歸演算法,odds也可以表示為:

log(Odds)=B0+B1*X1+B2*X2+…+BnXn

由此可得:

Score=437-58*(B0+B1*X1+B2*X2+…+BnXn)

由於建模過程所有變數都有使用WOE轉換,因此可以將分值分配到每個變數取值上去,以下是示例:

數據建模:個人信用分是如何計算出來的?

這樣,我們就得到了用戶的信用各個變數取值的信用分值。

六、確定五個維度的權重

用戶的信用分總分是基於五個大維度綜合權重計算獲得的,當前每個大維度信用分(該維度涉及很多變數)已經可以通過前面計算得到,總信用分表達式如下:

Total_score=a1*score1+ a2*score2+ a3*score3+ a4*score4+ a5*score5。

網上公開的芝麻信用的五個大維度的最終權值是信用歷史(35%)、行為偏好(20%)、履約能力(25%)、身份特質(15%)及人脈關係(5%),各類信用評分體系權重肯定是不同的,因為有不同的約束條件,需要計算得到a1,a2,a3,a4,a5。

七、模型效果評估

信用評分模型主要從準確性,區分度等方面來進行評估。

1、準確性:感受性曲線下面積(ROC_AUC)是一個從整體上評價模型準確性的指標,是感受性曲線(ROC)與橫軸之間的面積。相比於其他評價指標,感受性曲線(ROC)具有一定的穩定性,它不會因為正負樣本分布的變化而產生不同的曲線。感受性曲線(ROC)通過真陽率(True Positive Rate, TPR)和假陽率(False Positive Rate, FPR)兩個指標進行繪製,感受性曲線(ROC)示意如圖1所示,感受性曲線下面積(ROC_AUC)取值範圍為[0,1],取值越大,代表模型整體準確性越好。

數據建模:個人信用分是如何計算出來的?

2、區分度:區分度指標(KS)是度量具體模型下正常樣本和違約樣本分布的最大差距,金融領域評估信用模型的一個核心方法,首先按照樣本的信用分數或預測違約率從小到大進行排序,然後計算每一個分數或違約率下好壞樣本的累計佔比,正常和違約樣本的累計佔比差值的最大值即為區分度指標(KS),區分度指標(KS)的示意如圖所示,區分度指標(KS)小於0.2代表模型準確性差,超過0.75則代表模型準確性高。

數據建模:個人信用分是如何計算出來的?

可以看到,信用分的計算過程藉助了一般的數據建模方法,也有其自身的特點,信用分要建的好,還有很多的工作要做:

一是為了讓信用分具備可解釋性,需要量化每個變數每個區間的信用分值分配,比如發現芝麻信用分下降了,肯定想知道箇中原因吧。

二是信用分計算出來後,往往會出現不可預期的結果,比如不符合正態分布等等,往往需要根據業務的需要再進行調整。

三是信用分的運營也存在不少挑戰,包括多長時間計算一次,如何確保不要出現大的波動,新變數的引入影響等等。

這都對信用分建模提出了新的挑戰。

更多產業動態、乾貨文章、企業實例,歡迎加入FineReport臉書粉絲團:FineReport報表軟體,www.facebook.com/twfinereport

喜歡這篇文章嗎?歡迎分享按讚,給予我們支持和鼓勵!

熱門文章推薦

立即試用,可獲取更多 報表範本和案例

免費試用