陳靜靜,劉 升
(上海工程技術大學 管理學院,上海 201620)
隨著P2P網(wǎng)貸——新型金融服務模式迅猛發(fā)展,風險也逐漸顯露,其中個人信用風險在眾多風險中占據(jù)主導地位。因此,個人信用評估是保證這一行業(yè)健康發(fā)展的關鍵。近年來,人工智能逐漸興起,基于機器學習的評估模型逐漸成為信用評估的趨勢[1],常用的模型有貝葉斯網(wǎng)絡[2]、決策樹(decision trees,DT)[3]、神經網(wǎng)絡[4]和支持向量機(support vector machine,SVM)[5]等。由于SVM在解決小樣本、非線性問題上具有獨特的優(yōu)勢,且能夠在樣本信息有限的情況下化解訓練精度與泛化能力之間的矛盾,因此被廣泛應用于信用評估領域。SVM的評估性能和泛化能力受參數(shù)的影響較大,到目前為止還沒有一套完備的理論去解決SVM參數(shù)優(yōu)化問題。
近年來,隨著智能算法的飛速發(fā)展,越來越多的學者開始將智能算法應用到對SVM參數(shù)優(yōu)化問題上。文獻[6]提出了遺傳算法優(yōu)化SVM,但復雜的編碼解碼過程限制了該優(yōu)化算法的適用性。文獻[7]提出收斂速度快的粒子群(PSO)算法優(yōu)化SVM的參數(shù),但算法存在易陷入局部極值的問題。文獻[8]利用能夠跳出局部極值的蟻群(ACO)算法對SVM的參數(shù)進行尋優(yōu),由于其龐大的計算量,在處理復雜問題時的效果并不佳。文獻[9-11]對上述基本算法進行改進,但是這些算法仍然存在容易陷入局部最優(yōu)、尋優(yōu)速度慢、對初始值敏感等問題。
天牛群算法[12](beetle swarm optimization,BSO)自提出以來,在眾多領域得到廣泛應用,如文獻[13]用BSO算法來規(guī)劃三維路徑,文獻[14]利用BSO算法優(yōu)化對光伏最大功率點追蹤的速度和精確度。該文將天牛群算法用于對SVM參數(shù)優(yōu)化的問題。為了改善傳統(tǒng)BSO算法迭代速度慢、尋優(yōu)精度低等問題,該文對BSO算法進行了改進。為了協(xié)調尋優(yōu)速度與解精度,引入了正態(tài)函數(shù)對步長進行優(yōu)化;天牛速度更新時,不僅僅考慮了其向全局最優(yōu)和個體最優(yōu)學習的因素,還考慮到天牛通過自身判斷對速度更新產生的影響,并利用改進的收縮算子對學習因子進行了調整。最后將改進的天牛群算法用于SVM的參數(shù)尋優(yōu),將SVM訓練集分類準確率作為優(yōu)化目標建立目標函數(shù),選擇最優(yōu)的SVM懲罰因子和核參數(shù)。利用UCI中的Wine、Iris、Ionosphere、Breast Cancer(BC)對改進模型的有效性進行了驗證。最后利用隨機森林算法,在不影響評估結果精度的前提下,剔除干擾數(shù)據(jù),選取關鍵特征,并將處理過的信用數(shù)據(jù)German作為IBSO-SVM模型的輸入數(shù)據(jù)進行實例分析。
天牛須算法(beetle swarm algorithm,BSA)是基于天牛覓食規(guī)律而開發(fā)的一種新的人工智能算法,天牛覓食時,通過它的兩根觸須感受的食物濃度不同來決定下一步的運動方向,若左須感受到食物氣味較右須強,則天牛向左須方向移動。反之,則向右須方向移動。
隨著研究的不斷深入,學者發(fā)現(xiàn)BSA算法處理高維函數(shù)時的性能并不強,且對初始位置敏感。受群體優(yōu)化算法的啟發(fā),將粒子群的思想融入到BSA算法中,提出了天牛群算法。用粒子群的飛行速度來代替天牛的方向,產生天牛種群并加入了向個體極值和群體極值學習的思想。生成的n只天牛用X=(X1,X2,…,Xn)表示,在m維空間中的第i只天牛的速度可表示為vi=(vi1,vi2,…,vis),第i只天牛的個體極值為pi=(pi1,pi2,…,pim),全局極值為pg=(pg1,pg2,…,pgm),第i只天牛的位置更新如公式(1)所示:
(1)
(2)
(3)
公式(2)中的c1和c2為學習因子,取值為2,r1和r2為[0,1]范圍內的隨機數(shù)。w為慣性權重,更新公式如式(4)所示:
w=wmax-(wmax-wmin)*t/maxt
(4)
其中,wmax=0.9,wmin=0.4,maxt為最大迭代次數(shù)。
傳統(tǒng)的天牛群算法在速度更新時只考慮個體向全局極值和局部極值學習的行為,而忽略了天牛個體對周圍環(huán)境所做出的判斷,該文在對天牛速度更新時綜合考慮了各種影響因素。為了更好地協(xié)調全局和局部搜索,引入了改進的收縮因子對學習因子進行調整,速度的更新表達式如公式(5)所示,收縮因子的表達式如公式(6)所示。
θ=1-1/(e-1)*(et/maxt-1)
(6)
為了兼顧尋優(yōu)速度與解精度,該文引入正態(tài)分布函數(shù)作為調整步長的算子。該函數(shù)前期緩慢減少,有利于提高尋優(yōu)速度,后期高速下降,達到提高解精度的目的,函數(shù)表達式如公式(7)所示:
g(t/maxt)=e-π*t/maxt
(7)
改進后的步長調整公式可表示為:
δt+1=δt*e-π*t/maxt
(8)
由于該文主要優(yōu)化的參數(shù)為懲罰因子(C)和核參數(shù)(g),因此將IBSO種群放置到二維空間進行尋優(yōu),每個天牛的位置都代表著一對參數(shù)(C,g),將分類正確率作為尋優(yōu)的目標函數(shù),利用IBSO算法優(yōu)化SVM的參數(shù),選取最優(yōu)的(C,g)組合來訓練SVM,使得訓練后的模型在測試集上能取得較高的分類準確率。
隨機森林(random forest,RF)在以決策樹為基學器構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。
利用隨機森林計算某個特征的重要性的具體步驟如下:
(1)計算每棵決策樹的袋外數(shù)據(jù)(out of bag,OOB)誤差,記為erro1。
(2)對所有OOB數(shù)據(jù)的特征X加入干擾信息,重新計算袋外數(shù)據(jù)誤差,記為erro2。
(3)特征X的重要性為∑(erro2-erro1)/k,k為袋外數(shù)據(jù)的個數(shù)。之所以這么表示特征重要性,是因為加入噪聲之后,OOB的準確率若出現(xiàn)大幅度減少,則說明該特征對預測結果有很大的影響,即該特征的重要性較大。
由于信用數(shù)據(jù)紛繁復雜,特征多且有連續(xù)與離散兩種類型,故從高維數(shù)據(jù)中挑選出有效的特征對最終的信用評估結果起著至關重要的作用。該文首先利用隨機森林對信用數(shù)據(jù)進行預處理,剔除干擾特征,而后將處理過的數(shù)據(jù)作為IBSO-SVM模型的實驗數(shù)據(jù)?;旌夏P瓦M行信用評估的具體步驟如圖1所示。
圖1 隨機森林融合IBSO-SVM的流程
步驟1:獲取信用數(shù)據(jù)German,設置種群數(shù)量n、最大迭代次數(shù)maxt,設定C和g的取值范圍。
步驟2:數(shù)據(jù)預處理。預處理數(shù)據(jù)是為了消除量綱,規(guī)范化數(shù)據(jù)。
步驟3:利用隨機森林進行特征篩選。
步驟4:數(shù)據(jù)集劃分。將數(shù)據(jù)集劃分為訓練集和測試集兩部分。訓練集用于選擇較優(yōu)性能的SVM模型;測試集用于檢驗優(yōu)化后的SVM模型的分類性能。
步驟5:初始化天牛群位置。由于該文需要優(yōu)化的參數(shù)為SVM的懲罰參數(shù)(C)和核參數(shù)(g),因此將天牛群搜索的空間設置為二維,每個天牛的位置代表一對參數(shù)(C,g)。
步驟6:由K折交叉驗證法計算每個天牛個體的適應度值,記錄當前個體及種群最優(yōu)值。
步驟7:利用改進后的IBSO對天牛位置進行更新。
步驟8:計算位置更新后的適應度值,通過適應度值的比較,更新個體位置,并獲取新的種群。
步驟9:判斷算法是否滿足終止條件;若滿足,則轉到步驟10,否則,轉到步驟7。
步驟10:獲取最優(yōu)參數(shù)(C,g)。
步驟11:采用最優(yōu)參數(shù)對訓練樣本進行訓練建模。
步驟12:采用建好的模型對測試樣本進行檢測。
步驟13:輸出最優(yōu)參數(shù)(C,g)及分類準確率。
為了驗證IBSO優(yōu)化SVM參數(shù)的有效性,與遺傳算法(GA)、粒子群算法(PSO)、烏鴉算法(CSA)、天牛群算法(BSO)的SVM參數(shù)尋優(yōu)性能進行對比。利用UCI中公開的信貸數(shù)據(jù)對隨機森林融合IBSO-SVM的模型進行實例分析,并將實驗結果與基本算法及其他文獻算法進行對比分析。
實驗數(shù)據(jù)來源于UCI庫中的公開數(shù)據(jù)。實驗環(huán)境為Windows 10操作系統(tǒng),CPU為 Intel 3.20 GHz,8 GB內存,編程工具為Matlab 2018b。所有的實驗都采用了5折交叉驗證。數(shù)據(jù)集描述如表1,考慮樣本差距較大,對數(shù)據(jù)進行歸一化處理。德國的信貸數(shù)據(jù)特征描述如表2所示。
表1 數(shù)據(jù)集描述
表2 德國信貸數(shù)據(jù)集描述
種群數(shù)量的大小均為20,最大迭代次數(shù)為100。BSO初始步長step=10,兩須間距d=2,速度范圍V=[5.12,-5.12];GA算法的交叉率為0.8,變異率為0.05;PSO算法的慣性權重、學習因子與BSO算法的設置相同;CSA飛行長度F=2.5,辨識率AP=0.1。
對IBSO-SVM模型的評價主要以分類正確率為依據(jù),將混淆矩陣作為混合模型的評估工具,混淆矩陣見表3。依據(jù)混淆矩陣,該文選取整體正確率(Accuracy)、Recall值、特異度(Specificity)三個評價指標來評估模型的效果。指標的計算方法如下:
表3 混淆矩陣
通過隨機森林挖掘出了German中的重要信用評估指標,各個指標的重要性排序如圖2所示,其中X軸表示占比值,Y軸表示變量。
圖2 隨機森林挑選出的German特征及其重要性排序
該文選取的特征為:A1(0.147 7)、A2(0.139 2)、A3(0.077 7)、A4(0.216 9)、A5(0.066 6)、A6(0.039 7)、A8(0.033 7)、A9(0.060 0)、A10(0.135 9)、A12(0.013 0)、A13(0.021 6)、A16(0.013 191 985)、A17(0.014 9)。
表4所示為GA-SVM、PSO-SVM、CSA-SVM、BSO-SVM、IBSO-SVM在UCI數(shù)據(jù)上的分類正確率。IBSO-SVM基于隨機森林處理過的German數(shù)據(jù)進行信用評估,并選取SVM、KNN、樸素貝葉斯、決策樹、Bagging、AdaBoost、隨機森林、信用評分的多目標粒子群優(yōu)化[15](multi-objective particle swarm optimization for credit scoring,MOPSO-CS)、BP神經網(wǎng)絡與AdaBoost混合模型[16](hybrid model of AdaBoost and BP neural network,BP-AdaBoost)作對比實驗,得到相應的評價指標數(shù)據(jù)如表5所示。
表4 各算法的測試集準確率 %
由表4可知,文中算法IBSO-SVM對UCI庫中挑選的四個標準數(shù)據(jù)的分類正確率最高,對數(shù)據(jù)Wine和Iris的分類正確率甚至達到了100%,可見該改進算法的有效性。
如表5所示,使用上述不同的算法,得到德國信用數(shù)據(jù)集驗證結果。文中提出混合模型的信用評估總精度優(yōu)于其他算法。在Specificity準確率方面,與其他分類算法相比,提出的混合模型表現(xiàn)最好,即在對德國數(shù)據(jù)集預測“壞”客戶方面,提出的混合模型是最好的,具有令人滿意的準確率。對比文中使用所有模型的Recall值和Specificity值,Recall精度明顯優(yōu)于Specificity精度,說明由于信用風險的復雜性,將信用狀況較差的客戶與信用評價模型良好的客戶進行分類比較困難。
表5 各算法對信用數(shù)據(jù)的評估結果 %
由于參數(shù)選取對SVM的預測性能影響較大,提出改進的天牛群算法(IBSO)優(yōu)化SVM的參數(shù)。速度更新時,增加了天牛的自身判斷,并加入改進的收縮因子對學習因子進行調整;利用正態(tài)分布函數(shù)自適應地調整尋優(yōu)步長,既保證了尋優(yōu)速度也提高了解的精度。最后將IBSO參數(shù)尋優(yōu)性能與基本的BSO、GA、PSO和CSA的參數(shù)尋優(yōu)性能進行對比,結果表明IBSO算法具有較好的尋優(yōu)能力,IBSO-SVM的分類準確率明顯高于其他算法。為解決信用風險評估問題,首先利用隨機森林對信用數(shù)據(jù)的特征進行了篩選,并在此基礎上,運用IBSO-SVM模型對復雜的信用數(shù)據(jù)進行評估,實驗結果證明了混合模型的有效性,為個人信用評估提供了一種新的可行方法。