李 波,謝玖祚
(重慶理工大學 計算機科學與工程學院, 重慶 400054)
不平衡數據分類在分類任務中是一個極具挑戰性的領域[1]。在此類問題中往往最有價值的都是對少數類樣本的識別。例如在商業銀行領域中的客戶流失問題中,銀行與銀行之間的競爭趨于白熱化,以目前市場飽和的現狀而言,保留現有客戶需要付出的成本小于發展新的客戶成本[2]。若不能精準知曉那些數量較小的已流失的客戶,會對企業造成無法挽回的損失。但由于不均衡數據的分類特性,有很多傳統的分類方法針對少數類別的預測效果很差,例如貝葉斯、支持向量機等,這些分類方法大都是為了使整體分類精度最大化而設計提出的,在分類的時候,預測多數類準確度比少數類的準確度高很多[3]。從這個角度而言,研究與探索分類策略對處理不平衡分類問題意義非常重大。
為了解決這個問題,近些年來,國內外諸多學者提出了許多方法[3]。其中一類常見方法是對不平衡數據本身進行數據處理。其關鍵思想是通過對訓練集預處理,來減小不均衡類之間的差異。換言之,就是通過改變訓練集中少數類和多數類的先驗分布,以獲得不同類之間更平衡的實例數量。數據生成就是一種通過復制合成少數類樣本來增加少數群體比例的方法。SMOTE[4]就是一種經典的生成方法。SMOTE的主要思想是沿著線段生成少數類樣本,該方法也提出了許多變體,并證明了它們的有效性,如Majumder等[5-6]提到的ADASYN和Borderline-SMOTE。其他方法更側重于分類算法。其中集成學習方法一直是提高數據集分類器性能的常用方法[7]。在其他方法中,代價敏感學習[8]和單類別學習也已經被證明是解決不平衡數據問題的實用而有效的方法。
生成對抗網絡(GAN)近年來得到了廣泛的研究[9]。與傳統的人工神經網絡不同,生成對抗網絡是一類生成模型,它通過2個網絡組成的競爭過程學習:生成器(G)以隨機變量作為輸入學習生成可以欺騙鑒別器的虛假數據,而判別器(D)則試圖將真實數據與生成的數據區分開來。如果對網絡進行良好的訓練,生成器就將生成與真實數據十分相似的假數據騙過鑒別器。自提出以來,GAN已成為一種廣泛應用于不同機器學習領域的方法,尤其是在計算機視覺和圖像處理領域[10-12]。
本文中提出了一種基于生成對抗網絡的數據不平衡分類策略。將該模型應用于少數類樣本的生成,并使用機器學習對原數據集和補全數據集進行分類實驗,通過對比實驗驗證了該模型的有效性。
通常情況下,可以采用2種方法處理不平衡分類問題,一種是基于數據層面,另一種是算法層面[3]。其中數據層面有2類方法,分別是數據刪除和數據生成。常用的刪除方法有2種。隨機欠采樣(RUS)排除了來自多數類的隨機樣本,而聚焦欠采樣(FUS)排除了存在于2個類之間邊界上的多數類樣本。ROS是最傳統的一種過采樣方法,可以隨機生成少數類樣本,而SMOTE則是一種更為常用且有效的方法。
在SMOTE[13]方法中,通過取每個少數類樣本并沿著連接所有選定的K個少數類最近鄰的線段引入合成的例子對少數類進行生成。根據所需的生成樣本量,從K個最近的鄰居中隨機選擇鄰居。
SMOTE算法過程描述如圖1所示。首先,對于少數類的每個觀測x,識別其K近鄰,如圖中紅色方形樣本所示。然后隨機選擇K個鄰居(這個數字取決于不平衡比率)。最后,沿著連接原始觀測樣本x與其最近鄰居的直線生成新的數據。
上述2類方法的弊端是顯而易見的。刪除數據可能會導致原始數據集中包含的信息丟失,而原始數據的簡單復制可能不會提高少數類的有效性。

注:方塊是少數類 圓型是多數類
生成式對抗網絡(GAN)是受博弈論啟發和影響的一種生成模型,該模型由生成器以及判別器組成[14]。G(z)是由D(x)產生的模擬真實樣本偽樣本。其中:z指的是隨機噪聲,x指的是真實樣本。GAN的優化可以看成是如何極小化、極大化[9]。其損失函數是:
Ez~p(z)[log(1-D(G(z)))]
(1)
式中:p(x)表示真實的樣本分布;p(z)表示噪聲分布,E(*)表示期望。其中,GAN模型既包括判別器的優化過程式(2)也包括生成器的優化過程式(3)。
Ez~p(z)[log(1-D(G(z)))]
(2)
(3)
生成對抗網絡是一種通過訓練樣本而得出新樣本的網絡結構[9]。生成對抗網絡的核心是通過訓練集來預估它的樣本是如何分布,然后再利用得出的樣本分布生成另一個和訓練集相似的樣本。圖2為GAN模型結構框圖。

圖2 GAN模型結構框圖
目前,該模型廣泛應用于圖像視覺[10]、異常檢測[11]、信用卡欺詐等領域[12]。與傳統的生成模型對比,GAN模型不需要基于真實數據就可以生成逼近真實數據的合成數據[9]。
特征工程(feature engineering,FE)對于模型的性能提升起著非常重要的作用[15]。它的輸入是原始數據,而輸出是模型訓練所需的數據集,FE能夠篩選出效果更好的屬性用于訓練,讓模型的訓練效果得到改善與提高。特征處理、特征分析、特征選擇是特征工程的3個主要步驟,其中最關鍵的是選擇特征。本文中選擇的方案是基于RF(random forest),是一種學習算法,其基于決策樹,并且實現簡單,開銷較小,而且在分類問題上也有著優異的性能[15]。用RF算法來做特征選擇,不僅能解決特征過多導致的過擬合問題,還能通過改善特征,加快訓練速度,改善模型效果。

(4)
式中:K表示有K個類別,pnk指的是在節點n中類別k的比值。從客觀層面上而言,指的是從任意節點n中隨機選擇2個樣本,他們標記不同的幾率。節點n分枝前后GI指數變化量是
(5)
式中:GI1指的是分枝后1節點的GI指數,GIr同理。假如在決策樹i中,特征Xj出現的節點在M中,則在第i顆樹中,Xj重要性為:
(6)
假設RF中共有m顆樹,那么
(7)
最后,將全部所得的重要性評分集中歸一化處理。

(8)
通常情況下,神經網絡模型的神經元激活函數是Sigmoid。但是,Sigmoid函數存在梯度消失造成模型訓練收斂緩慢的問題。一般以ReLU函數(修正線性單元)將其替代[10]。ReLU與Sigmoid相比,有著易于優化的優勢,并且由于它的定義域的一半范圍輸出為0,使得網絡結構變得更加稀疏,對過擬合起著緩解作用;而定義域的另一半范圍輸出的梯度保持為1,這便意味著對于學習來說它的梯度將會有更好的效果。然而在訓練時ReLU這個函數也有著“脆弱”的缺陷,即當網絡進行第一次訓練時若權重為0以下,按照ReLU函數的計算公式,之后的訓練將一直為0。為解決這種現象,使用LeakyReLU函數。LeakyReLU作為ReLU函數的一種特殊形式,在神經元出現不激活現象時仍會有一個小梯度的非0值輸出,從而規避了可能的神經元的“消逝”。式(9)(10)分別是ReLU、LeakyReLU的函數公式。ReLU的作用是把負值刷新為零,LeakyReLU的作用是把負值刷新為非零斜率。
(9)

(10)
式中:ai指的是位于(1,+∞)區間中的固定值,基于LeakyReLU的角度而言,若斜率較小,則它和ReLU區別非常小,反之,效果更佳。
深度學習訓練較為復雜。如果某一層數據出現了較小的變化,那么層變化會逐漸增大,此時就必須調整網絡參數來適應新數據的分布。批標準化則是解決這一問題的有效方法。
批標準化可以說是一個重參數化的算法,它能夠自適應。為了有效避免由于網絡層數的逐步增加,梯度出現消失或者爆炸的問題,引入了批標準化來對各個層的輸入進行規范,從而固定各層輸入信號的方差以及均值。通常情況下,用于在非線性映射以前規范x=Wu+b,使得它的結果全部為0,方差為1。讓每一層的輸入有一個穩定的分布會有利于網絡的訓練。
上述批標準化的單位是隨機梯度下降批量樣本,對數據做統一處理,使得概率分布在每一個維度都趨于穩定,他的均值是0,標準差是1。同時,為了使經過歸一化學習到的特征免受破壞,γ、β2個參數需要被引入,然后利用2個參數變換重構數據。若某層的輸入是x=(x(1),…,x(a)),而且有a維,同時將batch-size置成n,那么一批的樣本集合為B={x1,…,xn},則批標準化如下:

(11)
(12)
(13)
y(k)=γ(k)x′(k)+β(k)
(14)

使用全連接層作為本文網絡的生成模型。該網絡生成器與鑒別器的結構借鑒了Sethia等[10]提出的關于信用卡欺詐檢測的GAN模型的思想,該網絡相比于圖像領域常用的WGAN、f-GAN、DCGAN 等網絡,在面對銀行領域的結構化數據的時候更加適用,本文的網絡在改善了VGAN網絡結構的同時,在生成器的輸入層和隱藏層中使用了上文提到的批標準化(Batch Normalization)策略,從而減少了網絡對各個參數的敏感程度,訓練過擬合風險越來越小,網絡收斂越來越快,而且還可以防范梯度消失或者爆炸、協變量移位等問題。
生成網絡由6層神經網絡組成,包括輸入層,隱含層和輸出層。其中生成器的輸入為200維的隨機噪聲,激活函數采用上述LeakyReLU函數。網絡包含4層隱含層,節點數分別為64、128、256、512,激活函數仍都采用了LeakyReLU。最后生成網路輸出層節點數是25,元素區間是[0,1],故輸出層激活函數選擇tanh。
判別網絡同樣為6層神經網絡,包括輸入層、隱含層和輸出層。為了“壓平”輸入,在判別器模型全連接之前加入了另一個層,那就是Flatten層,從而實現了多維輸入的一維化。輸入的一部分數據來自于真實數據,而其他的來自于網絡生成的數據。其中判別器輸入層節點數是25,網絡包含4層隱含層,節點數分別為512、256、128、64,激活函數使用上文所述的LeakyRelU函數。輸出層的節點數為2,且激活函數選擇了Sigmoid,通過對數據源的判斷,采用Binarycrossentropy(二元交叉熵損失函數)來減小損失誤差,提高分類精度。綜上,生成模型整體結構如圖3所示。

圖3 本文的模型整體結構示意圖
分類問題常采用準確率(accuracy)作為衡量分類效果的標準,但是對于不均衡數據問題,僅使用accuracy作為度量指標是不夠的。因為在不均衡數據中,正負類樣本的數量差異會很大,那么就會出現多數類預測精確度非常高,然而少數類預測準確度非常低。對于這種情況,在使用準確率的同時使用了Precision、Recall、F-mean作為評估指標,既能客觀地評價數據集的性能,也能兼顧各類別的分類精度。表1表述了二分類中的混淆矩陣種類。其中FN、FP指的是錯誤分類正負樣本數量,TP、TN則指的是正確分類正負樣本數量。

表1 二分類中的混淆矩陣種類
根據表1的矩陣種類得到以下評估指標,其中查準率(precsion)和查全率(recall)的公式如式(15)(16)所示。
(15)
(16)
通常情況下,Precision、Recall的相對重要度由β值來調和,一般值是1。若少數類Precision、Recall兩者的值都比較大的時候,F-mean值才會更大,因此F-mean能夠更精確地反映出少類分類性能,公式如下。
(17)
實驗數據是某商業銀行的客戶數據。該數據具有很高的不平衡比率,多類和少類的比例達到了20∶1,其中數據樣本量多達8萬,數據維數高達600。在使用GAN模型訓練前,首先需用上文提到的RF算法進行特征選擇,再使用PCA算法進行特征降維,最終保留25,各特征進行后續的訓練。之后,為了充分展示不平衡數據的分類特性,選用了少類和多類的比值為1∶1到1∶20之間的數據(如表2所示),來進行部分預測實驗。

表2 少類和多類的不同比值的數據
同時為了驗證GAN模型對銀行少類樣本的生成效果,實驗將使用平衡處理后的數據作為訓練集,不平衡數據作為測試集,對少類進行預測實驗。并與BSMOTE(BS)、ROS、ADASYN(AS)、SMOTE等不平衡處理算法進行對比。實驗流程如圖4所示。

圖4 實驗流程框圖
圖5為GAN模型判別器的損失下降曲線,損失值在迭代次數1 000次左右時趨于穩定。

圖5 判別器損失函數曲線
使用LightGBM(LGB)、隨機森林(RF)驗證不平衡分類的傾向問題。實驗先預測多類樣本準確率,其結果如圖6所示。
從圖6結果可以看出,LGB與RF在不同比例的非均衡數據上對多數類預測穩定性較好,具有傾向性。其次,分別使用這2種機器學習算法與GAN模型組合,并與上文中提到的SMOTE、AS等多種不平衡處理算法進行實驗對比。實驗結果如圖7、8所示。

圖6 多類預測準確率曲線
圖7、8中,分別采用RF、LGB算法測試各不平衡處理算法和GAN模型在測試集上的分類預測效果。從圖7、8中均可以看出,LGB與RF算法在本文GAN模型處理過的數據上的準確率要優于其他不平衡處理算法。

圖7 RF在數據集上的準確率直方圖

圖8 LightGBM在數據集上的準確率直方圖
上述實驗,盡管證明了經本文中提出的GAN模型處理后的數據在整體預測準確率上的效果,但在反映類別不均衡數據分類效果的提升上仍不夠全面。因此,還需要使用上文提到的Precision、F-mean度量指標,上文提到的各種不平衡處理算法的結果如圖9所示。

圖9 各算法在數據集上的Precison值直方圖
從圖9可以看出:RUS(隨即欠采樣)效果最差。LGB和RF算法與GAN模型的組合在指標Precision上效果最好,其中LGB+GAN的組合相比傳統方法中綜合效果較好的ROS和SMOTE算法分別提高了0.338和0.405。而RF+GAN模型的組合則分別提高了0.179和0.359。圖9只是實驗對少類樣本預測性能的分析,但這還并不能綜合反映GAN模型對少數類樣本的分類能力。因此,還要利用F-mean指標對數據生成后的樣本做分類效果評估,實驗結果如圖10所示,LGB+GAN模型的組合在F-mean指標上,相比LGB算法與RUS、ROS、SMOTE、AS、BS的組合分別提高了0.369、0.137、0.171、0.165、和0.258。而RF+GAN在F-mean指標則分別提高了0.307、0.136、0.097、0.154和0.062。

圖10 各算法在數據集上F-mean值對比
綜上,從數據處理著手,提出的GAN模型在準確率、F-mean等指標上好于其他不平衡處理算法。因此,其對于商業銀行客戶數據不均衡的分類問題有著較好的適用性,其中LGB+GAN的模型組合得到了最好的指標效果。
將圖像領域常用的生成對抗網絡應用到商業銀行客戶流失問題中,提出了一種基于GAN網絡的結構化數據生成模型,改善了銀行客戶流失問題中少數類的生成以及預測問題。
與ROS、SMOTE等多種常用不平衡處理方法進行了比較。實驗結果表明:該方法能較好地避免SMOTE等算法合成樣本的盲目性,提高了合成樣本的質量,讓數據生成更具針對性,進而使分類結果有較好的準確率、F-mean及Precision值,其應用在銀行客戶流失不平衡分類問題上具有可行性和適用性。但本次實驗只是在數據層面上進行了改進,如何在算法層面上進行改進與優化,將是以后研究的重點和難點。