自动化特征工程和自动建模在风控场景的应用
一、背景和問題
?
目前,模型開發(fā)的流程越來越規(guī)范化,通常可以分為業(yè)務(wù)分析、樣本準(zhǔn)備、特征工程、模型構(gòu)建、模型評估及監(jiān)控這幾個步驟。其中,特征工程和模型構(gòu)建在建模的整個流程中依然非常耗時,并且非常依賴于模型開發(fā)者對業(yè)務(wù)的理解及數(shù)據(jù)處理的能力。
?
在目前實(shí)際業(yè)務(wù)場景下,面臨的最大的一個問題是,如何快速地構(gòu)建起一個質(zhì)量相對不錯的模型,以適應(yīng)業(yè)務(wù)的快速發(fā)展。傳統(tǒng)的風(fēng)控建模周期較長,通常要20天左右的時間才能達(dá)到上線的要求。其中,特征工程的耗時在整個建模過程中會占到大約60%的時間,且這個過程的挑戰(zhàn)就是人工提取特征的復(fù)雜性和高時間耗費(fèi)性。自動化特征工程能夠?qū)Ρ匾爆嵉墓ぷ鬟M(jìn)行自動化處理,從而優(yōu)化機(jī)器學(xué)習(xí)模型的構(gòu)建和部署,這樣模型的開發(fā)者就可以更多地關(guān)注其他重要步驟。另一方面,模型開發(fā)過程的耗時在整個建模過程中會占到大約30%的時間。這個過程的難點(diǎn)并不在于給出一個模型,而是在于同時比較多種模型甚至多種模型組合后,選出效果最佳的模型做主決策模型,其余的模型可以作為備用模型或者比較對象。這個過程如果用人工去實(shí)現(xiàn),也會消耗非常多的時間,并且效果不一定最優(yōu)。
?
?
基于這樣的背景,融360推出的自動化特征工程和自動建模的方案,把建模過程中耗時最長的特征工程部分和模型開發(fā)部分抽象出了一套自動化工具。不僅集成了自動特征工程,還對建模過程中變量的篩選、建模調(diào)優(yōu)、部署上線和模型監(jiān)控進(jìn)行了模塊化的封裝。該工具有如下優(yōu)點(diǎn):
?
① 大幅提升建模效率和標(biāo)準(zhǔn)化程度;
② 節(jié)約人力成本和時間成本;
③ 快速達(dá)到業(yè)務(wù)方要求;
④ 有利于嘗試更多的模型方案和模型快速更
? ? 新迭代。
?
通過自動化特征工程和自動建模方案后,模型從開發(fā)到上線的時間大幅減少,可以縮短至5天左右,不僅簡化了開發(fā)流程,提升了開發(fā)效率,準(zhǔn)確率方面也保持較高水準(zhǔn)。
?
?
二、自動化特征工程
?
首先,我們先來看一下手動特征工程是如何完成特征工程這個過程的。人工構(gòu)建特征工程主要依賴領(lǐng)域知識來構(gòu)建特征,一次只能產(chǎn)生一個特征,這是一個繁瑣,費(fèi)時又易出錯的過程。此外,每次進(jìn)行特征工程的代碼是針對特定業(yè)務(wù)和特定場景的。當(dāng)我們面對新的需求、新的數(shù)據(jù)源時,我們需要重構(gòu)特征,重新進(jìn)行開發(fā),耗時長效率低。
?
因此,特征工程若要能夠?qū)崿F(xiàn)自動化和標(biāo)準(zhǔn)化,其數(shù)據(jù)在結(jié)構(gòu)上必須要具有一定的相似性和共通性。根據(jù)美國數(shù)據(jù)庫營銷研究所Arthur Hughes的研究,客戶數(shù)據(jù)庫中有三個神奇的要素,這三個要素構(gòu)成了數(shù)據(jù)分析最好的指標(biāo):
?
① 最近一次消費(fèi)(Recency);
② 消費(fèi)頻率(Frequency);
③ 消費(fèi)金額(Monetary)。
?
在眾多的客戶關(guān)系管理(CRM)的分析模式中,RFM模型是被廣泛提到的。RFM模型是衡量客戶價值和客戶創(chuàng)利能力的重要工具和手段。該模型通過一個客戶的近期購買行為、購買的總體頻率以及花了多少錢三項(xiàng)指標(biāo)來描述該客戶的價值狀況。
?
?
在融360的業(yè)務(wù)場景下,更多的數(shù)據(jù)是交易級別的數(shù)據(jù)。那么,根據(jù)RFM模型構(gòu)建出來的特征通常包含基本的統(tǒng)計變量,趨勢型的變量等。例如,通話的時間段可以分為白天或者夜晚,通話類型可以分為主叫、被叫或者未接,交易金額總和、次數(shù)等等,這些都屬于統(tǒng)計型變量。而類似于近3個月比近6個月的通話次數(shù)減少了多少,這是趨勢型變量。
?
?
不僅是結(jié)構(gòu)化數(shù)據(jù),在關(guān)系網(wǎng)絡(luò)中也可以通過RFM模型構(gòu)建特征。如下圖所示是一個簡單的關(guān)系網(wǎng)絡(luò)。應(yīng)用RFM模型,可以構(gòu)建出例如某用戶有多少1度聯(lián)系人,1度聯(lián)系人中是否有過借貸行為,平均借款金額,以及其中有多少人有逾期記錄等特征。
?
?
綜合以上分析過程,可以將自動化特征工程的過程抽象成如下圖所示的框架。首先,根據(jù)不同的數(shù)據(jù)類型,采取不同的處理方式。如果是分類變量,可以切分成不同的數(shù)據(jù)模塊,用統(tǒng)計型或者標(biāo)識型的方法去處理,完成第一層的聚合運(yùn)算,生成基本的統(tǒng)計特征。那么在第二層中,會對基本的統(tǒng)計特征采取比值計算和趨勢計算的一些方法,衍生出新的變量。
?
?
回顧特征工程的整體過程,有了自動化特征生成工具之后,模型開發(fā)者關(guān)注的重點(diǎn)不再是構(gòu)建能夠通過簡單運(yùn)算得到基本的統(tǒng)計特征,而是能夠有更多的時間關(guān)注數(shù)據(jù)本身。而需要人工處理的部分僅是從原始數(shù)據(jù)到把數(shù)據(jù)標(biāo)準(zhǔn)化的過程,后續(xù)的特征自動組合、計算,以及評估到輸出都實(shí)現(xiàn)了自動化的過程。
?
?
下圖所示是某項(xiàng)目中,自動化特征工具和人工構(gòu)建特征在同一數(shù)據(jù)集上的比較。可以看到,自動化特征相對人工特征效果明顯提升且耗時更短。當(dāng)然,開發(fā)自動化特征工具的目標(biāo)并不是為了替代人工,而是希望自動化特征工具能夠快速并且準(zhǔn)確地提供一版基礎(chǔ)特征,從而把人力更多地投入到對原始數(shù)據(jù)的理解以及對業(yè)務(wù)分析中,或者構(gòu)建出更多衍生的特征。
?
?
三、自動建模
?
盡管不同的數(shù)據(jù)樣本和不同的模型選擇,得到的結(jié)果會有較大差異。但各項(xiàng)指標(biāo)綜合來看,目前不管是國內(nèi)外的數(shù)據(jù)競賽,或者是回歸到公司業(yè)務(wù)本身,xgboost和lightGBM依然是適用性最好,表現(xiàn)最優(yōu)的算法之一。而在信貸場景下,LR因其較好的解釋性,也被廣泛使用。因此,自動化建模工具整合了常用的算法,針對建模過程中通用性較高的部分進(jìn)行了模塊化的封裝。這樣極大地提升了開發(fā)效率,并且可以將更多的時間用于嘗試不同的模型。
?
?
3.1 自動特征選擇部分:
?
首先,自動通過EDA(Exploratory Data Analysis)對特征進(jìn)行初步篩選,例如篩選掉缺失率較高,方差恒定不變,在時間維度上不夠穩(wěn)定等特征。其次,自動綜合多種常用算法和規(guī)則,進(jìn)一步篩選出有效的特征。例如:
?
①?IV值篩選;
②?樹模型輸出重要性;
③?共線性篩選。
?
最后,選擇出綜合排序TopN,以及各個類別中排名靠前的特征。可以把幾千維度的特征降低到幾百個維度的范圍內(nèi),并且在減少特征的同時,保留特征的多樣性。
?
?
3.2建模部分
?
3.2.1 邏輯回歸模型(LR)
?
LR在信貸場景下,通常用于構(gòu)建評分卡模型。首先回顧一下邏輯回歸實(shí)現(xiàn)評分卡的理論基礎(chǔ)。
?
一個事件發(fā)生的幾率(odds),是指該事件發(fā)生與不發(fā)生的概率的比值。若一個用戶違約的概率是p,則其正常的概率為1-p。可以得到:
此時,客戶違約的概率p可以表示為:
而評分卡的表達(dá)式為:
其中,A和B為常數(shù)。通過給定?(1)某特定Odds時的Score值(2)該特定Odds值翻倍時Score增加值,帶入評分卡表達(dá)式即可求得A、B。
而根據(jù)邏輯回歸的原理可推導(dǎo)出該事件的對數(shù)幾率如下:
因此,構(gòu)建評分卡的問題轉(zhuǎn)化為利用邏輯回歸模型求概率的問題,最后根據(jù)概率轉(zhuǎn)化成評分卡的分?jǐn)?shù)。
?
?
構(gòu)建評分卡模型中最關(guān)鍵的步驟是WOE分箱,分箱的好壞直接影響最后模型的效果。傳統(tǒng)的處理方式是,人工根據(jù)特征的業(yè)務(wù)含義,對特征進(jìn)行一些粗分箱。抽象成自動化工具后,統(tǒng)一對特征進(jìn)行等頻分箱后做WOE變換,并且進(jìn)行單調(diào)性檢測。同時,也保留了人工操作的接口,可以自由調(diào)整分箱的邊界,達(dá)到更優(yōu)的效果。
?
3.2.2 XGBOOST
?
xgboost是目前應(yīng)用最廣泛的算法之一。不僅在多種競賽場合取得非常好的成績,在工業(yè)界也有廣泛應(yīng)用。在自動化建模的過程中,為了能讓xgboost發(fā)揮出更好的效果,需要針對入模變量做額外的預(yù)處理。連續(xù)變量雖然可以直接入模,但為了減少過擬合,依然對連續(xù)變量進(jìn)行了分箱處理。而分類變量則不能直接入模,可以通過決策樹進(jìn)行分箱的操作,或者通過各種編碼方式對變量進(jìn)行轉(zhuǎn)換,例如標(biāo)記編碼,one-hot編碼等等。
?
?
除了對入模的特征實(shí)現(xiàn)預(yù)處理,自動化建模工具還集成了更全面的調(diào)參方法,包括:設(shè)置多組經(jīng)驗(yàn)參數(shù)、GridSearch、RandomSearch等,這個過程也是人工調(diào)參中耗時較長且重復(fù)性較高的步驟之一。
?
四、自動化模型評估與監(jiān)控
?
在完成模型開發(fā)后,最重要的一個環(huán)節(jié)就是模型評估與模型的監(jiān)控。在各種數(shù)據(jù)競賽中,評估一個模型的好壞,通常會用AUC、KS等指標(biāo)。但在實(shí)際場景中,模型上線后需要關(guān)注的不僅僅是這些模型的評估指標(biāo)。更加需要關(guān)注的是模型整體的排序性和穩(wěn)定性。在不同的業(yè)務(wù)場景下,對模型的要求也不一樣。例如,在欺詐檢測的場景下,會希望模型在低分段有更好的區(qū)分度。反之,如果要做授信額度策略,則會期望模型在高分段有更好的區(qū)分度。
?
自動化模型評估在實(shí)現(xiàn)全面、細(xì)致、快速地評估模型效果方面,主要涵蓋了以下三個方面:
?
①?跨維度:變量維度、模型分維度;
②?跨樣本:Train、Test、OOT、
? ? ? ? ? ? ? ? ? Early Performance等;
③?跨模型:當(dāng)前線上模型、不同版本新模型。
?
?
跨維度層面,包括對特征的監(jiān)控以及特征對模型結(jié)果的影響。除了關(guān)注模型的基本監(jiān)控指標(biāo)AUC、KS、PSI、Ranking等,在變量維度,還會關(guān)注變量隨著時間的變化,排序性是否下降,PSI是否升高,以及特征是否對模型結(jié)果產(chǎn)生了負(fù)面影響等因素。
?
跨樣本層面,由于在模型開發(fā)的過程中,經(jīng)常會使用比較成熟的表現(xiàn)期的樣本,例如MOB6進(jìn)行建模,但在評估模型的時候,可以用MOB1的樣本進(jìn)行跨期測試,用來判斷模型的早期效果。
?
跨模型層面,不同的模型有不同參數(shù),會針對不同的模型進(jìn)行比較。看當(dāng)前線上的模型和新版本模型之前的效果差異。
?
最后,根據(jù)以上三個維度的評估,會進(jìn)行加權(quán)求和,輸出模型最終的綜合評分以及模型相關(guān)內(nèi)容的文檔,包括模型表現(xiàn)的匯總、特征分箱的結(jié)果、變量的PSI、變量與逾期率的關(guān)系等內(nèi)容。
?
五、模型部署上線及線上監(jiān)控
?
相較于傳統(tǒng)的寫python腳本完成從訓(xùn)練、預(yù)測到輸出結(jié)果的模型上線方式,目前更常用的方法是輸出模型文件,線上的部署環(huán)境支持讀取和調(diào)用模型文件。但融360開發(fā)了針對模型部署的平臺,省略了開發(fā)模型部署的腳本。模型自動輸出配置文件,只需將配置文件放如新模型的文件夾中,就可以輕松完成上線部署,實(shí)現(xiàn)自動評分。并且配置文件具有簡潔和良好的可讀性等優(yōu)點(diǎn)。
?
?
模型上線后的線上監(jiān)控也是非常重要的環(huán)節(jié)之一。如果模型的監(jiān)控僅依賴于各個模型的owner,那么會產(chǎn)生非常多的問題,例如不能及時發(fā)現(xiàn)AUC、PSI等模型指標(biāo)的變化,缺失對特征變化的監(jiān)控,模型何時需要重新訓(xùn)練,更新迭代等等。針對這些問題,融360開發(fā)了自動化模型監(jiān)控工具,實(shí)現(xiàn)標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出。新模型配置監(jiān)控不再需要重寫代碼,只需配置文件即可。
?
?
模型的每日監(jiān)控會與模型上線時候的指標(biāo)做對比。一方面,整體監(jiān)控KS、AUC、PSI、排序性等指標(biāo)是否發(fā)生變化,另一方面,關(guān)注每個變量在訓(xùn)練時的分箱與上線后的分箱的差異,看特征的分布是否發(fā)生了偏移,實(shí)現(xiàn)自動預(yù)警。
?
當(dāng)監(jiān)控發(fā)生報警時,會提醒模型開發(fā)者哪些地方出現(xiàn)了問題,從而能夠及時響應(yīng)。例如,當(dāng)變量發(fā)生偏移的時候,考慮是否是數(shù)據(jù)源發(fā)生了波動,業(yè)務(wù)客群是否發(fā)生變化,是否需要與產(chǎn)品團(tuán)隊、策略團(tuán)隊進(jìn)行對接等問題。
?
?
最后,模型的監(jiān)控以三種形式輸出:監(jiān)控周報、定時預(yù)警以及模型效果可視化。
總結(jié)
以上是生活随笔為你收集整理的自动化特征工程和自动建模在风控场景的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 风控建模中的样本偏差与拒绝推断
- 下一篇: 风控评分卡建模全流程