徐紅,矯桂娥,張文俊,陳一民
(1.上海海洋大學 信息學院,上海 201306;2.上海大學 上海電影學院,上海 200072;3.上海建橋?qū)W院 信息技術(shù)學院,上海 201306)
非平衡問題在現(xiàn)實生活中普遍存在,數(shù)據(jù)集中不同類別的樣本量差異較大,數(shù)據(jù)量較多的是多數(shù)類,數(shù)據(jù)量較少的是少數(shù)類。在實際生活中通常采用的非平衡數(shù)據(jù)集都是結(jié)構(gòu)化形式。當算法對非平衡數(shù)據(jù)進行分類時,會受到多數(shù)類的影響,而忽略少數(shù)類特征,導致對少數(shù)類分類錯誤。但是,在非平衡數(shù)據(jù)集中少數(shù)類往往較重要。文獻[1-3]提出在設備故障檢測、罕見疾病診斷等方面,少數(shù)類比多數(shù)類更具有意義。因此,對于非平衡數(shù)據(jù)集的準確分類十分重要,這也是非平衡數(shù)據(jù)分類成為大數(shù)據(jù)挖掘和人工智能領(lǐng)域研究熱點的原因。
研究人員主要從兩個方面處理非平衡數(shù)據(jù)的分類問題:一方面通過改變原始數(shù)據(jù)的分布,在數(shù)據(jù)預處理階段降低數(shù)據(jù)不平衡程度;另一方面是通過改進分類算法,使算法適應非平衡數(shù)據(jù)的分類,準確地學習少數(shù)類特征。
在數(shù)據(jù)加載階段采樣算法主要有欠采樣、過采樣和加權(quán)隨機采樣算法,其作用是降低原始數(shù)據(jù)集的非平衡度,數(shù)據(jù)采樣算法主要有過采樣算法和欠采樣算法。文獻[4]提出結(jié)合合成少數(shù)類過采樣技術(shù)(Synthetic Minority Oversampling Technique,SMOTE)的重采樣算法,其特點是分析少數(shù)類并生成少數(shù)類,但是該算法生成的新樣本會對分類模型產(chǎn)生過擬合問題。文獻[5]提出結(jié)合SMOTE 算法和邊界信息生成新樣本的Borderline-SMOTE 過采樣算法。文獻[6]提出的ADASYN 與Borderline-SMOTE 算法相似,通過對不同的少數(shù)類樣本賦予不同的權(quán)重,以生成不同數(shù)量的樣本,但通過這類采樣算法重采樣生成的少數(shù)類樣本容易成為噪聲樣本,混淆分類模型對少數(shù)類樣本的分類,從而影響模型的分類準確率。
欠采樣方法的特點是通過隨機減少多數(shù)類樣本數(shù)量以達到類別間平衡分布的目的,并在此基礎上進行分類,該方法可能會導致部分重要信息被刪除以影響分類效果。文獻[7]提出在部分特殊情況下,隨機欠采樣算法有可能取得較優(yōu)的分類效果。文獻[8]提出加權(quán)隨機采樣算法,根據(jù)數(shù)據(jù)集內(nèi)不同樣本權(quán)重進行隨機采樣,但是該算法中的樣本權(quán)重是研究人員主觀設置的,不同權(quán)重的設置會得到不同的重采樣數(shù)據(jù)集。文獻[9]采用過采樣小于所需樣本量的采樣算法,該采樣算法同時考慮了不平衡度和分類復雜度,但適用范圍較小,難以泛化作用于普通數(shù)據(jù)集。此外,文獻[10]提出在數(shù)據(jù)加載階段將欠采樣和過采樣算法融合為一個框架,對非平衡數(shù)據(jù)集進行處理,但是該融合算法會產(chǎn)生大量的少數(shù)類噪聲樣本。
在算法層面,文獻[11]通過對傳統(tǒng)分類算法進行改進,提出代價敏感方法,通過對不同的樣本賦予不同的損失權(quán)重,若模型對少數(shù)類分類錯誤,其代價就會增大,對多數(shù)類分類錯誤,其代價較小或者不變,同時將損失值反饋到分類模型中,更加關(guān)注對少數(shù)類樣本的特征學習,使算法在非平衡數(shù)據(jù)集上能夠準確地分類少數(shù)類。數(shù)據(jù)處理方法具有一定的泛化能力,可以用于不同的數(shù)據(jù)集,但是對算法的改進通常只適用于某一個或某一類非平衡數(shù)據(jù)集。
卷積神經(jīng)網(wǎng)絡因其高效的特征提取能力和較少的參數(shù)量被廣泛應用于圖像處理、目標跟蹤、自然語言等領(lǐng)域,并且涌現(xiàn)了許多經(jīng)典的深度學習模型,例如AlexNet 網(wǎng)絡[12]、VGGNet[13]等。研究人員將卷積神經(jīng)網(wǎng)絡應用到大數(shù)據(jù)挖掘領(lǐng)域中[14],在解決非平衡問題時也取得了一定的成果。但是卷積神經(jīng)網(wǎng)絡一般用于對視覺和圖像等類型數(shù)據(jù)的訓練處理。
本文提出一種基于卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)化非平衡數(shù)據(jù)分類算法。對于非平衡分布的結(jié)構(gòu)化二分類數(shù)據(jù)集的分類,設計Data-Shuffle 算法,將原始非平衡一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為多通道非平衡數(shù)據(jù),使原始的一維結(jié)構(gòu)化數(shù)據(jù)能夠適用于深度學習模型,提升分類模型的分類性能。通過改進的VGG 網(wǎng)絡構(gòu)建適合非平衡數(shù)據(jù)的網(wǎng)絡結(jié)構(gòu)卷積組,以提取不同的特征。
本文主要的研究對象是非平衡結(jié)構(gòu)化數(shù)據(jù)集,在數(shù)據(jù)預處理階段提出Data-Shuffle 算法,通過構(gòu)建多通道特征圖,將原始非平衡一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為三維數(shù)組形式的多通道非平衡數(shù)據(jù),并對數(shù)據(jù)賦予不同的權(quán)重。在采樣階段,通過對樣本進行更新加權(quán)采樣。為適應小樣本多通道特征圖,在分類模型中改進模型結(jié)構(gòu),以減少模型的參數(shù)量,避免產(chǎn)生不必要的復雜度。
本文算法的整體結(jié)構(gòu)如圖1 所示,首先通過本文所提的Data-Shuffle 算法將原始非平衡一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為三維數(shù)組形式的多通道非平衡數(shù)據(jù),并將轉(zhuǎn)換后的三維結(jié)構(gòu)數(shù)據(jù)輸入到分類模型中。在數(shù)據(jù)預處理過程中,對數(shù)據(jù)集賦予初始采樣權(quán)重。UWSCNN 算法根據(jù)數(shù)據(jù)集中的樣本采樣權(quán)重對其進行加權(quán)采樣,此外,為減少模型的參數(shù)量,根據(jù)VGG 網(wǎng)絡性能特點,構(gòu)建輕量級卷積組,并提出卷積神經(jīng)網(wǎng)絡Struct_Class_Net。該網(wǎng)絡模型對采樣后的數(shù)據(jù)集進行分類訓練,在每輪迭代過程中,模型根據(jù)分類結(jié)果與真實值,統(tǒng)計每個batch_size中的樣本分類情況,并在每輪訓練結(jié)束后將其記錄到權(quán)重變化矩陣中,通過該矩陣更新樣本的采樣權(quán)重,在下一個迭代次數(shù)中按照更新后的采樣權(quán)重采樣,Struct_Class_Net對采樣所得的數(shù)據(jù)進行下一輪訓練,將訓練結(jié)果保存并反饋給數(shù)據(jù)樣本,以逐步提升分類模型對非平衡數(shù)據(jù)的分類準確率。
圖1 本文算法整體結(jié)構(gòu)Fig.1 Overall structure of the proposed algorithm
1.1.1 VGGNet 網(wǎng)絡模型
卷積神經(jīng)網(wǎng)絡是神經(jīng)網(wǎng)絡的代表。文獻[15-18]描述了在圖像識別、自然語言處理等領(lǐng)域中卷積神經(jīng)網(wǎng)絡較優(yōu)的性能。卷積神經(jīng)網(wǎng)絡模型由卷積層、池化層、全連接層等組成:1)卷積層,主要提取輸入數(shù)據(jù)的不同特征,層數(shù)較多的卷積層能夠提取輸入數(shù)據(jù)中更多且復雜的特征;2)池化層,主要去除冗余信息,緩解模型的過擬合問題;3)全連接層,通過對卷積層和池化層所提取的特征進行加權(quán),得到模型結(jié)果并將其傳遞到輸出層。
1.1.2 VGGNet 網(wǎng)絡模型改進
VGGNet 由牛津大學視覺幾何組研發(fā),并以其縮寫命名。VGGNet 在ILSVRC 2014 比賽中對1 000 個類別的大量數(shù)據(jù)進行分類,所需參數(shù)量較多。由于直接將VGGNet應用到一般數(shù)據(jù)分類中會存在較多問題,因此本文需要對其進行修改,滿足分類任務的需求。
VGGNet全部使用3×3 的卷積核和2×2 的池化核,同時加深網(wǎng)絡結(jié)構(gòu)以提高模型的性能。兩個3×3 的卷積核相當于一個5×5 的卷積核,三個3×3 的卷積核相當于一個7×7 的卷積核,但是三個3×3 的卷積核視野與一個7×7 的卷積核相同。因此,網(wǎng)絡層數(shù)的增加不會引入大量的參數(shù)。兩個3×3 卷積核的參數(shù)量為3×(3×3×C×C)=27C2,一個7×7 卷積核的參數(shù)量為7×7×C×C=49C2。在相同感受野的情況下,三個3×3卷積核代替一個7×7 卷積核,參數(shù)量減少了將近1/2。卷積核卷積視野示意圖如圖2 所示。
圖2 卷積組卷積視野示意圖Fig.2 Schematic diagram of convolution field of convolution group
兩個3×3 的卷積核相當于一個5×5 的卷積核,示意圖如圖2(a)所示。三個3×3 的卷積核相當于一個7×7 的卷積核,如圖2(b)所示。與使用5×5 或7×7 的卷積核相比,VGG 采用3×3 的卷積組能夠在卷積視野相同的情況下減少參數(shù)量。此外,每個卷積核之后都有一個非線性激活函數(shù)ReLU,以提升模型的泛化能力。
VGGNet 包含很多級別的網(wǎng)絡,網(wǎng)絡層數(shù)和深度不等,較常用的是VGGNet-16 和VGGNet-19。VGG 網(wǎng)絡將模型分為五個部分,將3×3 的卷積組串聯(lián)起來,并且在卷積組之后連接一個最大池化層,模型的最后是三個全連接層和Softmax層。改進的VGGNet 網(wǎng)絡模型特點主要有:
1)卷積組的構(gòu)建,根據(jù)VGG 網(wǎng)絡結(jié)構(gòu),重新構(gòu)建卷積組,第1~3 層使用三個3×3 的卷積核,卷積視野等價于7×7 的卷積核,還構(gòu)建一個兩層的卷積組等價于一個5×5 的卷積核,每個卷積層中都采用ReLU 激活函數(shù)進行非線性激活,提高模型的泛化能力。根據(jù)VGG 網(wǎng)絡搭建卷積組,以代替卷積神經(jīng)網(wǎng)絡模型不同視野的卷積層,在保證提取到更多且更細致特征的前提下,減少模型的參數(shù)量,縮短模型的運行時間。
2)卷積層替換池化層。雖然池化層可以過濾掉特征圖的冗余信息,減輕模型負擔,但是采用步長為2 的卷積層,可以避免傳統(tǒng)池化層損失有用信息的弊端。本文采用的池化層可以減少模型的計算量,在卷積層中的ReLU 激活函數(shù)能有效提高模型的泛化能力。
3)全局平均池化(Global Average Pooling,GAP),全連接層作為模型中參數(shù)量最多的結(jié)構(gòu)層,采用全局平均池化層代替全連接層可以避免參數(shù)更新[19],降低計算量以及出現(xiàn)過擬合的風險。
4)批量歸一化,能夠使數(shù)據(jù)的分布保持一致,從而使得訓練深層網(wǎng)絡模型更加容易和穩(wěn)定[20]。一般批量歸一化層添加在卷積層之后和激活函數(shù)之前,優(yōu)化器會對模型的參數(shù)量與權(quán)重進行調(diào)整,在模型參數(shù)量增大的情況下,模型的訓練會更加復雜。在神經(jīng)網(wǎng)絡模型中其他層因底層網(wǎng)絡的訓練更新參數(shù)而改變后面網(wǎng)絡層數(shù)據(jù)的分布,因此需要對每一層的輸入添加一個預處理操作。在神經(jīng)網(wǎng)絡中常用的方法是白化預處理,但是其計算量較大,而且并不是處處可微的,但是批量歸一化能有效解決計算量大的問題。
1.1.3 Struct_Class_Net 網(wǎng)絡模型
本文經(jīng)過多次實驗,確定模型的最終結(jié)構(gòu)和參數(shù),如表1 所示。從表1 可以看出:卷積組和批量歸一化層的組成關(guān)系,用于池化的卷積層步長為2,卷積層的所有卷積核大小都為3×3,卷積層均采用ReLU 激活函數(shù)。
表1 Struct_Class_Net 模型參數(shù)設置 Table 1 Parameters setting of Struct_Class_Net model
本文將池化層替換為卷積層,增大了網(wǎng)絡的參數(shù)量,但是采用全局平均池化代替全連接層,模型的參數(shù)量降低到1.23×106。因為ReLU 激活函數(shù)提高了模型的非線性泛化能力,所以在減少模型參數(shù)量的同時,提高了模型的分類效果。
結(jié)構(gòu)化數(shù)據(jù)是指在二維表中存儲的數(shù)據(jù),也是數(shù)據(jù)庫中常見的數(shù)據(jù)[21]。例如,在公共數(shù)據(jù)集UCI中的adult 數(shù)據(jù)集是典型的結(jié)構(gòu)化數(shù)據(jù),具有相同的屬性,但是每個樣本的屬性值不同。從文獻[22]中可以得知,經(jīng)典的卷積神經(jīng)網(wǎng)絡模型更適應于圖像語音等非結(jié)構(gòu)化數(shù)據(jù)的深度學習模型,在結(jié)構(gòu)化數(shù)據(jù)上的應用較少,因此需要對結(jié)構(gòu)化數(shù)據(jù)進行處理,使結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為適合卷積神經(jīng)網(wǎng)絡處理的數(shù)據(jù)類型。本文提出將原始一維結(jié)構(gòu)化非平衡數(shù)據(jù)轉(zhuǎn)換為三維數(shù)組形式的多通道非平衡數(shù)據(jù),為卷積網(wǎng)絡提供更多可能的特征值。一般存儲在數(shù)據(jù)庫中的數(shù)據(jù)格式為固定長度的表格,以adult 數(shù)據(jù)集為例,其數(shù)據(jù)特征數(shù)為15,其中一列是標簽列,將剩下的14 列特征值轉(zhuǎn)換為特征圖算法Data-Shuffle。該算法的目的是將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為適合卷積操作的特征圖,具體步驟如下:
1)在得到數(shù)據(jù)集特征數(shù)量之后,根據(jù)特征數(shù)目M確定其特征圖的尺寸,特征圖的尺寸K×K的平方比M大,缺失部分填充0,將得到長度為K×K的特征值隨機打亂,組合成K×K的數(shù)組,記為元數(shù)組。
2)將第一步重復n次,得到n個元數(shù)組,將其橫向拼接,得到nK×K的數(shù)組A。
3)第二步重復n次得到n個A數(shù)組,將其縱向拼接,得到nK×nK的數(shù)組B。
4)重復第三步C次,將C個數(shù)組B層疊得到三維數(shù)組nK×nK×C。
5)最終得到的三維數(shù)組就是多通道特征圖,可用于卷積神經(jīng)網(wǎng)絡的訓練。
Data-Shuffle 算法將原始的一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為多通道特征圖,在原始數(shù)據(jù)中的各個特征值之間隨機相鄰組合,使卷積神經(jīng)網(wǎng)絡對結(jié)構(gòu)化數(shù)據(jù)進行學習。Data-Shuffle 算法采用特征值隨機打亂的方式,使卷積神經(jīng)網(wǎng)絡可以學習到更加多樣化的特征,在一定程度上減少過擬合現(xiàn)象。
本文以一個特征值為16(補足長度后)的數(shù)據(jù)為例,將一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為多通道特征圖的流程如圖3 所示。
圖3 一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為多通道特征圖的流程Fig.3 Procedure of converting one-dimensional structured data into multi-channel feature graph
將原始的一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為多通道的特征圖,每個通道中的特征值通過各特征之間隨機相互組合獲得,以提高卷積神經(jīng)網(wǎng)絡提取數(shù)據(jù)特征的多樣性。因此,卷積神經(jīng)網(wǎng)絡在轉(zhuǎn)換的多通道特征圖上能提取傳統(tǒng)機器學習無法得到的特征,在深度和寬度方面加深對樣本特征的學習,從而為后續(xù)模型對樣本數(shù)據(jù)的分類提供更多精細的特征。Data-Shuffle 如算法1所示。
算法1Data-Shuffle 算法
Data-Shuffle 算法將一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為多通道三維數(shù)據(jù),通過該算法的偽代碼將數(shù)據(jù)的各個特征隨機組合,并對數(shù)據(jù)進行shuffle、reshape 和concatenate 等操作,能夠增強卷積神經(jīng)網(wǎng)絡對結(jié)構(gòu)化數(shù)據(jù)特征,同時也可以減少模型的過擬合現(xiàn)象。此外,該算法對數(shù)據(jù)的處理不參與模型的反饋與訓練,因此,不會增加分類模型的訓練損耗和時間。
本文基于CNN 提出更新權(quán)重加權(quán)采樣算法UWSCNN,根據(jù)分類模型每一輪的訓練結(jié)果來調(diào)整樣本的采樣權(quán)重,從而提升非平衡數(shù)據(jù)的分類準確率。
在加權(quán)隨機采樣算法中,樣本的權(quán)重由數(shù)據(jù)集中不同類別的樣本數(shù)量計算得到,計算過程如式(1)所示:
其中:Su為權(quán)重計算的超參數(shù);Nj為類別j的樣本數(shù)量總和。本文研究二分類非平衡數(shù)據(jù)集的分類,因此j∈{0,1}。
加權(quán)隨機采樣算法導致同一個易錯樣本在多個迭代次數(shù)中訓練,存在多個與其具有相同權(quán)重的樣本競爭模型專注度的問題。因此,權(quán)重計算方法并不能有效地解決模型對非平衡數(shù)據(jù)準確分類的問題,在模型訓練樣本的采樣過程中并沒有對易錯樣本進行重點采樣。
為改善原始加權(quán)權(quán)重忽略的部分有價值的樣本,本文采用重加權(quán)更新易錯的有價值的樣本權(quán)重,根據(jù)模型分類結(jié)果的混淆矩陣設置對應的更新加權(quán)權(quán)重矩陣:。在對角線上的樣本即為分類正確的樣本,其更新加權(quán)權(quán)重為0,維持原本的權(quán)重。在副對角線上的樣本,即是分類錯誤的樣本,如加權(quán)權(quán)重矩陣ws表示將少數(shù)類樣本錯分為多數(shù)類樣本的更新加權(quán)權(quán)重。通用分類模型在訓練非平衡數(shù)據(jù)集時忽略少數(shù)類樣本特征,更多地學習多數(shù)類樣本特征。將少數(shù)類樣本分類為多數(shù)類,將多數(shù)類樣本分類為少數(shù)類樣本,其處理方式是刪除少數(shù)類樣本,因為少數(shù)類樣本在分類任務中具有更高的價值,但是在實際測試中,刪除少數(shù)類樣本并沒有提高測試集的分類準確率,所以在本文任務中向少數(shù)類樣本添加相應的加權(quán)權(quán)重,重點訓練容易混淆的樣本。
更新權(quán)值的計算方法如式(2)和式(3)所示:
其中:TTS表示真實類別為少數(shù)類,模型預測類別是少數(shù)類;TTD表示真實類別是多數(shù)類,模型預測類別是多數(shù)類;FFD表示真實類別是少數(shù)類,模型預測類別是多數(shù)類;FFS表示真實類別是多數(shù)類,模型預測類別是少數(shù)類。加權(quán)的權(quán)重計算過程為:
其中:ws表示少數(shù)類中分類錯誤的樣本比例;wd表示多數(shù)類中分類錯誤的樣本比例。
Specificity 和Recall 分別表示非平衡問題的評價指標F1 和文獻[23]中用于評價非平衡問題G-mean 的計算元素,分類結(jié)果越好,樣本集中需要更新加權(quán)的樣本數(shù)越少,模型的評價指標越接近1。在模型訓練的每一個迭代次數(shù)中給訓練分類錯誤的樣本重新賦予新的加權(quán)權(quán)重,在新一輪訓練中依據(jù)新的加權(quán)權(quán)重對樣本進行加權(quán)采樣。
在加權(quán)采樣的第一輪采樣中,分別給每一個少數(shù)類和多數(shù)類樣本賦予權(quán)重ws和wd,從第二個迭代次數(shù)訓練開始更新樣本權(quán)重,在每一輪訓練更新重加權(quán)后的樣本權(quán)重為w,其權(quán)重更新表示如式(4)所示:
對于在每個epoch 訓練中,各樣本附加權(quán)重的更新計算如式(5)所示:
由采樣概率關(guān)系可知,對于分類錯誤的少數(shù)類樣本在下一輪采樣時被采樣的概率更高,而分類正確的樣本其采樣概率較小。因此,該采樣算法能夠?qū)σ族e樣本進行重采樣并訓練,以提高對非平衡數(shù)據(jù)分類的準確度。
本文實驗的環(huán)境是PyTorch,硬件運行平臺:Intel?CoreTMi7-10700 @ 2.90 GHz 處理器,16 GB 運行內(nèi)存,NVIDIA GeForce RTX 2080 SUPER顯卡。在實驗測試時采用的評價指標是F1 和G-mean,F(xiàn)1能夠整體評價模型的分類性能,G-mean 衡量模型對非平衡數(shù)據(jù)的分類效果。
本文實驗將UCI 公共數(shù)據(jù)集中online_shoppers_intention 數(shù)據(jù)集記為數(shù)據(jù)集shoppers,diabetes_ata_upload 數(shù)據(jù)集記為數(shù)據(jù)集diabetes。shoppers 數(shù)據(jù)集是典型的非平衡二分類數(shù)據(jù)集,由12 330 個不同用戶的樣本信息組成,每個樣本數(shù)據(jù)由18 個特征信息構(gòu)成,將數(shù)據(jù)樣本分為兩類。在多通道特征圖的轉(zhuǎn)換過程中選取K=5,最終形成[5×5×n,5×5×n,C]多通道特征圖。diabetes 數(shù)據(jù)集是UCI 公開的糖尿病數(shù)據(jù)集,16 個特征數(shù),該樣本最終形成的多通道特征圖大小為[4×4×n,4×4×n,C]。這兩個數(shù)據(jù)集都是UCI 中較先進的多特征二分類數(shù)據(jù)集。
根據(jù)混淆矩陣表,本文實驗采用多數(shù)類和少數(shù)類代替原始混淆矩陣中的正負例對評價指標F1 和G-mean 進行計算,計算過程如式(8)~式(12)所示:
本文使用的深度學習框架是PyTorch,采用卷積組搭建一個特征提取網(wǎng)絡架構(gòu),連接一個全連接層對卷積組提取的特征圖進行分類。為避免學習模型出現(xiàn)過擬合現(xiàn)象,在分類輸出層之前添加一個文獻[24]所提的dropout層,丟棄率為0.5。采用的優(yōu)化器是文獻[25]中提出的Adam 優(yōu)化器,訓練集、驗證集和測試集的比例是8∶1∶1,batch_size 大小為256。
在adult、shoppers 和diabetes 三個數(shù)據(jù)集上傳統(tǒng)機器學習模型與本文所提的Struct_Class_Net 模型的評價指標對比如表2~表4 所示。
表2 在adult 數(shù)據(jù)集上不同模型的評價指標對比 Table 2 Evaluation indicators comparison among different models on adult dataset
表3 在shoppers 數(shù)據(jù)集上不同模型的評價指標對比 Table 3 Evaluation indicators comparison among different models on shoppers dataset
表4 在diabetes 數(shù)據(jù)集上不同模型的評價指標對比 Table 4 Evaluation indicators comparison among different models on diabetes dataset
相比文獻[26]所提的邏輯回歸、隨機森林等傳統(tǒng)的機器學習,本文所提的Struct_Class_Net 結(jié)合Data-Shuffle 算法,該算法將簡單的一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為多維特征圖,并利用卷積神經(jīng)網(wǎng)絡訓練分類模型,分類效果得到明顯提升。從表2~表4 可以看出:在diabetes 數(shù)據(jù)集上傳統(tǒng)機器學習中隨機森林分類模型的F1 值和G-mean 兩個指標為0.969 4 和0.970 5,但是采用數(shù)據(jù)轉(zhuǎn)換算法將結(jié)構(gòu)化數(shù)據(jù)的各個特征相互組合,給卷積神經(jīng)網(wǎng)絡模型提供了多種可能的特征關(guān)系,提高卷積神經(jīng)網(wǎng)絡對結(jié)構(gòu)化數(shù)據(jù)的特征提取能力。
傳統(tǒng)機器學習模型在diabetes 數(shù)據(jù)集上相較于在adult 和shoppers 數(shù)據(jù)集上的分類效果較優(yōu),特別是在shoppers 數(shù)據(jù)集上XGBoost 模型的F1 值低于0.75。傳統(tǒng)的機器學習模型對于數(shù)據(jù)集的要求較高,通常在進行機器學習模型分類之前需要對數(shù)據(jù)集進行預處理。傳統(tǒng)的機器學習模型的數(shù)據(jù)預處理和特征工程在一定程度上影響模型的分類效果,將數(shù)據(jù)預處理和數(shù)據(jù)訓練學習集成到一個模型,以提高模型的使用性能和效率。本文所提的數(shù)據(jù)格式轉(zhuǎn)換算法Data-Shuffle 可以很好地將數(shù)據(jù)預處理和特征工程集成到一個深度學習分類模型中。相比傳統(tǒng)機器學習模型,結(jié)合Data-Shuffle算法的Struct_Class_Net 網(wǎng)絡在diabetes 數(shù)據(jù)集上的分類效果較優(yōu)。
邏輯回歸的時間復雜度為O(nd),n表示樣本數(shù),d表示數(shù)據(jù)維度。隨機森林的時間復雜度O(n×loga(n)×d×k),n為樣本總數(shù),d為數(shù)據(jù)維度,k為決策樹的數(shù)量。支持向量機的時間復雜度O(nkd),k為支持向量數(shù),d為數(shù)據(jù)維度。XGBoost 的時間復雜度O(Kd||X||0+||X||0logan),K表示XGBoost 中樹的總數(shù),d表示樹的最大深度,||X||0表示數(shù)據(jù)集中的非缺失樣本數(shù)。AdaBoost 模型是一種典型的犧牲時間復雜度來提升分類效果的集成學習模型。Struct_Class_Net模型的時間復雜度為為卷積神經(jīng)網(wǎng)絡的深度,l表示卷積神經(jīng)網(wǎng)絡層數(shù),Cl-1表示第l-1 層的輸入通道數(shù),Cl表示第l層卷積神經(jīng)網(wǎng)絡的輸出通道數(shù)。Struct_Class_Net 網(wǎng)絡的時間復雜度與其本身卷積層相關(guān),因為結(jié)構(gòu)化數(shù)據(jù)的本身特性,所以本文網(wǎng)絡的卷積層深度不需要很深,就可以大幅降低卷積神經(jīng)網(wǎng)絡的時間復雜度。
本文實驗對比SMOTECNN、BSMOTECNN、SMOTECNN+CS 等采樣算法的分類效果,其中SMOTECNN+CS 和DB-SMOTECNN+CS 中的CS 表示采用文獻[11]中的的代價敏感算法。在adult、shoppers和diabetes 三個數(shù)據(jù)集上不同算法的實驗結(jié)果對比如表5~表7 所示。
表5 在adult 數(shù)據(jù)集上不同算法的實驗結(jié)果對比 Table 5 Experimental results comparison among different algorithms on adult dataset
表6 在shoppers 數(shù)據(jù)集上不同算法的實驗結(jié)果對比 Table 6 Experimental results comparison among different algorithms on shoppers dataset
表7 在diabetes 數(shù)據(jù)集上不同算法的實驗結(jié)果對比 Table 7 Experimental results comparison among different algorithms on diabetes dataset
本文實驗的加權(quán)采樣算法(Weighted SamplingCNN)和更新權(quán)重加權(quán)采樣算法(UWSCNN)相較于傳統(tǒng)生成樣本類的非平衡數(shù)據(jù)處理算法的性能指標較高。從表7 可以看出:SMOTECNN、BSMOTECNN 等算法的F1 值和G-mean 均低于0.98,加權(quán)采樣算法高于0.98。實驗結(jié)果驗證了按照某種規(guī)律或算法生成新樣本的方法會生成一部分的干擾樣本,容易混淆模型對數(shù)據(jù)樣本的分類,而加權(quán)采樣算法對權(quán)重較大的樣本進行多次采樣,使模型重點訓練重要的樣本,讓模型訓練最原始的樣本特征,避免學習生成樣本的特征造成模型分類混亂。因此,UWSCNN 算法能夠有效解決生成樣本質(zhì)量較低的問題。
經(jīng)過對比上述采樣算法和更新權(quán)重加權(quán)采樣算法UWSCNN 的分類效果,文獻[4]的SMOTECNN 采樣算法和文獻[6]的BSMOTECNN 采樣算法根據(jù)某種規(guī)律生成少數(shù)樣本,在模型進行分類訓練時,容易對數(shù)據(jù)結(jié)果造成混淆,在一定程度上降低模型的分類效率。ADASYNCNN 借助樣本的不同權(quán)重生成不同數(shù)量的樣本。對比現(xiàn)有生成類采樣算法,DB-SMOTECNN 添加了代價敏感算法,但是相較于UWSCNN 采樣算法的分類效果較差。UWSCNN 使得模型對原始的少數(shù)類樣本重點訓練以學習更多的樣本,提升模型對樣本分類的準確率。
本文提出基于卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)化非平衡數(shù)據(jù)分類算法?;赩GG 網(wǎng)絡模型構(gòu)建具有較少參數(shù)量的卷積組,將原始非平衡一維結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為三維數(shù)組形式的多通道非平衡數(shù)據(jù),用于一維結(jié)構(gòu)化數(shù)據(jù)的分類。設計更新權(quán)重加權(quán)采樣算法,在模型分類過程中關(guān)注易產(chǎn)生混淆的高質(zhì)量樣本,提升對少數(shù)類樣本的分類效率。實驗結(jié)果表明,該算法能有效提高對非平衡數(shù)據(jù)的分類性能。由于本文所提的算法主要作用于二分類非平衡數(shù)據(jù)集,因此后續(xù)將在多類別的非平衡數(shù)據(jù)集中進行實驗,以提高分類的準確率。