郭天添,高 尚
(江蘇科技大學(xué) 計算機學(xué)院,江蘇 鎮(zhèn)江 212100)
當(dāng)代社會信用消費增長迅速,不僅僅是個人信用貸款,不少企業(yè)也需要進行貸款。因此,為了滿足經(jīng)濟發(fā)展的需求,對于個人甚至是企業(yè)的消費能力、社會履約能力和信譽程度進行全面信用評估是必不可少的。信用評估的發(fā)展大致經(jīng)歷了3 個階段,依次是專家分析、統(tǒng)計分析和人工智能[1]。一些機構(gòu)和學(xué)者研究了行業(yè)競爭、管理、政策等因素,并將改進的統(tǒng)計學(xué)、人工智能等技術(shù)應(yīng)用于信用評估以構(gòu)建信用風(fēng)險評估體系,并將歷史經(jīng)驗與科學(xué)實證相結(jié)合,目前已逐漸研究出一系列信用評估方法和模型[2]。如今,科學(xué)的信用評估方法作為風(fēng)險評估工具已被社會認可并得到廣泛應(yīng)用。
應(yīng)用統(tǒng)計分析知識建立的信用評估模型非常多,最常見的包括判別分析(DA)、Logistic 回歸(LR)以及分類樹(CT)等,雖然利用這些模型進行信用評估成本低,也較為快速,但若是變量之間的線性關(guān)系不足,則模型的準確度不高。隨著時代的進步和科技的發(fā)展,一些人工智能方法如決策樹(DT)、支持向量機(SVM)、人工神經(jīng)網(wǎng)絡(luò)(ANNS)、貝葉斯分類器(BC)、模糊規(guī)則系統(tǒng)以及集成學(xué)習(xí)模型等[3-9]已被用來建立準確且穩(wěn)定的信用風(fēng)險評估系統(tǒng)[10]。例如文獻[3]通過將分類樹方法引入信用評估模型,利用分類樹對申請信譽貸款的人進行分類。分類樹方法充分利用先驗信息處理申請人各項數(shù)據(jù),從而有效對數(shù)據(jù)進行分類,可在最大程度上保證被分到同一類別的申請人都具有相似的違約風(fēng)險,并盡量使每個類別的違約風(fēng)險程度不同。這種處理方法結(jié)構(gòu)非常簡單,在處理一些數(shù)據(jù)量較大的樣本時,具有較高的分類精確度和分類效率。文獻[4]將神經(jīng)網(wǎng)絡(luò)方法引入信用評估模型中,神經(jīng)網(wǎng)絡(luò)依靠自身強大的學(xué)習(xí)能力,在訓(xùn)練樣本中可自動學(xué)習(xí)知識。神經(jīng)網(wǎng)絡(luò)可以承載很多數(shù)據(jù),面對這些數(shù)據(jù)能很快適應(yīng)并作出相應(yīng)處理。不僅如此,其在處理多分類問題時也有很高的準確率。但其需要較長的訓(xùn)練時間以及大量參數(shù),可解釋性差,模型復(fù)雜度較高時容易產(chǎn)生過學(xué)習(xí)現(xiàn)象。文獻[5]使用K 近鄰判別分析法(KNN)進行信用評估。KNN 具備輕松處理大數(shù)據(jù)和增量數(shù)據(jù)并避免參數(shù)過擬合的優(yōu)點,但隨著增量數(shù)據(jù)的不斷引入,其會產(chǎn)生巨大的搜索空間,導(dǎo)致算法需要更長時間訓(xùn)練。
將深度學(xué)習(xí)算法[11]應(yīng)用于信用評估模型可有效提高準確率,但深度學(xué)習(xí)算法復(fù)雜度較高,計算開銷大,而在大數(shù)據(jù)應(yīng)用場景下,多數(shù)評估指標(biāo)在不斷更新中,即使應(yīng)用深度學(xué)習(xí)算法也無法即時重構(gòu)合適的評估模型[12]。相比之下,機器學(xué)習(xí)中的經(jīng)典算法SVM 和AdaBoost 算法具有算法簡單、消耗資源少的優(yōu)勢。因此,本文在增量學(xué)習(xí)(Incre?mental Learning)模型框架下將SVM 與AdaBoost 相結(jié)合,構(gòu)建一個總的IL-SVM-AB 分類器模型,并在南德信貸數(shù)據(jù)集上對其性能進行驗證,以期獲得更高的信用評估準確率及有效性。
支持向量機(Support Vector Machine,SVM)是依據(jù)統(tǒng)計學(xué)習(xí)理論的VC 維理論和結(jié)構(gòu)風(fēng)險最小化原理發(fā)展而來的方法。SVM 算法思想不同于傳統(tǒng)的最小二乘法思想,以二維數(shù)據(jù)為例,其具有兩個特征:①需要盡可能地將兩類樣本分開;②兩類樣本點中所有離它最近的點都要盡可能遠(見圖1)。其中,A 線、B 線、C 線都將數(shù)據(jù)分成兩類,但只有B 線才是最好的決策邊界。該方法不僅可使結(jié)構(gòu)風(fēng)險最小化,并且在有限樣本下具有很強的泛化能力。
在數(shù)據(jù)增多的情況下,在低維空間中可能就無法簡單地將其直接分開。此時,SVM 通過核方法把數(shù)據(jù)對應(yīng)到一個高維空間[13],并通過一個超平面表示決策邊界,最大化超平面與每個類別數(shù)據(jù)點之間的最近距離。在高維空間中看就如同是一個平面將這些數(shù)據(jù)完美分開,但在二維空間下可能就是一條不規(guī)則的曲線將數(shù)據(jù)分開。SVM 利用核方法有效提高了算法的泛化能力[14],但在數(shù)據(jù)本身就是高維的情況下,SVM 處理起來則效果不佳,更加費時費力。
Fig.1 Principle of support vector machine圖1 支持向量機原理
信用評估可被視為3 種問題,當(dāng)被視為聚類問題時,人們需要處理的是,由未知類別對象的不同特征指標(biāo)確定不同對象是否屬于不同類別;當(dāng)被視為分類問題時,人們需要處理的是,由不同類別的多個指標(biāo)判斷對象類別;當(dāng)被視為回歸問題時,人們需要處理的是,基于多個未知類別對象的多個指標(biāo)估計多個對象的信用值。
基于SVM 的信用評估,其以訓(xùn)練誤差作為優(yōu)化問題的約束條件,以置信范圍最小化作為優(yōu)化目標(biāo),具有較好的推廣能力。SVM 技術(shù)目前已經(jīng)很成熟,不僅可用于分類問題,而且可以處理回歸問題,因此非常適用于處理信用評估問題。另外,SVM 的優(yōu)點還在于其解的唯一性,而且是全局最優(yōu)解[15]。
Boosting 是集成學(xué)習(xí)方法的一種,也被稱為增強學(xué)習(xí)(提升法),可將一些預(yù)測精度略低的弱學(xué)習(xí)器增強為高精度的強學(xué)習(xí)器[16]。AdaBoost 是一種迭代算法,可應(yīng)用于任意分類器,只要該分類器能夠處理加權(quán)數(shù)據(jù)即可。
AdaBoost 分類器可排除掉關(guān)鍵訓(xùn)練集上不必要的數(shù)據(jù)特征,提升步驟通常分為3 步:首先通過訓(xùn)練集樣本的權(quán)重訓(xùn)練弱分類器,然后根據(jù)其加權(quán)錯誤率重新分配權(quán)重,最后根據(jù)其表現(xiàn)更新權(quán)重。
AdaBoost 的自適應(yīng)體現(xiàn)在增大之前分類器錯誤分類的樣本權(quán)值,減小分類器正確分類的樣本權(quán)值,以此類推。與此同時,不斷在下一輪中加入一個弱分類器,一直達到期望的最小容錯率或迭代次數(shù)達到最大,最終確定強分類器[17]。類似于人類學(xué)習(xí)新知識的過程,第一遍學(xué)習(xí)時會記住一部分知識,但往往也會犯一些錯誤,對于這些錯誤,人的印象會很深,在第二遍學(xué)習(xí)時就會針對相關(guān)知識加強學(xué)習(xí),以減少類似錯誤的發(fā)生。不斷循環(huán)往復(fù),直到犯錯誤的次數(shù)減少到很低的程度。
增量學(xué)習(xí)[18-19]是一種機器學(xué)習(xí)方法,其輸入的數(shù)據(jù)被不斷用于擴展現(xiàn)有模型知識,即進一步訓(xùn)練模型。該方法是一種監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)的動態(tài)技術(shù),當(dāng)訓(xùn)練數(shù)據(jù)逐漸增加或數(shù)據(jù)大小超出系統(tǒng)內(nèi)存限制時,可應(yīng)用該方法對持續(xù)增加的數(shù)據(jù)進行監(jiān)控與切片,并對切片后的部分數(shù)據(jù)進行訓(xùn)練,直到訓(xùn)練完所有數(shù)據(jù)。學(xué)習(xí)率控制新數(shù)據(jù)的適應(yīng)速率,然而對新知識的學(xué)習(xí)必然導(dǎo)致對舊知識的遺忘。可設(shè)置永不遺忘其所學(xué)習(xí)的知識,應(yīng)用此類設(shè)置的算法被稱為穩(wěn)定的增量機器學(xué)習(xí)算法。
傳統(tǒng)分類算法面對樣本數(shù)量的不斷增加或評價指標(biāo)的不斷更新,數(shù)據(jù)樣本的特征屬性也會不斷更新,從而面臨維數(shù)災(zāi)難問題[20]。增量學(xué)習(xí)是對新增樣本集不斷更新學(xué)習(xí)的方法,其思想充分考慮到新增樣本集對原有樣本集的影響,同時又充分利用歷史分類的結(jié)果,使學(xué)習(xí)過程具有延續(xù)性。增量學(xué)習(xí)算法不需要過多的內(nèi)存空間保存歷史數(shù)據(jù),而且在對新增樣本進行訓(xùn)練時,利用歷史訓(xùn)練結(jié)果進行運算,可明顯縮短訓(xùn)練時間,提高訓(xùn)練效率。增量學(xué)習(xí)算法適用于對大量數(shù)據(jù)集進行挖掘,并且在新增訓(xùn)練數(shù)據(jù)不斷被引入的情況下,可得到更高效的訓(xùn)練結(jié)果。
文獻[6]將SVM 引入到信用評估中,最大程度地降低了結(jié)構(gòu)風(fēng)險,并確保在有限樣本甚至小樣本情況下,依舊具有強大的泛化能力;文獻[7]利用AdaBoost 方法對個人信用進行評估,由于AdaBoost 方法是由多個基分類器組合而成的,可極大程度上提升弱分類器的準確率和使用率,使各個分類器都各司其職。
在現(xiàn)實生活中,信用評估并不容易,一些金融機構(gòu)會盡可能收集與積累大量數(shù)據(jù),總結(jié)出具有“好”和“不好”信用的客戶規(guī)律,以減少機構(gòu)面臨的風(fēng)險,但這些數(shù)據(jù)中的所有特征屬性并不都是必需的,從而造成了數(shù)據(jù)冗余和災(zāi)難。過多的無用屬性會在無形中增加模型計算復(fù)雜度,還會降低模型工作效率。然而,單個SVM 模型不能主動進行特征選擇及降維,但是AdaBoost 方法可以極大程度上解決該問題。在此基礎(chǔ)上,本文提出在增量學(xué)習(xí)框架下設(shè)計的IL-SVM-AB 信用評估模型。當(dāng)引入數(shù)據(jù)時,先大致判斷是否直接可分,以及數(shù)據(jù)樣本量是否超過設(shè)定值。如果直接可分并且是小樣本情況下,直接使用SVM 處理數(shù)據(jù);若不滿足以上情況,轉(zhuǎn)入SVM-AdaBoost 處理系統(tǒng),即使用多個加權(quán)SVM 對數(shù)據(jù)進行處理。其包含3 個子系統(tǒng):一是增量學(xué)習(xí)框架,二是數(shù)據(jù)判斷系統(tǒng),三是SVM-AdaBoost 數(shù)據(jù)處理系統(tǒng)。
支持向量機的性能是由其參數(shù)以及核函數(shù)決定的。在本次設(shè)計的IL-SVM-AB 模型中,通過網(wǎng)格搜索確定最優(yōu)核函數(shù)為高斯徑向基核函數(shù),懲罰參數(shù)C 為1 時模型訓(xùn)練效果最佳。懲罰參數(shù)C 的作用相當(dāng)于是對模型分類準確度及分類間隔大小的權(quán)衡。當(dāng)C 取值越大,表示其對模型分類準確度要求越高,也即要杜絕分類錯誤的樣本,因而容易產(chǎn)生過擬合;當(dāng)C 取值越小,表示模型只重視分類間隔是否足夠大,而不在乎分類準確率,模型容易出現(xiàn)欠擬合現(xiàn)象。核函數(shù)的改變實際上是改變了樣本空間的復(fù)雜程度,使用不同核函數(shù)會變換到不同的特征空間。為了防止模型過擬合或欠擬合,懲罰參數(shù)C 和核函數(shù)參數(shù)選擇一定要在訓(xùn)練模型上反復(fù)斟酌,通過實踐得出最合適的參數(shù)。本文通過網(wǎng)格搜索與交叉驗證方法確定IL-SVM-AB 信用評估模型基分類器的參數(shù),以此保證分類器的狀態(tài)。
增量學(xué)習(xí)框架如圖2 所示。
Fig.2 Incremental learning framework圖2 增量學(xué)習(xí)框架
模型對數(shù)據(jù)處理的第一步是判斷數(shù)據(jù)是否需要系統(tǒng)進行處理,通過生成決策樹判斷數(shù)據(jù)是否為高維數(shù)據(jù),即是否可以快速、準確地分為兩個類別,并判斷數(shù)據(jù)樣本量是否在閾值內(nèi)。若能達到以上兩種設(shè)定情況的要求,則通過將數(shù)據(jù)直接傳遞給SVM 算法作下一步處理;若待分類樣本不屬于同一類別,或數(shù)據(jù)樣本量超出閾值,則通過SVMAdaboost 模型處理數(shù)據(jù)。數(shù)據(jù)判斷系統(tǒng)如圖3 所示,SVMAdaBoost 數(shù)據(jù)處理系統(tǒng)如圖4 所示。
Fig.3 Data judgment system圖3 數(shù)據(jù)判斷系統(tǒng)
Fig.4 SVM-AdaBoost data processing system圖4 SVM-AdaBoost 數(shù)據(jù)處理系統(tǒng)
IL-SVM-AB 信用評估模型具體步驟如下:
步驟1:數(shù)據(jù)預(yù)處理。查看數(shù)據(jù)分布情況,如圖5 為每個數(shù)據(jù)特征直方圖,X 軸表示每個特征取值區(qū)間,Y 軸表示滿足該特征區(qū)間的樣本數(shù)量。
將數(shù)據(jù)通過Box-Cox 轉(zhuǎn)換為正態(tài)分布,具體情況如圖6所示,可在一定程度上減少無法觀察到的誤差。相對于直方圖,轉(zhuǎn)換之后的數(shù)據(jù)特征在顯示時會更加平滑,也可用來預(yù)測變量的相關(guān)性。
圖7 顯示的是數(shù)據(jù)特征的兩兩相關(guān)性,坐標(biāo)軸顯示的是每個數(shù)據(jù)特征。通過這種類型的特征關(guān)系圖,可看到數(shù)據(jù)之間的關(guān)聯(lián),大致判斷哪些特征對分類情況沒有影響,實際操作時可嘗試將這些毫不相關(guān)的特征pass 掉。
步驟2:確定初始訓(xùn)練集與測試集。分離出評估數(shù)據(jù)集是一個非常好的辦法,因為是在同一數(shù)據(jù)集下進行分離的,不僅可確保兩組數(shù)據(jù)集的數(shù)據(jù)特征量相同,而且可以保證評估數(shù)據(jù)集和用于模型訓(xùn)練的數(shù)據(jù)集互不影響,最后還可利用該評估數(shù)據(jù)集分析與判斷模型的準確度。本次實驗分離了30%的數(shù)據(jù)作為測試集,70%的數(shù)據(jù)作為訓(xùn)練集。
步驟3:數(shù)據(jù)選擇。根據(jù)步驟2 得到的數(shù)據(jù)集,若數(shù)據(jù)特征維數(shù)在設(shè)定值之下,則開始訓(xùn)練SVM 分類器;若數(shù)據(jù)特征維數(shù)過高,則構(gòu)建SVM-AdaBoost 分類模型。假設(shè)數(shù)據(jù)集中總共有N 條數(shù)據(jù),將這N 條數(shù)據(jù)平均分成K 份子集,每個子集中則有N/K 條數(shù)據(jù)。在每次驗證時,用已劃分好的K 個子集中的一個作為測試集,然后將剩下的子集用于訓(xùn)練集訓(xùn)練,之后用測試集進行模型評價。在SVM 分類器訓(xùn)練方面,對訓(xùn)練數(shù)據(jù)集采用網(wǎng)格搜索法確定SVM 參數(shù)?;诖舜斡?xùn)練結(jié)果,懲罰參數(shù)C 為1,當(dāng)徑向基函數(shù)kernel為RBF 高斯徑向基核函數(shù)時訓(xùn)練效果最佳。
步驟4:SVM-AdaBoost 模型構(gòu)建。實際中以銀行為例,拒絕信用“好”的客戶和接受信用“壞”的客戶兩種錯誤造成的損失并不相同。拒絕信用“好”的客戶,可能損失的只是如貸款利息一些影響不大的利潤。但若接受信用“壞”的客戶,銀行則可能遭受巨大的違約風(fēng)險,并涉及到法律問題。也即是說,接受具有“壞”信用客戶的成本比拒絕具有“好”信用客戶的成本高得多,得不償失。為了提高模型的實用性,設(shè)置損失比例似乎是一個不錯的選擇。
Fig.5 Histogram of data features圖5 數(shù)據(jù)特征直方圖
Fig.6 Normal distribution transformation of data圖6 數(shù)據(jù)正態(tài)分布轉(zhuǎn)換圖
在模型訓(xùn)練過程中,通過損失比例對訓(xùn)練集數(shù)據(jù)特征進行加權(quán),根據(jù)每個特征在信用評估中的重要性進行權(quán)值初始化,每個特征對應(yīng)一個SVM 分類器,即對每個SVM 分類器進行加權(quán)處理;在AdaBoost 提升框架中加入加權(quán)SVM,通過提升框架,初始訓(xùn)練集會得出多樣化的訓(xùn)練集子集,然后通過該子集生成基分類器,從而計算SVM 分類的錯誤率?;诸惼饔啥鄠€SVM 特征組成,因此在給定K 輪訓(xùn)練數(shù)后即可生成相應(yīng)的基分類器。每個基分類器的識別率雖然不是很高,但是聯(lián)合后的分類器具有很高的辨識率,從而提高了算法識別率。對提升后的分類器進行加權(quán),生成最終的結(jié)果分類器。SVM-AdaBoost 模型是由多個弱分類器加權(quán)構(gòu)成的強分類器模型,而SVM 是一個強分類器,現(xiàn)在作為一個弱分類器加入到AdaBoost 模型中,效果也是顯而易見的。
Fig.7 Data characteristic correlation diagram圖7 數(shù)據(jù)特征相關(guān)圖
步驟5:此時的數(shù)據(jù)集是分類器最原始的知識庫,將增量數(shù)據(jù)作為新學(xué)習(xí)的知識加入已存在的知識庫中。依舊對特征值進行權(quán)值評定,若特征是新加入進來的,有多少個特征則追加相應(yīng)數(shù)量的SVM 分類器,但需要在SVM-Ad?aBoost 數(shù)據(jù)模型中找到每個數(shù)據(jù)合適的位置,插入增量數(shù)據(jù)。SVM 算法部分根據(jù)得到的新數(shù)據(jù)集,依據(jù)步驟4 訓(xùn)練模型。
步驟6:根據(jù)評價指標(biāo),將本文基于增量學(xué)習(xí)的SVMAB 信用評估模型與其他信用評估模型進行對比。
本文實驗采用UCI 上的南德信貸2020 版數(shù)據(jù)集(https://archive.ics.uci.edu/ml/machine-learning-databases/00573/),數(shù)據(jù)集包括700 條信用好和300 條信用不好的客戶數(shù)據(jù),如表1 所示,每條數(shù)據(jù)包含21 種數(shù)據(jù)變量。若信譽好,則變量kredit 中的標(biāo)記為1,若信譽不好,則標(biāo)記為0。
Table 1 Property description of South Germany credit data set表1 南德信貸數(shù)據(jù)集屬性描述
最常見的評價指標(biāo)是模型的準確率A、精確率P、召回率R 以及F1 值,都可通過混淆矩陣計算得到。
準確率A 表示正確分類信用“好”的客戶以及信用“壞”的客戶數(shù)量在所有分類客戶中的比例,取值范圍為0~1,值越高表示越準確。
精確率P 表示正確分類信用“壞”的客戶數(shù)量在預(yù)測為信用“壞”客戶中的比例,取值范圍為0~1。
召回率R 表示正確分類信用“壞”的客戶數(shù)量在實際為信用“壞”客戶中的比例,取值范圍為0~1。
通過計算精確率P 和召回率R,得到其調(diào)和均值,即F1值,取值范圍為0~1,0 最差,1 最好。
最后取準確率A 和F1 值作為評價指標(biāo)評估模型優(yōu)劣。信用評估旨在挑選出信用“壞”的客戶,因為若信用“壞”的客戶被判斷成信用“好”的客戶,其承擔(dān)的風(fēng)險更高,所以混淆矩陣定義如表2 所示。
Table 2 Definition of confusion matrix表2 混淆矩陣定義
各項評價指標(biāo)計算方法如下:
表3 給出了使用各傳統(tǒng)算法構(gòu)建信用評估模型之后在南德信貸數(shù)據(jù)集上的實驗結(jié)果,表4 給出了使用各集成算法構(gòu)建信用評估模型之后在南德信貸數(shù)據(jù)集上的實驗結(jié)果,圖8 給出了總的模型實驗結(jié)果對比。從實驗結(jié)果可以看出:①在每次實驗中,根據(jù)常用的評價指標(biāo)來看,本文模型的效果都是最佳的,證明了該方法用于信用評估是有效的;②集成模型相比傳統(tǒng)模型的分類準確率普遍更加穩(wěn)定,準確率偏差不太明顯;③將此次設(shè)計的IL-SVM-AB 模型用于信用評估分類,比直接用SVM 分類時的F1 值提高了17.5%,準確率A 提高了9.7%;在相同情況下,比直接用AdaBoost 分類時的F1 值提高了17.6%,準確率A 提高了11.7%??梢悦黠@看到,在增量學(xué)習(xí)框架下,AdaBoost 與SVM 可以很大程度上實現(xiàn)互補。
Table 3 Comparison of traditional models表3 傳統(tǒng)模型比較
Table 4 Comparison of integration models表4 集成模型比較
Fig.8 Comparison of experimental results圖8 實驗結(jié)果對比
本文在SVM 與AdaBoost 算法基礎(chǔ)上融合增量學(xué)習(xí)思想,提出適用于信用評估的IL-SVM-AB 算法。實驗結(jié)果表明,該算法模型的準確率不僅優(yōu)于傳統(tǒng)線性算法LR 以及非線性算法KNN、NB、SVM 和CART 等,而且優(yōu)于RF、ET、Ad?aBoost、GBM 等集成算法。本文設(shè)計的IL-SVM-AB 模型不僅對SVM 與AdaBoost 進行了參數(shù)優(yōu)化,而且將加權(quán)SVM 加入到AdaBoost 提升框架中進行數(shù)據(jù)特征篩選,形成新的分類器進行分類,并在增量學(xué)習(xí)框架下進行分析與評估。該方式不僅保證了新模型在大數(shù)據(jù)時代下不會因新增數(shù)據(jù)的加入,導(dǎo)致準確率下降或時效性不足而被淘汰,而且能利用這些新增數(shù)據(jù)或指標(biāo)更好地完善模型。此次選取的數(shù)據(jù)集相當(dāng)于二分類問題(信用好或不好),因此未來進一步研究方向如下:①如何在保證準確度的前提下(提高準確度更佳)將模型應(yīng)用于多分類問題;②在增量學(xué)習(xí)框架下,在其中加入兩個甚至更多分類器組合模型,例如隨機森林、神經(jīng)網(wǎng)絡(luò)及隨機梯度上升算法等,使模型效果更優(yōu);③如何選取新模型進行屬性約簡,在增量學(xué)習(xí)框架下更好地進行新增數(shù)據(jù)篩選;④在大數(shù)據(jù)時代,數(shù)據(jù)挖掘也是一個不錯的方向。