楊怡濱
【摘 要】文章提出了一種基于自動(dòng)機(jī)器學(xué)習(xí)(Automatic Machine Learning)框架TPOT的信用卡逾期識(shí)別算法。通過(guò)K-近鄰、決策樹、支持向量機(jī)、隨機(jī)森林、多層感知神經(jīng)網(wǎng)絡(luò)、TPOT自動(dòng)機(jī)器學(xué)習(xí)這6種算法構(gòu)建了信用卡逾期識(shí)別模型,進(jìn)而以準(zhǔn)確率、精確率、召回率、混淆矩陣、F1值為基準(zhǔn)進(jìn)行不同模型的性能評(píng)價(jià)。經(jīng)反復(fù)的實(shí)例論證和理論測(cè)算,該框架相較于傳統(tǒng)機(jī)器學(xué)習(xí),平均準(zhǔn)確率達(dá)到80%以上,能夠在節(jié)省參數(shù)調(diào)節(jié)時(shí)間的基礎(chǔ)之上,獲得更佳的效果。
【關(guān)鍵詞】信用卡逾期;AutoML;自動(dòng)機(jī)器學(xué)習(xí);TPOT;遺傳編程
【中圖分類號(hào)】TP181 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-0688(2020)03-0092-04
0 引言
隨著國(guó)民生活水平提高,超前消費(fèi)的理念逐漸深入人心,信用卡作為超前消費(fèi)的工具受到越來(lái)越多人的青睞,相關(guān)金融機(jī)構(gòu)也乘此機(jī)會(huì)大力發(fā)展信用卡業(yè)務(wù),使得信用卡發(fā)卡量陡增。與此同時(shí),信用卡風(fēng)險(xiǎn)管理并未能及時(shí)跟上市場(chǎng)的腳步,尤其是個(gè)人信用評(píng)估方面,更是遠(yuǎn)落后于市場(chǎng)發(fā)展水平。傳統(tǒng)的個(gè)人信用評(píng)估模型多數(shù)是基于統(tǒng)計(jì)計(jì)量的模型,能夠高效處理線性問(wèn)題,但金融相關(guān)的計(jì)量通常是復(fù)雜的非線性決策問(wèn)題,而且具有模糊特質(zhì),因此近年來(lái)機(jī)器學(xué)習(xí)技術(shù)開始受到研究人員的高度關(guān)注[1]。
國(guó)外研究學(xué)者在21世紀(jì)初就對(duì)機(jī)器學(xué)習(xí)進(jìn)行信用卡風(fēng)險(xiǎn)管理做了詳細(xì)研究。例如Tony Bellotti等人在2009年發(fā)表的文獻(xiàn)中使用了支持向量機(jī)進(jìn)行信用卡風(fēng)險(xiǎn)評(píng)估,并發(fā)現(xiàn)違約風(fēng)險(xiǎn)的重要特征[2];Amir E.Khandani等人在2010年提出了使用非線性非參數(shù)模型構(gòu)建消費(fèi)者信用風(fēng)險(xiǎn)預(yù)測(cè)模型[3]。機(jī)器學(xué)習(xí)模型在國(guó)外已成為信用卡風(fēng)險(xiǎn)管理的重要手段之一。國(guó)內(nèi)對(duì)機(jī)器學(xué)習(xí)進(jìn)行信用卡風(fēng)險(xiǎn)評(píng)估也做了不少研究。李建平等人早在2004年就對(duì)支持向量機(jī)和銀行當(dāng)時(shí)使用的個(gè)人信用評(píng)估方法做了對(duì)比[4]。
目前,眾多專家學(xué)者在信用卡風(fēng)險(xiǎn)管理領(lǐng)域研究最多的機(jī)器學(xué)習(xí)模型是支持向量機(jī),對(duì)于其他模型則較少涉及,同時(shí)模型效果也非常依賴專家學(xué)者本身的業(yè)務(wù)水平和對(duì)模型的理解。綜合來(lái)看,信用卡風(fēng)險(xiǎn)管理模型的效果主要受限于兩點(diǎn):一是模型選擇,二是模型理解和調(diào)優(yōu)。針對(duì)上述兩點(diǎn),本文詳細(xì)闡述了TPOT自動(dòng)機(jī)器學(xué)習(xí)框架的結(jié)構(gòu)與實(shí)現(xiàn)原理,并在此基礎(chǔ)之上使用對(duì)比法,構(gòu)建基于自動(dòng)機(jī)器學(xué)習(xí)的信用卡風(fēng)險(xiǎn)管理模型,論證模型的有效性。
1 TPOT自動(dòng)機(jī)器學(xué)習(xí)框架
自動(dòng)機(jī)器學(xué)習(xí)是在傳統(tǒng)機(jī)器學(xué)習(xí)的基礎(chǔ)之上衍生出的一種機(jī)器學(xué)習(xí)方法。它并非新的機(jī)器學(xué)習(xí)算法,而是一種能夠?qū)λ惴ㄟM(jìn)行自動(dòng)選擇、參數(shù)進(jìn)行自動(dòng)優(yōu)化的方法。自動(dòng)機(jī)器學(xué)習(xí)借鑒了諸多機(jī)器學(xué)習(xí)的知識(shí),例如遺傳編程(Genetic Programming)、貝葉斯優(yōu)化(Bayesian optimization)、元學(xué)習(xí)(Meta learning)、遷移學(xué)習(xí)(Transfer learning)等[5]。TPOT(Tree-based Pipeline Optimization Tool)是賓夕法尼亞大學(xué)遺傳算法實(shí)驗(yàn)室開發(fā)的一個(gè)自動(dòng)機(jī)器學(xué)習(xí)框架[6]。它能夠智能地探索數(shù)千種可能來(lái)自動(dòng)化機(jī)器學(xué)習(xí)中最煩瑣的部分,從而找到最適合當(dāng)前數(shù)據(jù)情況的算法及其參數(shù)[7]。其整體功能如圖1所示。
圖1是一個(gè)典型有監(jiān)督機(jī)器學(xué)習(xí)的流程[8]。在模型構(gòu)建之前,進(jìn)行數(shù)據(jù)清理、特征選擇、特征構(gòu)造,并構(gòu)建新特征,并通過(guò)特征預(yù)處理將數(shù)據(jù)變換至更適合的建模要求。然后選擇合適的算法與模型,并進(jìn)行模型參數(shù)的調(diào)節(jié)與優(yōu)化。最后通過(guò)混淆矩陣、精確率等指標(biāo)驗(yàn)證與評(píng)估模型的性能。圖1中深色區(qū)域表示TPOT框架自動(dòng)執(zhí)行的步驟。
1.1 機(jī)器學(xué)習(xí)算法
TPOT框架在實(shí)際模型訓(xùn)練過(guò)程中使用的機(jī)器學(xué)習(xí)算法主要包括特征預(yù)處理、分解、特征選擇、模型選擇4個(gè)部分[7],所有算法絕大部分都基于Python語(yǔ)言的scikit-learn[9]機(jī)器學(xué)習(xí)框架。TPOT框架各部分主要內(nèi)容如下。
(1)預(yù)處理主要用于變換數(shù)據(jù),包括數(shù)據(jù)標(biāo)準(zhǔn)化(Standard Scaler)、數(shù)據(jù)縮放(Robust Scaler)、多項(xiàng)式特征構(gòu)造(Polynomial Features)。
(2)分解使用的是一種名為RandomizedPCA的隨機(jī)SVD的主成分分析變種。
(3)特征選擇部分包含4種方法,分別是采用遞歸特征消除策略的RFE;選擇最佳前n個(gè)特征的Select KBset;選擇最優(yōu)前n%特征的Select Percentile和移除不符合最小方差閾值特征的Select Percentile。
(4)模型選擇部分包含的模型有分類與回歸兩個(gè)方向,幾乎囊括了scikit-lean中的所有分類回歸算法,例如DecisionTreeClassfier(決策樹分類器)、DecisionTreeRegressor(決策樹回歸器)、RandomForestClassifier(隨機(jī)森林分類器)、RandomForestRegressor(隨機(jī)森林回歸器)、LogisticRegression(邏輯回歸)、LinearRegression(線性回歸)、KNeighborsClassifier(K-近鄰分類器)、GaussianNB(高斯樸素貝葉斯)等。
1.2 遺傳編程
使用正確的預(yù)處理方法、模型能夠在極大程度上解決目標(biāo)問(wèn)題,但是由于模型過(guò)多,如何選擇合適的模型,調(diào)節(jié)合適的參數(shù)就會(huì)耗費(fèi)大量的時(shí)間[10]。針對(duì)模型選擇和參數(shù)調(diào)優(yōu)的問(wèn)題,TPOT使用了遺傳編程。
Koza,De Jong等人發(fā)展了遺傳編程的概念[11,12]。遺傳編程是在遺傳算法的基礎(chǔ)之上發(fā)展出來(lái)的一種利用自然進(jìn)化的原理進(jìn)行程序進(jìn)化的編程方法,它與遺傳算法的最大區(qū)別在于其個(gè)體是可以執(zhí)行的程序而非字符串[13]。
在標(biāo)準(zhǔn)的遺傳編程方法中,程序的表現(xiàn)形式是語(yǔ)法樹[13]。遺傳編程能夠通過(guò)合理的途徑實(shí)現(xiàn)“樹”的生長(zhǎng)。在遺傳編程中,“樹”代表一些互有關(guān)聯(lián)的指令與函數(shù),可以操作給定初始結(jié)構(gòu)(鍵合圖)的形態(tài)與參數(shù),從而讓簡(jiǎn)單的鍵合圖生長(zhǎng)發(fā)育為滿足設(shè)計(jì)要求的方案。因?yàn)樵谶z傳編程中,個(gè)體的長(zhǎng)度是開放式的變長(zhǎng)表示,所以特別適合于鍵合圖的開放式的結(jié)構(gòu)空間搜索[14]。
遺傳編程的整體步驟如下:隨機(jī)生成一個(gè)初始種群,構(gòu)成最優(yōu)化問(wèn)題搜索空間,該種群每個(gè)個(gè)體均為樹狀結(jié)構(gòu),且適用于給定問(wèn)題環(huán)境;然后計(jì)算每個(gè)個(gè)體的適應(yīng)度,通過(guò)遺傳算子處理適應(yīng)度較高的個(gè)體,通過(guò)復(fù)制、突變、交叉等遺傳操作對(duì)種群不斷進(jìn)行迭代和優(yōu)化,產(chǎn)生下一代群體。經(jīng)過(guò)不停迭代,直至下一代滿足目標(biāo)函數(shù)且穩(wěn)定后為止[15]。
種群中每個(gè)個(gè)體的大小、結(jié)構(gòu)和內(nèi)容都是動(dòng)態(tài)變化的,這是由遺傳操作來(lái)實(shí)現(xiàn)的[15]。其中,復(fù)制操作的目的主要是保證優(yōu)秀個(gè)體的持續(xù)性,該操作整體可分為兩步:{1}選擇第N代的某個(gè)體;{2}將它原封不動(dòng)的保留給N+1代。
突變操作的主要作用是保證種群結(jié)構(gòu)足夠豐富,擴(kuò)充種群結(jié)構(gòu)的多樣性。其操作流程是將種群中某些樣本個(gè)體的樹狀結(jié)構(gòu)的某個(gè)分支替換為一個(gè)隨機(jī)出現(xiàn)的結(jié)構(gòu)。
交叉操作類似生物界的有性繁殖,能夠?yàn)榉N群產(chǎn)生基因更優(yōu)秀、生命力更強(qiáng)的個(gè)體(如圖2所示)。{1}隨機(jī)選擇兩個(gè)個(gè)體A、B作為父輩個(gè)體;{2}分別確定父輩個(gè)體的交叉點(diǎn);{3}將父輩個(gè)體拆分為交叉部分和剩余部分;{4}將A的剩余部分和交叉部分分別與B的交叉部分和剩余部分構(gòu)成兩個(gè)新的個(gè)體C與D。
1.3 TPOT實(shí)現(xiàn)
在TPOT中,具體遺傳編程實(shí)現(xiàn)以Pipeline為基礎(chǔ),使用了DEAP[17]這一Python庫(kù)。對(duì)應(yīng)遺傳編程步驟,TPOT中實(shí)現(xiàn)的遺傳編程步驟如下:首先隨機(jī)生成不同深度的樹類構(gòu)建初始種群(初始Pipeline),如果樹的深度為1,則從已有的分類或者回歸模型中隨機(jī)選擇一個(gè)放入樹的頂端;如果樹的深度大于1,就從預(yù)處理、特征選擇中選擇對(duì)應(yīng)的算子加入Pipeline中,并進(jìn)行參數(shù)初始化。然后評(píng)估初始Pipeline的適應(yīng)性,對(duì)初始Pipeline進(jìn)行交叉、突變等操作。其中,Pipeline的種群突變操作主要通過(guò)增加Pipeline的內(nèi)容或者更換其中的參數(shù)實(shí)現(xiàn)。交叉則是選取兩個(gè)Pipeline,對(duì)里面的內(nèi)容進(jìn)行互換,但是兩個(gè)Pipeline的類型要相同。整體流程見(jiàn)表1。
表1中的步驟、各項(xiàng)參數(shù)具體見(jiàn)表2。
2 實(shí)驗(yàn)與結(jié)果分析
研究所使用的數(shù)據(jù)為公開數(shù)據(jù)集default of credit card clients[18],該數(shù)據(jù)集涉及的特征主要有信用卡額度、性別、學(xué)歷、婚姻、年齡,以及最近半年的還款記錄、最近半年的賬單金額、最近半年的還款金額等,共計(jì)23個(gè)特征,30 000個(gè)樣本。研究時(shí),將數(shù)據(jù)劃分為2個(gè)部分,其中訓(xùn)練集樣本數(shù)目為24 000個(gè),測(cè)試集樣本數(shù)目為6 000個(gè)。
2.1 基于TPOT的信用卡逾期識(shí)別
通過(guò)混淆矩陣可以用來(lái)查看基于TPOT構(gòu)建的信用卡逾期識(shí)別模型的性能優(yōu)劣,尤其是針對(duì)識(shí)別錯(cuò)誤的樣本,效果更是一目了然(見(jiàn)表3)。
根據(jù)混淆矩陣可以得出當(dāng)前模型的精確率、召回率、F1值及對(duì)應(yīng)的加權(quán)均值(見(jiàn)表4)。
由表3、表4可知,基于TPOT構(gòu)建的信用卡逾期識(shí)別模型性能非常突出,加權(quán)后的精確率、召回率、F1值均達(dá)到0.80以上,表明模型具有一定的有效性及適用性。但同時(shí)也需要注意,由于樣本基數(shù)相對(duì)較小,模型效果與理想效果還有一段距離。
2.2 對(duì)比分析
為驗(yàn)證TPOT構(gòu)建的模型的效果,使用K最近鄰、決策樹、支持向量機(jī)、隨機(jī)森林、多層感知神經(jīng)網(wǎng)絡(luò)5種算法與之進(jìn)行對(duì)比,得到算法的診斷結(jié)果見(jiàn)表5。
綜合考慮上述模型的準(zhǔn)確率、加權(quán)平均精確率和加權(quán)平均召回率,TPOT構(gòu)建的模型在信用卡逾期中均表現(xiàn)出最優(yōu)的診斷效果。故可以認(rèn)為,TOPT對(duì)于信用卡逾期識(shí)別有良好的效果。
3 結(jié)語(yǔ)
本文使用TPOT自動(dòng)機(jī)器學(xué)習(xí)框架,通過(guò)比較K-近鄰,決策樹、支持向量機(jī)、隨機(jī)森林、多層感知神經(jīng)網(wǎng)絡(luò)和TPOT構(gòu)建的模型,最終證明相比于其他機(jī)器學(xué)習(xí)算法對(duì)于信用卡逾期識(shí)別具有更好的診斷效果。該框架的不足之處在于所用的建模算法均為有監(jiān)督學(xué)習(xí),暫時(shí)不支持無(wú)監(jiān)督學(xué)習(xí),且受scikit-learn的限制,本身預(yù)處理方法偏少。
參 考 文 獻(xiàn)
[1]李睿.信用評(píng)估與信用卡欺詐偵測(cè)的智能決策系統(tǒng)研究[D].廣州:華南理工大學(xué),2011.
[2]Bellotti T,Crook J.Support vector machines for credit scoring and discovery of significant features[J].Expert systems with applications,2009,36(2):3302-3308.
[3]Khandani A E,Kim A J,Lo A W.Consumer cre-
dit-risk models via machine-learning algorithms[J].Journal of Banking & Finance,2010,34(11):2767-2787.
[4]李建平,徐偉宣,劉京禮,等.消費(fèi)者信用評(píng)估中支持向量機(jī)方法研究[J].系統(tǒng)工程,2004(10):35-39.
[5]涂同珩,金煒東.基于自動(dòng)機(jī)器學(xué)習(xí)流程優(yōu)化的雷達(dá)輻射源信號(hào)識(shí)別[J].計(jì)算機(jī)應(yīng)用研究,2019(1):191-193.
[6]Olson R S,Bartley N,Urbanowicz R J,et al.Evaluation of a tree-based pipeline optimization tool for automating data science[C].Proc of Genetic and Evolutionary Computation Conference,2016:485-492.
[7]Olson R S,Moore J H.TPOT:A tree-based pip-
eline optimization tool for automating machine lear-
ning[J].Journal of Machine Learning Research,2016,64:66-74.
[8]周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016.
[9]Swami A,Jain R.Scikit-learn:Machine Learning in Python[J].Journal of Machine Learning Research,2012,12(10):2825-2830.
[10]黃宜華.大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)研究進(jìn)展[J].大數(shù)據(jù),2015(1):4-8.
[11]Koza J R,Koza J R.Genetic programming:on the programming of computers by means of natural selection[M].MIT press,1992.
[12]De Jong K A.On Using Genetic Algorithms to Se-
arch Program Spaces[C].ICGA,1987:210-216.
[13]劉亞杰,古天龍,徐周波,等.基于改進(jìn)遺傳編程的并行裝配序列規(guī)劃[J].計(jì)算機(jī)集成制造系統(tǒng),2013,
19(6):1238-1248.
[14]Niekum S,Barto A G,Spector L.Genetic programming for reward function search[J].IEEE Tr-
ansactions on Autonomous Mental Development,2010,2(2):83-90.
[15]蔣毅恒,白焰,朱耀春,等.基于遺傳編程的智能建模方法及應(yīng)用[J].微計(jì)算機(jī)信息,2008,24(12):
150-152.
[16]涂同珩.基于自動(dòng)機(jī)器學(xué)習(xí)的雷達(dá)信號(hào)識(shí)別研究[D].成都:西南交通大學(xué),2018.
[17]Fortin F A,Rainville F M D,Gardner M A,et al.DEAP:Evolutionary algorithms made easy[J].Journal of Machine Learning Research,2012,13(7):2171-2175.
[18]Yeh I C,Lien C.The comparisons of data mining techniques for the predictive accuracy of probability of default of credit card clients[J].Expert Systems
with Applications,2009,36(2):2473-2480.