高藝婕
(上海外國語大學數(shù)據(jù)科學與大數(shù)據(jù)技術系, 上海 201620)
歷史證明,信貸風險是商業(yè)銀行最主要的風險之一,因此有效地預測和管理信貸風險對于銀行和其他金融機構都具有重要意義[1]。 隨著大數(shù)據(jù)和人工智能技術的發(fā)展,銀行收集到的大量用戶行為數(shù)據(jù)能夠得到更好的利用,傳統(tǒng)信貸模式下信息不對稱、違約風險高等問題也隨即獲得了解決和改善的有效途徑和方法[2]。
預測借款人是否違約是一個二元分類問題。 由于機器學習可以解決大樣本量和多特征之間的復雜關系,故可廣泛用于信貸違約預測[3-4]。 為此,本文研究考慮了隨機森林、決策樹、邏輯回歸、K 近鄰、樸素貝葉斯、BP 神經網絡六種機器學習基模型,用貝葉斯優(yōu)化分別尋找其最優(yōu)參數(shù),隨后用Voting、Starking、Adaboost 集成方法建立提高預測精度的集成學習模型。
本文的數(shù)據(jù)來源為UCI 數(shù)據(jù)庫中的臺灣信貸數(shù)據(jù)集,包含5 個數(shù)據(jù)維度、23 個數(shù)據(jù)指標。 數(shù)據(jù)集中字段說明見表1。 由表1 可知,申請人信息包含了性別、婚姻狀況、受教育程度等,與客戶的消費觀念和消費行為具有一定的關聯(lián);歷史償還情況、歷史賬單金額、歷史還款金額維度的指標則能體現(xiàn)借款人過去的消費習慣和信用狀況,并以此為根據(jù)預測其未來的還款行為。
表1 數(shù)據(jù)集字段說明Tab. 1 Explanation of datasets
總樣本中正負樣本的占比不均衡的時候, 模型的輸出就會偏向于多數(shù)類的結果。 因此,對不平衡數(shù)據(jù)進行建模前應首先將其轉化為平衡數(shù)據(jù)。 本文所采用的數(shù)據(jù)共30 000 條有效樣本,其中正例僅有6 636 條,占總樣本的22.2%;而負例有23 364 條,占總樣本的77.8%,顯然是非平衡的樣本。 對于不均衡的數(shù)據(jù),最直接、最有效的方法就是生成少數(shù)類的樣本。 這種方法稱為過采樣(Over Sampling),通過對少數(shù)類樣本的隨機采樣增加樣本個數(shù),使得每類樣本的比例為1 ∶1。
(1)邏輯回歸(Logistic Regression)。 是一種廣義的線性回歸分析模型,屬于機器學習中的監(jiān)督學習,常用來解決分類問題[5]。 因為二分類問題的標簽是0 或1,在特征和權值線性相乘累加之后,邏輯回歸用邏輯函數(shù)將最后的預測值映射到[0,1]之間,能夠避免線性回歸的輸出值遠大于1 或遠小于0 的問題[6]。 本實驗中的邏輯回歸模型采用Sigmod邏輯函數(shù),可用如下公式進行描述:
(2)決策樹。 在機器學習中,決策樹是一種分類預測模型,表示對象屬性與對象值之間的映射關系。 該方法的訓練步驟是:從一個根節(jié)點出發(fā),對一個樣本進行測試,不斷將樣本分配到分裂的子樹上,直至該樣本被指派到其對應的一個最小子節(jié)點上。通過這種方式,樣本被遞歸地測試和分配,直至到達葉節(jié)點,最后分配給葉節(jié)點的類[7]。
在本實驗中,采用基尼系數(shù)作為分裂標準的決策樹、即CART 決策樹。 這種決策樹在信用評分領域被廣泛使用。 基尼系數(shù)的計算公式見如下:
其中,pk是在樹的第k個分區(qū)或節(jié)點中被錯誤分類的樣本的比例。 基尼系數(shù)越低、表示模型的區(qū)分度越高,越適合用于分類預測。
(3)隨機森林(Random Forest)。 是一個包含多個決策樹的分類器,其輸出的類別由其中所有單個分類器輸出的眾數(shù)而定。 隨機森林在使用Bagging技術集成決策樹的基礎上,進一步在決策樹的訓練過程中引入了隨機選擇機制,使每棵子樹分別在隨機采樣的樣本子集上訓練[8]。 此外,隨機森林中,基決策樹每個結點的劃分屬性也是從隨機的屬性子集中選擇的。 這種隨機性使得隨機森林中的每顆決策樹能夠學習到不同屬性對分類的貢獻,一定程度上避免了過擬合的問題[9]。
(4)K 近鄰(K-Nearest Neighbor)。 是基于先例的學習,是惰性學習一種。 K 近鄰示意如圖1 所示。研究中,已知某待分類的測試樣本,可以選擇適當?shù)木嚯x度量,確定訓練集合中最相鄰的k個樣本,并用其來實現(xiàn)預測分類[10]。 對K 最近鄰法的分類效果,主要受距離計算方法、查詢鄰居的數(shù)目和判別方法等因素的影響。 常見距離的計算公式是曼哈頓距離、歐氏距離、切爾謝夫距離。 對于鄰近點的數(shù)量k,如果k的數(shù)值比較小,那么鄰近點的計算復雜度就會很高,并且很可能會發(fā)生過擬合;如果k值較大,模型就會變得太過簡單,產生欠擬合。 所以,正確選取k值對于分類效果有很大的影響。 在選擇分類決策算法的時候,通常采用的是多數(shù)票投票,也就是由輸入實例的k個近鄰中所屬類別最多的類別來確定輸入實例的分類。
圖1 K 近鄰示意圖Fig. 1 Illustration of K-Nearest Neighbors
(5)樸素貝葉斯。 是一種經典的機器學習算法,其原理是以貝葉斯概率論為基礎的,通過對先驗概率和條件概率建模來進行分類判別。 相較于其他絕大多數(shù)的分類算法、如決策樹、KNN、邏輯回歸和支持向量機等采用的判別方法,即對輸出Y和特征X之間關系的直接學習,樸素貝葉斯更易于理解和實現(xiàn)。
樸素貝葉斯算法定義中有2 個關鍵內容:特征之間強假設獨立和貝葉斯定理。 樸素貝葉斯的訓練過程就是以概率模型為基礎,在條件獨立的前提下,根據(jù)已有訓練集的分布來估計后驗概率P(c |x):
(6)BP 神經網絡。 BP 神經網絡模型的學習過程由正向傳播和誤差反向傳播兩個部分組成。 在正向傳遞過程中,輸入的數(shù)據(jù)由輸入層傳遞,再由各個隱含層對其進行逐層處理,最后傳遞到輸出層。 當輸出結果與預期結果不一致時,則通過誤差反向傳播的方式,對各神經元間的鏈接權重矩陣進行調整,從而達到減小誤差的目的。 在不斷地學習中,將誤差降低到了可以接受的程度。 具體步驟是:
(1)從訓練集中選擇一批樣本輸入到神經網絡中進行訓練。
(2)通過各個節(jié)點之間的連通性,進行正向、逐層的傳播,從而獲得神經網絡的實際輸出。
(3)根據(jù)損失函數(shù)計算實際輸出與期望輸出的誤差。
(4)把誤差逆向傳遞到網絡每一層,通過對損失函數(shù)的微分來改變網絡每一層中的參數(shù)權重,將整體神經網絡的預測朝著誤差降低的方向進行調節(jié)。
(5)對于訓練集中的每一個樣本,重復上述步驟,直到整個訓練樣本集合的誤差減小至滿足要求[11]。
(1)Stacking。 在復雜的分類任務、如信貸預測任務中,可以使用多種機器學習方法,而這些方法有時差異并不明顯。 另外,使用單個模型的泛化能力往往比較弱。 因此,使用模型集成的方法可以將這些模型都保留下來,結合多個模型的優(yōu)點,提升總模型的預測精度。 Stacking 就是一種典型的多模型集成學習方法,Stacking 示意如圖2 所示。 研究可知,Stacking 就是一個多層模型,將第一層各模型的預測結果作為第二層的訓練集,來學習一個新模型。這種方法通常被認為能夠提高模型的準確性和穩(wěn)健性。 為了防止過擬合,第二層學習器宜選用簡單模型。 如在回歸問題中,可以使用線性回歸;在分類問題中,可以使用邏輯回歸。
圖2 Stacking 示意圖Fig. 2 Illustration of Stacking
(2)投票集成算法(Voting)。 是一種將多個基本模型進行組合的集成方法,通過對基模型的預測結果進行投票或加權投票,從而獲得最終的預測結果,可以應用于分類和回歸問題。 常見的投票集成算法包括加權投票、軟投票和硬投票等。 加權投票是指為每個基本模型分配一個權重,并將其加權后進行投票。 軟投票是指對所有基本模型的預測結果進行加權平均,并將平均值作為最終預測結果。 硬投票是指對所有基本模型的預測結果進行投票,并將得票最多的類別或數(shù)值作為最終預測結果。
(3)Adaboost。 Boosting 集成算法是一種以弱分類器為基礎,對弱分類器進行迭代增強,從而提高整合模型性能的方法。 Boosting 算法的核心思想就是加強對訓練集中被錯誤分類樣本的訓練,使這些樣本在下一輪訓練中得到更多的關注,從而提高分類器的性能。 Boosting 算法的優(yōu)點是能夠在不增加模型復雜度的情況下提高分類器的準確性,同時也能夠處理高維數(shù)據(jù)和噪聲數(shù)據(jù)。 其中, Schapire 和Freund[12]提出的AdaBoost 算法是最具代表性的成果之一。
自適應增強(AdaBoost)、即Adaptive Boosting,其自適應性表現(xiàn)在每輪迭代中,對于被前一個基本分類器誤分類的樣本,其權值會增加,而對于正確分類的樣本,其權值會減小。 依次調整樣本權重后,再用這些樣本來訓練下一個基本分類器。 在每一次迭代中,都將添加一個新的弱分類器,直到整體模型達到預定的錯誤率要求或預先指定的最大迭代次數(shù),才會確定最終的強分類器。 Adaboost 示意如圖3 所示。
圖3 Adaboost 示意圖Fig. 3 Illustration of Adaboost
貝葉斯優(yōu)化算法基于貝葉斯定理和高斯過程模型,是一種用于優(yōu)化黑箱函數(shù)的方法。 在貝葉斯優(yōu)化中,通過不斷地選擇函數(shù)的輸入來嘗試優(yōu)化函數(shù)的輸出。 每次選擇都基于之前的嘗試結果和先驗知識,以便更好地探索和利用函數(shù)的特征。 貝葉斯優(yōu)化常用于調參問題,其中目標是最小化目標函數(shù)的輸出,而輸入是超參數(shù)的取值。 通過貝葉斯優(yōu)化,相比網格優(yōu)化和隨機優(yōu)化,可以在更少的嘗試次數(shù)內找到較優(yōu)的超參數(shù)組合。 貝葉斯優(yōu)化為待優(yōu)化函數(shù)f:x→D構造了概率模型,利用該模型選擇下一個評估點,依次迭代循環(huán)得到超參數(shù)最優(yōu)解[13]。
假設有一組超參數(shù)組合X=x1,x2,…,xn以及待優(yōu)化函數(shù)f,貝葉斯優(yōu)化假設超參數(shù)與待優(yōu)化函數(shù)存在一個函數(shù)關系,需要在x∈X內找到:
首先,根據(jù)不確定性和最小成本的原則,從采集函數(shù)中選擇一些需要評估的候選點,即高斯過程回歸中的決策規(guī)則:
貝葉斯優(yōu)化算法主要核心步驟是先驗函數(shù)和采集函數(shù)兩部分。 其中,先驗函數(shù)采用高斯回歸過程,基于貝葉斯定理,將先驗概率模型轉換為后驗概率分布。 采集函數(shù)采用改進概率(probability of improvement, PI)選擇下一個評估點[14]:
模型后訓練完成后,需要選擇合適的指標來衡量不同模型的效果,以確認最終選擇哪個模型。 對于二分類問題,樣本分為正例和負例。 在本實驗中,正例表示信貸違約的客戶,負例表示按時還款的客戶[15]。 對比樣本的預測類別和真實類別,可以得到混淆矩陣,見表2。 在此基礎上,又衍生出了一系列二分類模型評價指標。 對此擬做闡釋分述如下。
表2 混淆矩陣Tab. 2 Confusion matrix
(1)準確率(Accuracy)。 是衡量分類效果的一個常用指標,是對某一數(shù)據(jù)進行正確分類的樣本數(shù)量在總樣本數(shù)量中所占的比例。 在樣本均衡的條件下,準確率可以對模型進行客觀的評估,但是在樣本類型不均衡的情況下,尤其是在有極偏的數(shù)據(jù)的情況下,準確率很難對算法的優(yōu)劣進行客觀的評估。這里推得的Accuracy的計算公式為:
(2)召回率(Recall)。 是指正確預測的樣本占總樣本的比重。這里推得的Recall的計算公式為:
(3)精確率(Precision)。 是預測為正的樣本占所有樣本的比重。這里推得的Precision的計算公式為:
(4)F1分數(shù)(F1score)。 精準率和召回率存在一定此消彼長的關系,這是因為模型要么更傾向于將錯誤樣本預測為正,要么更傾向于將正確樣本預測為負。 為了綜合考量精準率和召回率,提出了F1score。 這里推得的F1score的計算公式為:
(5)ROC曲線及AUC值。 經過訓練集的訓練后,二分類模型可用于預測測試集數(shù)據(jù)的類別概率。 為繪制ROC曲線,需將分類閾值在[0,1] 區(qū)間不斷調整,計算出對應的真正例率(TPR) 和假正例率(FPR),并將其繪制在二維坐標系上,其中橫軸為假正例率(FPR),縱軸為真正例率(TPR)。ROC曲線越接近坐標系的左上角[0,1] 點,說明分類器效果越好。ROC曲線下的面積、 即為AUC(Area Under Curve) 值,其意義在于反映正樣本預測結果優(yōu)于負樣本預測結果的概率。 因此,AUC值可用于評估分類器對樣本進行排序的能力,值越大代表分類器效果越好。
(6)交叉驗證。 交叉驗證是對模型進行檢驗的一種方法,能夠科學評價模型的優(yōu)劣,篩選出性能最佳的模型,并能有效地防止過擬合和欠擬合。 在本實驗中,將采取五折交叉驗證進行模型評估。 交叉驗證示意如圖4 所示。 交叉驗證的主要步驟如下:
①將全部樣本劃分成k個大小相等的樣本子集。
②依次遍歷這k個子集,每次把當前子集作為驗證集,其余所有子集作為訓練集,進行模型的訓練和和測試。
③把k次測試得分的平均值作為最終的交叉驗證得分。
對各模型使用貝葉斯算法調參,其最優(yōu)參數(shù)見表3。 準確率、召回率、精確率、F1分數(shù)和五折交叉驗證得分見表4。 各個最優(yōu)基模型在信貸數(shù)據(jù)集上預測的ROC曲線和AUC值如圖5 所示。
圖5 各基模型ROC 曲線和AUC 值Fig. 5 ROC curves and AUC values of each base model
表3 各基模型最優(yōu)參數(shù)Tab. 3 Optimal parameters of each base model
表4 各基模型評價結果Tab. 4 Performance of each base model
實驗結果表明,K 近鄰和隨機森林是表現(xiàn)較好的機器學習基模型,并在測試數(shù)據(jù)集上的五折交叉驗證得分分別達到了0.763 和0.729,證明這2 個模型有不錯的分類能力。 然而,K 近鄰算法的準確率、召回率、精確率和F1分數(shù)都低于隨機森林算法,表明K 近鄰算法容易產生過擬合,并不是足夠可靠的模型,對數(shù)據(jù)的排序能力也弱于隨機森林。 對比之下,隨機森林在擁有良好分類能力的同時,還表現(xiàn)出更高的可靠性和泛化能力。 所以,最終選擇隨機森林作為最優(yōu)基模型,并將其運用于后續(xù)的集成方法中,以進一步提升信貸違約預測的準確率。
用Stacking 多模型集成方法將不同的模型堆疊起來,可以結合多個模型的學習結果,提升總模型的預測精度。 選取基模型中表現(xiàn)較好、可靠性也較好的樸素貝葉斯算法、隨機森林算法、決策樹算法和邏輯回歸算法進行實驗。 經過Stacking 集成后,集成模型的準確率比單個模型都有了顯著的提升,結果見表5。 由表5 分析發(fā)現(xiàn),邏輯回歸、隨機森林、決策樹的組合以及樸素貝葉斯、隨機森林、決策樹的組合取得了更好的效果,在測試集上的交叉驗證得分為0.815。
表5 Stacking 集成效果Tab. 5 Performance of Stacking ensemble model
用Voting 集成方法組合不同的模型同樣選取樸素貝葉斯算法、隨機森林算法、決策樹算法和邏輯回歸算法進行實驗,實驗結果見表6。 使用相同模型時,軟投票的效果優(yōu)于硬投票,然而其效果仍然不如Stacking 方法。 Voting 方法僅將多個模型的學習效果結合在一起,整體模型只進行了一層訓練。 而Stacking 模型整體訓練了2 層,比起Voting 方法集成效果更好。
表6 Voting 集成效果Tab. 6 Performance of Voting ensemble model
用Adaboost 方法對隨機森林基模型進行集成,并分別實驗了基模型數(shù)量為1 ~100 不同情況時的模型效果。 Adaboos 集成效果值見表7。
表7 Adaboost 集成效果Tab. 7 Performance of Adaboost ensemble model
Adaboost 能夠通過迭代來強化弱分類器的性能,以提升整個集成模型的性能。 Adaboost 集成效果對比曲線如圖6 所示。 實驗發(fā)現(xiàn),迭代的模型數(shù)量越多,Adaboost 集成的分類效果越好,且這種優(yōu)化的趨勢在模型數(shù)量剛開始增加時最明顯,后續(xù)逐漸趨于平緩。 基于決策樹的Adaboost 模型五折交叉驗證得分最高為0.736;而模型迭代到足夠次數(shù)時,基于隨機森林的Adaboost 模型五折交叉驗證得分能夠穩(wěn)定地保持在0.9 以上,最高達到了0.904。Adaboost_RF 模型在多種基模型的多種集成方法嘗試中對基模型的提升效果最為顯著,取得了最好的分類效果。
圖6 Adaboost 集成效果對比Fig. 6 Performance comparison of Adaboost ensemble model
本文通過貝葉斯優(yōu)化調參方法,訓練出了6 種最優(yōu)參數(shù)下的機器學習分類模型,并選取其中效果較好的基模型進行集成實驗。 其中,用Adaboost 方法集成隨機森林的信貸違約評估模型(RF -Adaboost)取得了最好的分類效果。 該模型明顯優(yōu)于其他機器學習方法,對銀行等金融機構的信貸決策提供了具有一定科學依據(jù)的參考。 同時,也提出了一種具有泛用性的分類模型訓練方法,能夠被應用于更多不同的研究領域。