吳培莎
摘 要: 本文使用UCI上的信用卡違約數(shù)據(jù)集,使用C5.0算法對(duì)其建模,預(yù)測客戶是否會(huì)發(fā)生違約行為,并進(jìn)一步比較了刪除冗余變量,引入損失矩陣,以及使用boosting組合模型建模的模型效果。最后發(fā)現(xiàn)在C5.0算法的基礎(chǔ)上使用boosting組合模型效果是最佳的。
關(guān)鍵詞: C5.0;損失矩陣;boosting
引言
預(yù)測信用卡用戶是否會(huì)發(fā)生違約行為對(duì)于信用卡公司來說是一件是非重要的事情,本文使用C5.0模型,綜合考慮了模型復(fù)雜度,模型精確度,模型誤判比率等各個(gè)方面對(duì)信用卡違約數(shù)據(jù)集進(jìn)行建模,預(yù)測用戶是否會(huì)發(fā)生違約行為,模型效果表現(xiàn)良好。
一、數(shù)據(jù)描述
數(shù)據(jù)來源于UCI,是一份對(duì)臺(tái)灣消費(fèi)者信用卡違約情況的采樣。數(shù)據(jù)集中總共有24個(gè)變量,除了變量是否違約是預(yù)測目標(biāo),其他變量總共可以分為兩類。
第一類是個(gè)人的基本信息,包括性別;學(xué)歷水平;婚姻狀況;年齡。
第二類是個(gè)人的財(cái)務(wù)狀況信息,包括貸款額度;過去消費(fèi)歷史,2005年4月到9月的消費(fèi)付款情況;2005年4月到9月的賬單總額;2005年4月到9月的前期支付總額。
二、模型介紹[1]
C5.0是決策樹算法中的一種,屬于有指導(dǎo)的學(xué)習(xí),它的生長過程本質(zhì)是對(duì)訓(xùn)練樣本的反復(fù)不斷分組過程。
1.C5.0的生長算法
C5.0以信息增益率為標(biāo)準(zhǔn)確定最佳分組變量和分割點(diǎn),同時(shí)考慮了信息增益的大小程度和為獲得信息所付出的“代價(jià)”。變量的信息增益率越高,使用其作為分組變量越佳。
2.C5.0的剪枝算法
C5.0采用后剪枝方法從葉節(jié)點(diǎn)向上逐層剪枝,比較葉節(jié)點(diǎn)的加權(quán)誤差和父節(jié)點(diǎn)的誤差,如果葉節(jié)點(diǎn)大于父節(jié)點(diǎn)的誤差則可以減掉分支。
三、模型建立
1.不平衡數(shù)據(jù)處理
統(tǒng)計(jì)了一下發(fā)生違約的樣本有6636個(gè),占總樣本的1/4不到。由于信用卡違約預(yù)測的重心在于找出容易違約的客戶,為了使預(yù)測的結(jié)果更加精確,本文對(duì)原本沒有違約的客戶進(jìn)行欠抽樣,只抽取50%的樣本,對(duì)違約的客戶進(jìn)行過抽樣,有放回地重復(fù)抽取200%的樣本。
2.樣本集分割
將樣本集分割,由于原始樣本的數(shù)據(jù)比較多,故將70%的樣本做訓(xùn)練集,30%的樣本做測試集。C5.0算法僅是利用統(tǒng)計(jì)學(xué)置信區(qū)間的估計(jì)方法在訓(xùn)練集上估計(jì)誤差,此處分割樣本集是為了在測試集上評(píng)價(jià)模型的精確性。
3. 模型運(yùn)用
在SPSS Modeler中對(duì)訓(xùn)練樣本進(jìn)行訓(xùn)練得到一顆深度為28的樹,這棵樹非常龐大,模型比較復(fù)雜。究其原因,可能是樣本集中的變量太多,過多冗余變量導(dǎo)致了樹的枝葉龐大。變量重要性排前10的變量分別有:9月/8月/7月/4月的付還情況,9月份的支付總額,5月的付還情況,4月/7月的支付總額,6月份的付還情況,貸款總額。9月份的付還情況最重要,是模型根節(jié)點(diǎn)的最佳分組變量,這說明最近一個(gè)月的付還情況在信用卡違約預(yù)測中是最重要的。性別、教育程度、婚姻狀態(tài)、年齡這些基本信息都不是重要變量,說明是否違約在這些變量的不同取值上沒有顯著區(qū)別。
從表1中第二列可以看到,原始模型在訓(xùn)練集上的正確率為74.31%,在測試集上的正確率為74.16%,測試集的正確率沒有下降;訓(xùn)練集和測試集的召回度和精度的調(diào)和均值F1-score也沒有差別很大,這說明原始模型的預(yù)測效果還是可以的。
由于模型太過復(fù)雜不利于解讀,進(jìn)一步的,考慮過濾掉除排前10的重要變量以外的變量進(jìn)行建模。訓(xùn)練得到了一顆深度為16層的樹,相較于未刪減變量的樹,模型的復(fù)雜度大大降低。從表1中第三列可以看到刪減變量之后的模型相較于原始模型各評(píng)價(jià)指標(biāo)都略微有所降低,訓(xùn)練集的正確率由74.31%降低到72.26%,而測試集的正確率比訓(xùn)練集低了0.38%,如果追求模型的簡潔,刪除掉冗余變量的模型表現(xiàn)效果還是不錯(cuò)的。
前面已經(jīng)講過,預(yù)測的更為重要的目的是在挖掘那些違約的情況。所以違約但是誤判為不違約的狀況比不違約誤判為違約的損失要大得多。為了改善這種情況,在刪除掉冗余變量的模型中引入損失矩陣,定義損失誤判為不損失2單位懲罰,不損失誤判為損失1單位懲罰,其他情況都為0。模型的樹狀圖深度為19,相較于第二個(gè)模型多了3層,模型復(fù)雜度加大。從表1中的第四列可以看到,模型在訓(xùn)練集和測試集上的正確率都大大降低,但是相較于第二個(gè)模型,訓(xùn)練集和測試集的F1-score都有所提升。說明在減少誤判違約為不違約這塊,引入損失矩陣確實(shí)得到了改進(jìn)。
4.組合模型
由于第一個(gè)模型在各種指標(biāo)的評(píng)價(jià)上都比其他兩個(gè)模型表現(xiàn)效果要好,所以考慮在第一個(gè)模型的基礎(chǔ)上引入boosting組合模型。訓(xùn)練的結(jié)果和原始模型一樣,得到了一顆深度28的樹。見表1的第五列,組合模型在訓(xùn)練集及測試集上的正確率分別為79.08%和79.12%,相較于表現(xiàn)最好的原始模型,已經(jīng)得到了非常高的提升,而且測試集上和訓(xùn)練集上的F1-score都為0.8050,相較于F1-score雙高的原始模型,也得到了較大的改進(jìn),說明模型的召回率和精度都有所提升。
四、結(jié)語
本文在信用卡違約數(shù)據(jù)集上比較了單獨(dú)使用C5.0模型、刪除冗余變量、引入損失矩陣以及使用boosting組合模型后建模的模型效果。單獨(dú)考慮模型的正確率和F1-score,組合模型的效果是最佳的,但是模型的復(fù)雜度太高,不利于解讀;如果綜合考慮模型的精簡和正確率,那么刪除掉冗余變量后的模型更易解讀,而且在訓(xùn)練集和測試集上的正確率還是比較可觀的;如果即考慮模型的精簡又考慮F1-core,那么刪除冗余變量之后再引入損失矩陣后的模型效果較佳,但是有一個(gè)缺點(diǎn)就是它的正確率不太理想。綜合考慮各種因素,在C5.0的基礎(chǔ)上,使用boosting組合模型進(jìn)行建模效果是最佳的?!?/p>
參考文獻(xiàn)
[1]薛薇,陳歡歌.SPSS Modeler數(shù)據(jù)挖掘方法及應(yīng)用[M].電子工業(yè)出版社,2014,104—153.