實(shí)際風(fēng)控工作中的五大挑戰(zhàn)!
知乎 | https://zhuanlan.zhihu.com/p/158588024
前言
在上一篇文章中,我們用kaggle的數(shù)據(jù)集來(lái)做了一篇評(píng)分卡教程。
當(dāng)然,實(shí)際風(fēng)控中如果有這么簡(jiǎn)單,那我就得失業(yè)了。這一篇來(lái)講講實(shí)際風(fēng)控產(chǎn)品化的路上,我們還會(huì)遇到哪些挑戰(zhàn),作為數(shù)據(jù)科學(xué)家(也有的公司叫算法工程師),我們是如何解決這些問(wèn)題的。
雖然本文篇幅6000多字,依然未能詳盡的講述在實(shí)際風(fēng)控產(chǎn)品中的挑戰(zhàn)。那本文就當(dāng)拋磚引玉吧。本文僅講到“數(shù)據(jù)科學(xué)”部分的挑戰(zhàn),至于”數(shù)據(jù)工程“方面的挑戰(zhàn),例如建數(shù)據(jù)倉(cāng)庫(kù),ETL,上云等等的這些,本文就先展示不講了。也歡迎各位搞風(fēng)控的大大在評(píng)論區(qū)講講你們?cè)陲L(fēng)控過(guò)程中遇到的挑戰(zhàn)。文章有點(diǎn)長(zhǎng),如果在手機(jī)看到,可以先點(diǎn)贊收藏標(biāo)記著,回頭再讀。
0.挑戰(zhàn)在于算法之外
每次別人問(wèn)我算法工程師的工作內(nèi)容是什么,是不是天天寫(xiě)模型,調(diào)參數(shù),我都喜歡發(fā)這個(gè)圖過(guò)去。圖來(lái)自論文Hidden Technical Debt in Machine Learning Systems

當(dāng)然,這里面有一部分并不需要我來(lái)做,例如Serving Infrastruture,運(yùn)維會(huì)幫我弄好。作為一個(gè)風(fēng)控領(lǐng)域的數(shù)據(jù)科學(xué)家,說(shuō)實(shí)話,寫(xiě)機(jī)器學(xué)習(xí)代碼的時(shí)間占用我日常工作時(shí)間不到十分之一吧。我的工作需要面對(duì)算法之外的挑戰(zhàn)。如果你是風(fēng)控領(lǐng)域有一段時(shí)間工作經(jīng)驗(yàn)的人,你一定會(huì)覺(jué)得我下面要說(shuō)的內(nèi)容已經(jīng)熟悉了。如果你是小白,想面試風(fēng)控算法崗位,那如果你能參透本文,理解這些挑戰(zhàn),并且講給面試官聽(tīng),他一定會(huì)對(duì)你刮目相看的。
1.定義目標(biāo)變量(good/bad)
如果你不熟悉風(fēng)控,你也許不會(huì)想到,雖然目標(biāo)變量只有g(shù)ood和bad兩種,但定義目標(biāo)變量的過(guò)程竟然如此復(fù)雜,以至于這個(gè)問(wèn)題我需要花一兩千字來(lái)講解。
在上一篇文章里用到的數(shù)據(jù)里,兩年內(nèi)逾期超過(guò)90天定義為bad,否則都為good。但你有沒(méi)想過(guò),這個(gè)目標(biāo)是如何定出來(lái)的呢?雖然Kaggle的數(shù)據(jù)集和實(shí)際生產(chǎn)環(huán)境的不一樣,但也不是隨便給的。如果你認(rèn)真觀察,這個(gè)label的定義是由兩個(gè)因素決定的:
逾期天數(shù)(超過(guò)90天) 觀察期(兩年內(nèi))
你也許會(huì)想,那么這兩個(gè)數(shù)字是如何決定的呢?為啥還要這么麻煩,直接逾期第一天就去催收不行嗎?在實(shí)際業(yè)務(wù)中,既要保證壞賬最小化,也要保證催收的體驗(yàn),你總不能人家到期第一天忘了還10塊錢(qián)的賬單就派人上門(mén)催收吧?客戶(hù)都給你趕跑了。

1.1 逾期天數(shù)-遷徙率(Flow Rate)分析
在Reference[1]有個(gè)博主寫(xiě)的不錯(cuò),但他的做法是先設(shè)置觀察期,再看表現(xiàn)。而我的做法不一樣,我的做法是只看每個(gè)月的的賬戶(hù)在下個(gè)月的表現(xiàn)。
我們這里先定義兩個(gè)概念:
時(shí)間窗口。每個(gè)時(shí)間窗口由一個(gè)月和下一個(gè)月的數(shù)據(jù)構(gòu)成。例如我拿一年的數(shù)據(jù),例如2019年,就有11個(gè)觀察窗口(1-2月,2-3月....11-12月)。
逾期期數(shù)。每個(gè)期數(shù)由30天組成(有的銀行或者金融機(jī)構(gòu)由自然月組成,會(huì)更加方便計(jì)算)。較多的金融機(jī)構(gòu)會(huì)用Mn來(lái)形容逾期情況,例如
M0:當(dāng)前未逾期 M1:逾期1-30日 M2:逾期31-60日 M3:逾期61-90日 M4:逾期91-120日 以此類(lèi)推......
在下面的表里,縱坐標(biāo)是前月的逾期期數(shù)情況(時(shí)間窗口左邊界),橫坐標(biāo)是次月的逾期期數(shù)情況(時(shí)間窗口右邊界)。里面的數(shù)字是怎么計(jì)算的呢?例如我們只有兩個(gè)時(shí)間窗口。在時(shí)間窗口【1月-2月】里有50個(gè)客戶(hù)保持未逾期,【2月-3月】有100個(gè)客戶(hù)保持未逾期,那么坐標(biāo)[1,1]的總數(shù)會(huì)是150。
假設(shè)經(jīng)過(guò)分析2019年11個(gè)時(shí)間窗口后,我們得到以下一個(gè)統(tǒng)計(jì)表:

轉(zhuǎn)換成百分比,并根據(jù)值的大小,用顏色標(biāo)出來(lái)。

其中我們只關(guān)注黑色框框的部分,也就是彩色的部分。為什么呢?很簡(jiǎn)單,那些已經(jīng)好轉(zhuǎn)了的賬戶(hù)我們不管了,因?yàn)椴皇俏覀兊拇呤諏?duì)象,我們需要看的是逾期情況沒(méi)有好轉(zhuǎn)甚至惡化的客戶(hù)。一個(gè)時(shí)間窗口內(nèi)你的逾期情況最多往前一格(遇到天數(shù)為31天的有可能小概率逾期兩格,但較少發(fā)生,統(tǒng)計(jì)時(shí)可忽略)。用直白的語(yǔ)言說(shuō),就是你現(xiàn)在逾期10天,給你一個(gè)月,你怎么也不可能逾期超過(guò)60天吧?
好,回到正題,遷徙情況百分比能說(shuō)明什么呢?說(shuō)明了某個(gè)逾期期數(shù)的風(fēng)險(xiǎn)情況。我們這里用“從良”這個(gè)不太恰當(dāng)?shù)美斫獾脑~來(lái)形容賬戶(hù)逾期期數(shù)變少。例如在上表里,當(dāng)逾期<30天時(shí),54.69%的客戶(hù)都會(huì)在下個(gè)月還上款(因?yàn)榇蟾怕适峭诉€款日而不是沒(méi)錢(qián)還);而這個(gè)月逾期在[90-119]天的有42.02%的客戶(hù)的逾期期數(shù)會(huì)繼續(xù)增加(確實(shí)手頭缺錢(qián)還不上),25.21%的客戶(hù)逾期期數(shù)會(huì)保持不變(手頭緊,僅還得上一期的欠款以確保賬戶(hù)不會(huì)被清算)。也就說(shuō)是,當(dāng)逾期天數(shù)超過(guò)90天,客戶(hù)“從良”的概率只有(100-25.21-42.02)% = 32.77%。也就說(shuō),很大概率這個(gè)客戶(hù)的情況會(huì)一直惡化下去,所以我們需要在他惡化前,就挑出來(lái)催收,以減少損失。
至于“從良”的百分比低于多少就不能接受,則需要和商業(yè)部門(mén)溝通。但從良的少于1/3確實(shí)挺少了。
不過(guò)這里需要澄清下,這里并不是指逾期真的超過(guò)90天才催收,而是說(shuō),我預(yù)測(cè)這個(gè)人將來(lái)會(huì)逾期超過(guò)90天,所以我在他達(dá)到那個(gè)逾期時(shí)間前就去催收,避免嚴(yán)重逾期的發(fā)生。
1.2 觀察期分析 ——elbow method(手肘法則)
剛才我們通過(guò)分析,確定了目標(biāo)里的逾期天數(shù)是90天以上。那么目標(biāo)里的觀察期是如何做的呢?
一個(gè)客戶(hù)開(kāi)始逾期后(超過(guò)一天),要達(dá)到90天以上的逾期少則需要3個(gè)月,多則可以無(wú)限多個(gè)月。如果觀察期短了,我們會(huì)漏抓了很多客戶(hù),如果觀察期太長(zhǎng),例如無(wú)限長(zhǎng),你確實(shí)能抓住100%的逾期在90天以上客戶(hù),但觀察期太長(zhǎng)了,逾期的客戶(hù)一直沒(méi)人理就會(huì)一直惡化。所以一個(gè)合理的觀察期很重要。
為了找到一個(gè)合理的觀察期,我們需要分析逾期月數(shù)與逾期客戶(hù)總數(shù)的情況,例如再某個(gè)銀行,通過(guò)分析,我得到一個(gè)逾期月數(shù)與逾期客戶(hù)數(shù)的情況表:

可以看到,逾期90天以上的客戶(hù),95%的都發(fā)生在6個(gè)月內(nèi)。但你也許會(huì)說(shuō),9個(gè)月能檢測(cè)到97%,不是更好嗎?但記得經(jīng)濟(jì)學(xué)里的“邊際效用”這個(gè)詞嗎?意思是再增加投入,新增的產(chǎn)出會(huì)變少。用一個(gè)知乎上熱門(mén)的詞語(yǔ)來(lái)形容,就是“內(nèi)卷”。我們分析時(shí)也是。再追加一個(gè)月觀察期,對(duì)效用的提升不明顯,反而引入更多風(fēng)險(xiǎn)。當(dāng)“內(nèi)卷”發(fā)生時(shí),就不再增加觀察期了。
所以我的經(jīng)驗(yàn)是用elbow method,也就是尋找曲線的“轉(zhuǎn)折點(diǎn)”,就像手肘一樣。(如果你熟悉k-means,那么你可能記得,在k-means里,我們決定怎么選擇k值的一個(gè)算法是elbow method。這里就不展開(kāi)講k-means了,如果真的不熟悉,也不影響本文閱讀)
把上表plot出來(lái),得到下面一個(gè)圖,其中轉(zhuǎn)折點(diǎn)(或者說(shuō)‘手肘)用紅圈劃出來(lái)了:

可以看到,但觀察期為6個(gè)月時(shí),我們能抓到的逾期客戶(hù)已經(jīng)很多了。再加一個(gè)月,能抓到的增量也很少了,邊際效用明顯降低了很多。所以我們就可以把觀察期設(shè)置為6個(gè)月。
對(duì)于普通的信貸產(chǎn)品,一般情況下這個(gè)轉(zhuǎn)折點(diǎn)還是很好觀察到的。但看到這里你也許想問(wèn),如果沒(méi)有明顯的轉(zhuǎn)折點(diǎn)(elbow),該怎么抉擇呢?這就復(fù)雜了。但如果你的信貸產(chǎn)品真的找不到一個(gè)明顯的elbow point,你畫(huà)出來(lái)的曲線比上面的曲線平滑得多,怎么辦呢?
這確實(shí)是一個(gè)難題,且沒(méi)有一個(gè)標(biāo)準(zhǔn)的答案。但你可以和商業(yè)部分探討下面幾個(gè)問(wèn)題:
當(dāng)逾期超過(guò)90天的客戶(hù)比例是多少時(shí),我們的資產(chǎn)會(huì)出現(xiàn)虧損?然后你可以以這個(gè)比例作為嘈參照,選擇響應(yīng)的觀察期。 逾期90天是不是一個(gè)好的選擇?能不收緊標(biāo)準(zhǔn),把逾期天數(shù)檢測(cè)縮短到60天,這樣做對(duì)客戶(hù)體驗(yàn)造成什么影響?
2.特征構(gòu)建方式
不像kaggle比賽里那么簡(jiǎn)單,在實(shí)際業(yè)務(wù)中,很多時(shí)候特征是需要自己構(gòu)建和挖掘的。構(gòu)建特征的思想有幾點(diǎn):
RFM-V框架
哈哈哈,別去google這個(gè)詞,這是我編的名詞,純粹是為了讓大家方便記憶哈哈哈,是我從RFM模型上得到的啟發(fā)。RFM模型在的客戶(hù)關(guān)系管理(CRM)的分析中常常用到。RFM其實(shí)不是一個(gè)模型,只是常用的構(gòu)建特征思想。
RFM分別代表:
最近情況 (Recency):近期的情況對(duì)風(fēng)險(xiǎn)影響大于遠(yuǎn)期的。 頻率 (Frequency):使用頻率,聯(lián)系頻率。 金額 (Monetary):刷卡金額,貸款金額。
不難理解上面三種情況都和客戶(hù)風(fēng)險(xiǎn)有直接關(guān)系吧?而V代表Velocity,既速度。例如我過(guò)去1個(gè)月刷卡次數(shù)為10次,而過(guò)去六個(gè)月平均每個(gè)月刷卡次數(shù)5次,那么這個(gè)Velocity = 10/5=2。當(dāng)速度大于1時(shí),表示某個(gè)特征的值在加速增加,小于1時(shí),表示速度在減少。
V和R類(lèi)似,但又不同,V是近期情況和遠(yuǎn)期情況的比較,R僅為近期情況。
V還可以跟F,M自由組合。例如V和F的組合可以得到例如“最近刷卡頻率增加,風(fēng)險(xiǎn)有可能上升”的信息,V月M的組合可以得到例如“最近消費(fèi)激增,可能風(fēng)險(xiǎn)上升”的信息。
WOE變換
這個(gè)技巧在上一篇里面也用過(guò)了。本質(zhì)就是把非線性的特征轉(zhuǎn)換成線性的特征, 這對(duì)于邏輯回歸等泛線性模型是非常必要的。

具體變換過(guò)程這里就不再贅述了。如果對(duì)WOE不熟悉的朋友可以看看我之前的文章。上面那張圖就是我那篇文章的里的。文章鏈接[桔了個(gè)仔:WOE編碼為啥有效(https://zhuanlan.zhihu.com/p/146476834)
Vintage分析
除此之外,Vintage分析也是幫助構(gòu)建特征的方法。本來(lái)想自己寫(xiě)一篇的,但Reference[1]里的兄弟寫(xiě)得太好了,我就不再寫(xiě)多一遍了,可以點(diǎn)開(kāi)看他文章的part2.
3.穩(wěn)健性
這里就和機(jī)器學(xué)習(xí)模型有點(diǎn)關(guān)系了,也就是我在文章前面說(shuō)到的“用時(shí)不到10%"的部分。雖然耗時(shí)少,但對(duì)于模型的效用來(lái)說(shuō),確實(shí)至關(guān)重要。
3.0 增強(qiáng)穩(wěn)健性的通用方法
首先講講通用的增強(qiáng)穩(wěn)健性的方法。即使你是做其他領(lǐng)域的數(shù)據(jù)科學(xué)或者深度學(xué)習(xí),也會(huì)有所接觸。
加擾動(dòng)。就像訓(xùn)練CNN識(shí)別圖片時(shí),我們會(huì)做”數(shù)據(jù)增強(qiáng)“,也就是選擇、拉伸、增加白噪聲等方法增加數(shù)據(jù),在風(fēng)控里,我們也可以對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行”數(shù)據(jù)增強(qiáng)“。但我的做法比較保守,剛好由于數(shù)據(jù)一般都是標(biāo)簽不平衡的(一般5%左右的bad rate),我只SMOTE方法來(lái)對(duì)bad的部分進(jìn)行upsample。SMOTE方法通過(guò)對(duì)bad的部分加擾動(dòng),產(chǎn)生新的數(shù)據(jù),這樣就能平衡訓(xùn)練集中的各標(biāo)簽比例。 使用統(tǒng)計(jì)特征。舉個(gè)例子,例如逾期5000塊在2000年是很?chē)?yán)重的逾期,意味著高風(fēng)險(xiǎn),但在2020年,這是低風(fēng)險(xiǎn)的。如果只用金額,那么模型的預(yù)測(cè)會(huì)失效。我們可以用統(tǒng)計(jì)特征來(lái)代表實(shí)際值。例如使用Z-Score,z的絕對(duì)值值越高,代表他和其他客戶(hù)的差異越大。
風(fēng)控領(lǐng)域由于對(duì)解釋性有一定要求,所以很難使用神經(jīng)網(wǎng)絡(luò)等復(fù)雜模型或者深度學(xué)習(xí)模型。一般來(lái)說(shuō),是泛線性模型(例如邏輯回歸)和基于樹(shù)的模型(Decision Tree, RandomForest, XGBoost)等。對(duì)這里兩種模型,也有不同的增強(qiáng)模型穩(wěn)定性的方法。
3.1 對(duì)于泛線性模型(例如邏輯回歸)
對(duì)于邏輯回歸模型,單個(gè)變量的變動(dòng)會(huì)影響模型的輸出,而且這種影響是線性的。這會(huì)造成兩個(gè)因素影響穩(wěn)定性:
例如我的模型其中一個(gè)特征是逾期金額,逾期十塊和逾期二十塊對(duì)于銀行來(lái)說(shuō)都是小事,但在模型的某一項(xiàng)里,影響是雙倍的。 對(duì)outlier值處理復(fù)雜
解決方法:
為了模型的穩(wěn)定性,我們可以對(duì)某些連續(xù)變量進(jìn)行分箱,使其變成離散變量。這也是前面WOE的思想之一。這時(shí)候小于100塊的都分到一個(gè)組,那么你欠銀行一塊錢(qián)和99塊錢(qián)都是一樣低風(fēng)險(xiǎn)。 分箱后,outlier會(huì)自動(dòng)轉(zhuǎn)換成變成分箱的最左或者最右的那一類(lèi)。例如我們的客戶(hù)里年齡最大的不到100歲,那么我們可以每十歲設(shè)置一個(gè)分箱,那么可以有[-∞,10],[11,20],....[90,+∞]等十個(gè)分箱。這時(shí)候有個(gè)客戶(hù)不小心年齡20歲輸成200歲,那么這么年齡也不會(huì)無(wú)法處理。
3.2 基于樹(shù)的模型
由于樹(shù)的split是基于閾值的,使用基于樹(shù)的好處就是相當(dāng)于模型給你自動(dòng)分了箱。對(duì)于決策樹(shù),數(shù)據(jù)的準(zhǔn)備往往是簡(jiǎn)單的甚至是不必要的。數(shù)的另一個(gè)好處是對(duì)波動(dòng)不敏感。數(shù)據(jù)分布發(fā)生微小偏移時(shí),仍能表現(xiàn)穩(wěn)定。
但使用單棵決策樹(shù)容易過(guò)擬合。為了防止過(guò)擬合我們一般會(huì):
修剪枝葉。但是需要大量的分析與嘗試,所以我極少使用單科決策樹(shù)作為模型。我一般用下一種方法。 使用RandomForest。RandomForest是用訓(xùn)練數(shù)據(jù)隨機(jī)的計(jì)算出許多決策樹(shù),形成了一個(gè)森林。這種方法背后的原理可以用“三個(gè)臭皮匠定一個(gè)諸葛亮”這句諺語(yǔ)來(lái)概括。隨機(jī)森林在解決回歸問(wèn)題時(shí),并沒(méi)有像它在分類(lèi)中表現(xiàn)的那么好,這是因?yàn)樗⒉荒芙o出一個(gè)連續(xù)的輸出。但在訓(xùn)練數(shù)據(jù)足夠大的情況下,由于
除此之外,我還會(huì)用到XGBoost。XGBoost也是基于樹(shù)的模型,所以決策樹(shù)在穩(wěn)健性方面的好處它也有。XGBoost具有非常好的非線性擬合能力,以及對(duì)超參數(shù)的魯棒性,因此在Kaggle比賽中大家都在瘋狂用。但依賴(lài)統(tǒng)計(jì)特征,特征的準(zhǔn)備需要積累一定周期才有足夠置信度,不過(guò)在信貸風(fēng)控場(chǎng)景下,我的項(xiàng)目都有超過(guò)一年的數(shù)據(jù),使用效果還是很好的。
但無(wú)論如何,穩(wěn)定性無(wú)論做得多好,模型總有效用遞減的時(shí)候。關(guān)于如何監(jiān)控模型,第六章會(huì)講。
4.評(píng)價(jià)指標(biāo)
模型來(lái)說(shuō),大家都用AUC。對(duì)于二元分類(lèi),這個(gè)方法是很常用的。但是對(duì)于不平衡數(shù)據(jù)且bad rate會(huì)有變化的數(shù)據(jù),AUC的效果容易失真,所以?xún)H僅看AUC,對(duì)模型的性能理解是失真的。除了模型性能,還有其他指標(biāo)也是需要參考的
KS(Kolmogorov-Smirnov)值
KS值評(píng)估模型的區(qū)分度(discrimination)是在模型中用于區(qū)分預(yù)測(cè)正負(fù)樣本分隔程度的評(píng)價(jià)指標(biāo)。KS的計(jì)算方法直觀解釋例如下圖,綠色為預(yù)期bad rate累積函數(shù)(因?yàn)槭抢鄯e的,所以最高點(diǎn)為1),藍(lán)色為good rate的累積函數(shù)。他們之間最大的差值為KS值。用公式來(lái)講,就是KS=max(TPR-FPR),也就是召回率-誤診率的最大值。

那么KS怎么看呢?怎么知道模型的區(qū)別能力好不好呢?這里有個(gè)標(biāo)準(zhǔn),僅供參考,實(shí)際應(yīng)用時(shí)可以稍微改改,但一般來(lái)說(shuō)KS越大越好。

效用提升(LIFT)
效用提升的計(jì)算等于模型捕捉到的bad rate 除以隨機(jī)捕捉到的bad rate。例如下表,按照預(yù)測(cè)的風(fēng)險(xiǎn)排序分成1-5箱,其中1位最高風(fēng)險(xiǎn),5為最低風(fēng)險(xiǎn)。如果隨機(jī)把客戶(hù)分成5箱,那么每箱里面的bad rate應(yīng)該都是5%。但是通過(guò)模型來(lái)預(yù)測(cè),我第一箱抓到的bad客戶(hù)應(yīng)該是最多的。例如我看第一箱的LIFT,計(jì)算方法為模型抓到的12.5%的bad,那么效用提升就是250%。也就是說(shuō),你之前要催收125個(gè)客戶(hù)才能達(dá)到的回款效果,通過(guò)我的模型,現(xiàn)在只需要催收50個(gè),節(jié)省了你60%的催收成本。

你可以把第一箱定位高風(fēng)險(xiǎn),也可以把第一二箱都看為高風(fēng)險(xiǎn)。當(dāng)你通過(guò)這個(gè)新的策略,催收前兩箱,也就是40%的客戶(hù)時(shí),你能抓到(25+10)=35個(gè)壞客戶(hù),也就是70%的壞客戶(hù),那么LIFT就是70/40=175%。
當(dāng)LIFT=100%時(shí),說(shuō)明模型沒(méi)啥用,等于瞎猜。
群體穩(wěn)定性指標(biāo)(Population Stability Index,PSI)
PSI是評(píng)價(jià)樣本穩(wěn)定性的指標(biāo),不僅可以評(píng)價(jià)樣本的總體穩(wěn)定性,也可以評(píng)價(jià)某個(gè)特征的穩(wěn)定性。需要注意的是,PSI并不是直接評(píng)價(jià)模型性能的指標(biāo)。
PSI的計(jì)算很簡(jiǎn)單,公式為:
PSI = SUM( (實(shí)際占比 - 預(yù)期占比)* ln(實(shí)際占比 / 預(yù)期占比) )。
Reference[6]里的文章很好的解釋了PSI的概念與計(jì)算,還有代碼實(shí)現(xiàn),我這里就不再贅述了。
在產(chǎn)品運(yùn)行過(guò)程中,如果看到模型的AUC下降了,但你又發(fā)現(xiàn)PSI上升了,說(shuō)明你需要用新的數(shù)據(jù)集來(lái)訓(xùn)練新的模型了。
5.解釋性
由于銀行監(jiān)管要求,風(fēng)控模型需要滿(mǎn)足解釋性要求才能批準(zhǔn)上線使用(不知道互聯(lián)網(wǎng)金融公司有沒(méi)這個(gè)要求),所以模型不是能預(yù)測(cè)就行的,我們需要對(duì)兩個(gè)方面進(jìn)行解釋?zhuān)?/p>
特征層面
做特征組合時(shí),你需要讓特征有意義。假如你通過(guò)各種組合,發(fā)明了一個(gè)特征,發(fā)現(xiàn)用他的月收入除以他家房子的面積數(shù),得到的特征與風(fēng)險(xiǎn)有較強(qiáng)關(guān)聯(lián),那也是不可用的。月收入金額除以房子的面積數(shù)這種組合是不好理解的。但如果你真的發(fā)現(xiàn)這種奇怪的組合特征很有用,你需要換個(gè)思路,用有意義的特征再進(jìn)行組合。例如剛才發(fā)現(xiàn)月收入除以他家房子的面積數(shù)這個(gè)特征很有用,那么你可以想想。他家房子的面積數(shù)和什么相關(guān)聯(lián)?是不是房貸金額?那么我們可以重新組織一下,組合出一個(gè)有意義的特征:DTI(debt to income),定義是負(fù)債除以收入。事實(shí)上客戶(hù)的DTI指數(shù)也是很常用的特征。
模型決策層面
如果你用邏輯回歸和單棵決策樹(shù),那么模型就具有自解釋性。
對(duì)于隨機(jī)森林和XGBoost,解釋起來(lái)稍微麻煩點(diǎn)。如果想強(qiáng)行解釋隨機(jī)森林,那么會(huì)有點(diǎn)麻煩,可能需要UI的幫助。例如你隨機(jī)森林用了100課數(shù),那么你要把這100課數(shù)的預(yù)測(cè)結(jié)果先展示一次,然后再把這些結(jié)果得到最后結(jié)果的計(jì)算過(guò)程又展示一次。比起深度模型那種黑箱子,XGBoost和RandomForest的工作原理確實(shí)能講出來(lái),但那復(fù)雜度別人能懂嗎?
所以我們需要直觀的解釋?zhuān)m然理解沒(méi)那么完全,但難度大大降低。一般會(huì)用兩種方法:

當(dāng)然解釋性并不是那么簡(jiǎn)單,這是個(gè)大課題,更多相關(guān)的技巧可以參考Reference[2-5]
6.上線,監(jiān)控,模型更新
這一點(diǎn)的經(jīng)驗(yàn)未必和其他風(fēng)控算法工程師一樣。知乎上也有很大風(fēng)控大牛,他們要么在互聯(lián)網(wǎng)金融做風(fēng)控,要么在支付系統(tǒng)做風(fēng)控,而像我這種在創(chuàng)業(yè)公司給銀行做風(fēng)控的人應(yīng)該不多。
上線
如果你開(kāi)發(fā)的這套風(fēng)控系統(tǒng)是第一套,那么直接上線就完事了。但在商業(yè)應(yīng)用中,直接切換風(fēng)控系統(tǒng)是高風(fēng)險(xiǎn)的事情。例如你是技術(shù)提供商,銀行覺(jué)得你開(kāi)發(fā)的風(fēng)控系統(tǒng)不錯(cuò),但他也不會(huì)馬上用你的。一般來(lái)說(shuō),銀行需要先把一部分(例如20%)的賬戶(hù)分到你的系統(tǒng)來(lái)評(píng)分,剩余80%還是用原來(lái)的系統(tǒng)來(lái)評(píng)分。持續(xù)在線上觀察半年,確定你的系統(tǒng)效果要更好,才會(huì)逐漸增加更多比例讓你的系統(tǒng)評(píng)分。
監(jiān)控
模型上線后,需要持續(xù)觀測(cè)第四節(jié)里提到的評(píng)價(jià)指標(biāo),包括特征穩(wěn)定性,效用,模型AUC等。根據(jù)實(shí)際情況可以定義。監(jiān)控周期一般是每個(gè)月一次。
模型更新
基于閾值更新。例如當(dāng)AUC低于0.75,或者KS低于40時(shí)。 基于時(shí)間間隔更新。例如下圖這樣,每?jī)蓚€(gè)月刷新一次模型,假設(shè)原模型是1,新模型是2,那么選擇表現(xiàn)較好的那個(gè)作為接下來(lái)兩個(gè)月呆在線上的那個(gè)模型。

總結(jié)
可以看到,算法雖然是核心,但是僅有核心是不夠的,一個(gè)完整的風(fēng)控系統(tǒng),即使除開(kāi)軟件工程部分,還是有很多的工作需要做,很多的分析需要搞。我們常說(shuō)的人工智能AI,主要指機(jī)器智能,但要支持一個(gè)平穩(wěn)的風(fēng)控系統(tǒng),需要的是真正的“人工”智能,也就是人本身的智能,機(jī)器智能在這里,也就是輔助。
