鄭瑋 周盛
(中航西安飛機工業(yè)集團股份有限公司 陜西省西安市 710089)
不平衡數(shù)據(jù)集是指由不同類別的數(shù)據(jù)組得到的集合,某些類別的數(shù)據(jù)量遠大于其他類別,存在著嚴重的不平衡[1]。現(xiàn)階段不平衡數(shù)據(jù)集常被應(yīng)用于網(wǎng)絡(luò)入侵檢測[2]、欺詐檢測[3]、信用卡詐騙[4]等領(lǐng)域,研究人員通過少量的樣本完成分類,以得到核心內(nèi)容。因此,針對不平衡數(shù)據(jù)集,改變分布,完成分類的有效處理,獲取核心數(shù)據(jù)集,對于不平衡數(shù)據(jù)集的研究具有重要的理論意義。基于此,為了提高不平衡分類的處理效率,降低時間復(fù)雜度,本文將面向不平衡數(shù)據(jù)完成分類處理。
機器學(xué)習(xí)[5]可以定義為:通過已有的函數(shù)或者數(shù)學(xué)模型,結(jié)合數(shù)據(jù)集的輸入輸出關(guān)系,完成對數(shù)據(jù)集的研究與分析。即在監(jiān)督學(xué)習(xí)中,通過標(biāo)簽與特征值的分布,構(gòu)建訓(xùn)練模型,進而實現(xiàn)數(shù)據(jù)集的分析處理,完成不平衡數(shù)據(jù)集的分類;并且由數(shù)據(jù)集的特征值來賦予不同的標(biāo)簽信息,得到目標(biāo)函數(shù),實現(xiàn)不平衡數(shù)據(jù)的基本分類處理,以便于用戶對所需要信息的使用。
常用的不平衡分類算法主要劃分為基于過采樣的分類與基于欠采樣的分類。其中,過采樣的主要方法是復(fù)制或生成少數(shù)類樣本,而欠采樣則是降低不平衡比率,確保數(shù)據(jù)集能趨于平衡。為了簡化操作步驟,便于用戶的了解,該算法不需要改變算法本身,主要對數(shù)據(jù)集預(yù)處理,能夠被適用于分類。首先,在過采樣階段,會不斷增加少量類別樣本數(shù)據(jù)值的數(shù)量,如此會出現(xiàn)過擬合與噪聲等問題的存在;之后,采用欠采樣方法來剔除其中不必要的大數(shù)據(jù)樣本類型,完成處理。
針對不平衡數(shù)據(jù)集的研究,大多算法存在著處理效率差、消耗時間高等。為了有效避免噪聲或者過擬合等問題,本文面向不平衡數(shù)據(jù)集,旨在完成對不平衡數(shù)據(jù)集的分類。首先,使用k-means將數(shù)據(jù)集聚為K個簇;之后,計算各個簇的不平衡概率IR,依據(jù)IR值分配權(quán)重大小,并且將類別較少的簇合成新簇,以完成過采樣與欠采樣。進而減少噪聲數(shù)據(jù),以便于用戶分類不平衡。
3.2.1 K-means聚類算法
傳統(tǒng)不平衡數(shù)據(jù)集的過采樣處理方法是經(jīng)典的SMOTE算法,該算法在多類別數(shù)據(jù)分布區(qū)域進行聚類與分類,容易導(dǎo)致噪聲,進而加劇了類別重疊。而在K-means算法內(nèi)使用過采樣能有效降低噪聲的產(chǎn)生。
K-means聚類算法[6]是一種用來查找兩個對象相似度的算法,通過不斷迭代確定聚類中心,直到滿足某個特定條件,完成對聚類中心的固定處理。K-means聚類的具體步驟如下:
Step 1:從數(shù)據(jù)集中隨機選取k作為聚類中心值;
Step 2:對每個樣本計算器到聚類中心的歐式距離,并且將其劃分到最近的簇結(jié)構(gòu)中,完成全部樣本的分配后得到K個簇結(jié)構(gòu);
Step 3:迭代計算每個聚類中心;
Step 4:根據(jù)具體的應(yīng)用場景設(shè)置閾值,并且篩選出有效的聚類中心、剔除無效的聚類中,直到得到全部的聚類結(jié)構(gòu)。
依據(jù)文獻[7]中噪聲剔除的方法,采用最近鄰的計算方法來確定每個簇結(jié)構(gòu)中相同類別的數(shù)據(jù),進行聚類處理,本文假設(shè)K=8。
3.2.2 確定簇結(jié)構(gòu)
K-means聚類后,需要過采樣或欠采樣簇結(jié)構(gòu)中數(shù)據(jù)內(nèi)容,以完善簇,確保每個簇具有相類似的大小與結(jié)構(gòu),但僅僅過采樣或欠采樣并不能有效解決海量數(shù)據(jù)的不平衡,即少類別樣本集中的區(qū)域數(shù)據(jù)仍稀疏。因此,本文只針對少類別數(shù)據(jù)所在區(qū)域進行過采樣,根據(jù)各個簇中少數(shù)類樣本的數(shù)量來分配權(quán)重,進而使得少類別的數(shù)據(jù)樣本能夠在多數(shù)樣本區(qū)域內(nèi)具有一致且平衡的分布。在進行基于K-means聚類的欠采樣中設(shè)定:

其中N為數(shù)據(jù)總樣本數(shù),K為對K-means聚類值,G是過采樣數(shù),即多數(shù)樣本欠采樣后的處理結(jié)果。采用基于不平衡比率的過采樣方法,即多數(shù)類別同少數(shù)類別數(shù)據(jù)之間的平衡比率關(guān)系進行處理。不平衡比率函數(shù)的定義如下:

依據(jù)文獻[8],選取少數(shù)類別數(shù)據(jù)組成的簇結(jié)構(gòu)進行過采樣處理,即選取R>irt的簇結(jié)構(gòu)。其中,假設(shè)irt表示為不平衡比率閾值,以決定那些簇結(jié)構(gòu)能夠被過采樣處理,假設(shè)irt=1,即少數(shù)類別與多數(shù)類別的數(shù)量相等。當(dāng)irt的數(shù)值增加時,算法將采樣多數(shù)類別的數(shù)據(jù)進行過采樣處理,否則減緩選擇標(biāo)準(zhǔn),選取少數(shù)類別的數(shù)據(jù)進行過采樣處理。
為了確定過采樣簇結(jié)構(gòu)所生成的樣本數(shù)據(jù),算法將維各個簇結(jié)構(gòu)中少數(shù)類別數(shù)據(jù)所在的簇結(jié)構(gòu)分配一個0到1之間的權(quán)重值。少數(shù)類別數(shù)據(jù)往往能夠獲取更高的采樣權(quán)重,并且能夠得到更多的少數(shù)類別的數(shù)據(jù)樣本,進而有效減少不同類別數(shù)據(jù)之間的不平衡分類問題。采樣權(quán)重的計算公式如下:

其中,mi表示為第i個簇結(jié)構(gòu)的樣本數(shù)量,n表示為過采樣簇結(jié)構(gòu)的數(shù)量,Pi表示第i個簇結(jié)構(gòu)的采樣權(quán)重。假設(shè)所有采樣樣本的權(quán)重和為1,那么為了確定各個簇結(jié)構(gòu)的樣本數(shù)量Gi可以由簇結(jié)構(gòu)的采樣權(quán)重值Pi乘以樣本總數(shù)G來計算獲取,計算公式如下:

依據(jù)欠采樣結(jié)構(gòu)的計算方法進行求解。首先,選取IR>irt的簇結(jié)構(gòu),即由多數(shù)類別數(shù)據(jù)組成的簇結(jié)構(gòu)進行過采樣處理;之后,選取簇結(jié)構(gòu)中類別數(shù)量多于G的數(shù)據(jù)所在的簇結(jié)構(gòu)進行K-means聚類欠采樣處理,當(dāng)數(shù)據(jù)少于G時則不進行任何處理[9]。
3.2.3 過采樣與欠采樣
SMOTE(Synthetic Minority Oversampling Technique)算 法,由簡單的隨機復(fù)制樣本的方法來完成少數(shù)類別的樣本數(shù)據(jù)來完成過采樣與欠采樣處理。由基本原理圖獲取算法流程圖,如圖1所示。
由圖可知,該算法的具體流程如下:

圖1:算法流程圖
首先,針對每個少數(shù)類別數(shù)據(jù)Xmin進行預(yù)處理,從其k近鄰Xn中隨機選若干樣本;之后,對每個隨機選取的近鄰數(shù)量Xn迭代計算樣本數(shù)據(jù):

在欠采樣處理過程中。首先,設(shè)置少數(shù)類別數(shù)據(jù)個數(shù)的值為K;之后,采用K-means算法在多數(shù)類別數(shù)據(jù)中完成對聚類中心K的計算,并且采用聚類中心替換多類別數(shù)據(jù)樣本;最后,設(shè)置聚類系數(shù)K=G,完成數(shù)據(jù)內(nèi)容的聚類。基于K-means進行過采樣與欠采樣處理的步驟如下:
步驟1基于k-means的聚類;
1.從整個數(shù)據(jù)集中剔除噪聲數(shù)據(jù);
2.使用K-means聚類將整個數(shù)據(jù)集聚類為C1,C2,...,Cn個簇。
步驟2 確定簇的大小
1.計算得到G的值;
2.計算得到C1,C2,...,Cn的不平衡比率IR;
3.通過IR 4.通計算得到簇Cmax1,Cmax2,...,Cmaxn的采樣權(quán)重Pi; 5.計算得到簇Cmin1,Cmin2,...,Cminn的過采樣數(shù)量Gi; 6.通過IR>irt選擇需要欠采樣的簇,經(jīng)篩選得到簇Cmax1,Cmax2, ...,Cmaxn; 7.計算簇Cmax1,Cmax2,...,Cmaxn中多數(shù)類樣本的數(shù)量,并選擇大于G的簇。 步驟3 過采樣和欠采樣 1.對簇Cmin1,Cmin2,...,Cminn進行SMOTE過采樣,根據(jù)不同的權(quán)重Pi,每個簇的采樣生成Gi個樣本; 2.對簇進行基于K-means聚類的欠采樣,其中K值設(shè)置為G,最終只保留聚類中心代替原來樣本。 針對不平衡數(shù)據(jù)集,為了改變數(shù)據(jù)集合的分布,完成數(shù)據(jù)分類的有效處理,獲取核心數(shù)據(jù)集。文章設(shè)計了一種基于K-means的過采樣欠采樣的面向不平衡數(shù)據(jù)的分類算法,即在K-means算法內(nèi)使用過采樣算法,能夠有效降低噪聲數(shù)據(jù)的產(chǎn)生。完成K-means聚類處理后,需要過采樣或者欠采樣簇結(jié)構(gòu)中數(shù)據(jù)內(nèi)容,以完善簇結(jié)構(gòu),確保每個簇結(jié)構(gòu)具有相類似的大小與結(jié)構(gòu),但是僅僅過采樣或者欠采樣并不能有效解決海量數(shù)據(jù)之間的不平衡問題,即少數(shù)類別樣本集中的區(qū)域內(nèi)數(shù)據(jù)仍然較為系數(shù),進而完成面向不平衡數(shù)據(jù)集的分類處理問題。4 總結(jié)