• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      改進SMOTE的不平衡數(shù)據(jù)集成分類算法

      2019-10-31 09:21:33王忠震黃勃方志軍高永彬張娟
      計算機應用 2019年9期
      關鍵詞:聚類

      王忠震 黃勃 方志軍 高永彬 張娟

      摘 要:針對不平衡數(shù)據(jù)集的低分類準確性,提出基于改進合成少數(shù)類過采樣技術(SMOTE)和AdaBoost算法相結合的不平衡數(shù)據(jù)分類算法(KSMOTE-AdaBoost)。首先,根據(jù)K近鄰(KNN)的思想,提出噪聲樣本識別算法,通過樣本的K個近鄰中所包含的異類樣本數(shù)目,對樣本集中的噪聲樣本進行精確識別并予以濾除;其次,在過采樣過程中基于聚類的思想將樣本集劃分為不同的子簇,根據(jù)子簇的簇心及其所包含的樣本數(shù)目,在簇內(nèi)樣本與簇心之間進行新樣本的合成操作。在樣本合成過程中充分考慮類間和類內(nèi)數(shù)據(jù)不平衡性,對樣本及時修正以保證合成樣本質量,平衡樣本信息;最后,利用AdaBoost算法的優(yōu)勢,采用決策樹作為基分類器,對平衡后的樣本集進行訓練,迭代多次直到滿足終止條件,得到最終分類模型。選擇G-mean、AUC作為評價指標,通過在6組KEEL數(shù)據(jù)集進行對比實驗。實驗結果表明,所提的過采樣算法與經(jīng)典的過采樣算法SMOTE、自適應綜合過采樣技術(ADASYN)相比,G-means和AUC在4組中有3組最高;所提分類模型與現(xiàn)有的不平衡分類模型SMOTE-Boost,CUS-Boost,RUS-Boost相比,6組數(shù)據(jù)中:G-means均高于CUS-Boost和RUS-Boost,有3組低于SMOTE-Boost;AUC均高于SMOTE-Boost和RUS-Boost,有1組低于CUS-Boost。驗證了所提的KSMOTE-AdaBoost具有更好的分類效果,且模型泛化性能更高。

      關鍵詞:不平衡數(shù)據(jù)分類;合成少數(shù)類過采樣技術;K近鄰;過采樣;聚類;AdaBoost算法

      中圖分類號:TP181

      文獻標志碼:A

      Improved SMOTE unbalanced data integration classification algorithm

      WANG Zhongzhen1, HUANG Bo1,2*, FANG Zhijun1, GAO Yongbin1, ZHANG Juan1

      1.School of Electric and Electronic Engineering, Shanghai University of Engineering Science, Shanghai 201620, China;

      2.Jiangxi Province Economic Crime Investigation and Prevention and Control Technology Collaborative Innovation Center, Nanchang Jiangxi 330103, China

      Abstract:

      Aiming at the low classification accuracy of unbalanced datasets, an unbalanced data classification algorithm based on improved SMOTE (Synthetic Minority Oversampling TEchnique) and AdaBoost algorithm (KSMOTE-AdaBoost) was proposed. Firstly, a noise sample identification algorithm was proposed according to the idea of K-Nearest Neighbors (KNN). The noise samples in the sample set were accurately identified and filtered out by the number of heterogeneous samples included in the K neighbors of the sample. Secondly, in the process of oversampling, the sample set was divided into different sub-clusters based on the idea of clustering. According to the cluster center of the sub-cluster and the number of samples the sub-cluster contains, the synthesis of new samples was performed between the samples in the cluster and the cluster center. In the process of sample synthesis, the data imbalance between classes as well as in the class was fully considered, and the samples were corrected in time to ensure the quality of the synthesized samples and balance the sample information. Finally, using the advantage of AdaBoost algorithm, the decision tree was used as the base classifier and the balanced sample set was trained and iterated several times until the termination condition was satisfied, and the final classification model was obtained. The comparative experiments were carried out on 6 KEEL datasets with G-mean and AUC selected as evaluation indicators.

      The experimental results show that compared with the classical oversampling algorithm SMOTE and ADASYN (ADAptive SYNthetic sampling approach), G-means and AUC have the highest of 3 groups in 4 groups.

      Compared with the existing unbalanced classification models SMOTE-Boost, CUS (Cluster-based Under-Sampling)-Boost and RUS (Random Under-Sampling)-Boost, among the 6 groups of data: the proposed classification model has higher G-means than CUS-Boost and RUS-Boost, and 3 groups are lower than SMOTE-Boost; AUC is higher than SMOTE-Boost and RUS-Boost, and one group is lower than CUS-Boost.

      It is verified that the proposed KSMOTE-AdaBoost has better classification effect and the model has higher generalization performance.

      Key words:

      unbalanced data classification; Synthetic Minority Oversampling TEchnique (SMOTE); K-Nearest Neighbors (KNN); oversampling; clustering; AdaBoost algorithm

      0 引言

      不平衡數(shù)據(jù)集是指數(shù)據(jù)集中某個或某些類樣本數(shù)量遠遠高于其他類,反之則樣本數(shù)量低于其他類,通常把樣本數(shù)量較多的類稱為多數(shù)類,樣本數(shù)量較少的類稱為少數(shù)類[1]。在不平衡數(shù)據(jù)集中,少數(shù)類樣本所包含的信息有可能更加關鍵,例如醫(yī)療診斷[2]中人類患惡性疾病的事件屬于少數(shù)類,但是如果將惡性疾病診斷為良性,就會錯過最佳的治療時機,嚴重影響身體健康。不平衡分類問題是指:由于不平衡數(shù)據(jù)集本身數(shù)據(jù)分布的不平衡性,使用傳統(tǒng)分類算法的效果較差,模型準確度較低。隨著大數(shù)據(jù)時代的到來,現(xiàn)在這種問題普遍存在于故障檢測[3]、信用卡欺詐檢測[4]、網(wǎng)絡入侵識別[5]以及電子郵件分類[6]等領域,對不平衡數(shù)據(jù)集進行科學的分類已經(jīng)成為學術研究的一個熱點。

      針對不平衡數(shù)據(jù)集的分類研究,目前的處理方法主要分為三類:數(shù)據(jù)層面的方法、算法層面的方法以及數(shù)據(jù)與算法層面相結合的方法。數(shù)據(jù)層面的方法,目前方法是使用欠采樣和過采樣兩種方式,即對數(shù)據(jù)集中多數(shù)類樣本進行刪除或對少數(shù)類樣本進行增加以達到平衡數(shù)據(jù)集的目的;代表性的算法有合成少數(shù)類過采樣技術(Synthetic Minority Oversampling Technique, SMOTE)[7]、自適應綜合過采樣技術(ADAptive SYNthetic sampling approach, ADASYN)[8]、Borderliner-SMOTE算法[9]。算法層面的方法,現(xiàn)有算法絕大多數(shù)是在平衡數(shù)據(jù)分類算法的基礎上,通過引入損失函數(shù)或者錯誤率進行改進;代表性的算法有代價敏感學習[10]、集成學習[11]和提升算法[12]。融合數(shù)據(jù)采樣與分類算法的方法,使其訓練得出的分類器具有更強的多元性和魯棒性:文獻[13]提出了在自適應增強(Adaptive Boosting, AdaBoost)每次迭代中對多數(shù)類樣本進行隨機欠采樣(Random Under-Sampling, RUS)的RUSBoost算法,由于隨機采樣方法的不確定性,往往一些采樣出來的樣本不具有代表性,對模型效果的提升不明確;文獻[14]提出以一種基于SMOTE算法和AdaBoost.M2算法相結合的不平衡數(shù)據(jù)集分類算法,該算法雖然在一定程度上提高了分類器的召回率和預測的準確度,但并沒有考慮到少數(shù)類樣本中的邊緣化問題以及存在噪聲樣本干擾問題。

      本文提出一種針對不平衡數(shù)據(jù)二分類問題的KSMOTE-自適應增強(KSMOTE-AdaBoost)算法。首先針對少數(shù)類樣本中存在的噪聲樣本干擾問題,引入K-最近鄰(K-Nearest Neighbors, KNN)噪聲樣本濾除算法,對噪聲樣本進行濾除。其次考慮現(xiàn)有過采樣方法的合成樣本不具有代表性、忽略同類樣本之間的差異性問題,依據(jù)機器學習中的聚類思想,對現(xiàn)有的過采樣算法進行改進,引入子簇質心、過采樣權重等概念,對合成樣本進行修正,提高整體合成樣本的質量;最后將過采樣后的數(shù)據(jù)集使用以決策樹(Decision Tree, DT)作為基分類器的AdaBoost算法進行分類。通過將本文提出采樣算法與經(jīng)典的SMOTE、ADASYN采樣算法相對比,本文的分類模型與于聚類的提升欠采樣的非平衡數(shù)據(jù)分類(Cluster-based Under-Sampling with Boosting for imbalanced classification, CUS-Boost)等三種分類模型相對比,實驗表明本文采樣算法采樣后的樣本更具有代表性,本文的分類模型具有更好的分類效果,驗證了本文方法的有效性與可行性。

      1 預備理論

      1.1 SMOTE算法

      Chawla[7]在2002年提出了少數(shù)類樣本合成技術,即SMOTE。該算法的特點是:通過在少數(shù)類樣本與其K個最近鄰樣本之間線性內(nèi)插的方法合成新的樣本,其合成公式如下:

      Xnew=Xi+gif*(Xi, j-Xi)(1)

      其中:Xnew為新少數(shù)類樣本,Xi為第i個少數(shù)類樣本,Xi, j為第i個少數(shù)類樣本的第j個近鄰樣本;gif∈[0,1]。

      1.2 AdaBoost算法

      AdaBoost算法是經(jīng)典的Boosting算法,通過對弱分類器的組合來達到較好的預測效果?;具^程如下所示:首先給每個樣本賦予同等的權重,例如有樣本m個,每個樣本的權重設置為1/m,以此樣本分布為基礎訓練一個弱分類器。根據(jù)分類的結果,更新樣本權重,對分類錯誤的樣本增加其權重,相反則減少權重。在得到新的樣本分布同時得出該弱分類器的權重。根據(jù)新的樣本分布,進行新一輪的訓練,更新樣本權重,獲得新的弱分類器與其權值,通過T次的迭代循環(huán),將獲得T個弱分類器與其權值。最后將T個弱分類器ft及其權值進行線性組合,得到最終強分類器。

      算法的訓練過程如下:

      輸入:訓練樣本集S={(X1,Y1),(X2,Y2),…,(Xi,Yi)},i=1,2,…,n,Yi∈{1,0},迭代次數(shù)T,基分類器為f;

      輸出:H(X)=sign(∑Tt=1αt ft(X))。

      有序號的程序——————————Shift+Alt+Y

      程序前

      1)

      初始化樣本分布權重D1(i)=1/n,i=1,2,…,n

      2)

      For t=1 to T:

      2.1) 根據(jù)樣本分布Dt訓練弱分類器ft: X → Y

      2.2) 計算分類誤差率et=∑ni=1Dt(i)I(ft(Xi)≠Yi),I是指示函數(shù)

      2.3) 計算弱分類器的權重αt=12 ln 1-etet

      2.4) 更新樣本權值Dt+1(i)=Dt(i)Zt exp(-αtYift(Xi)),i=1,2,…,n,Zt=∑ni=1Dt(i)exp(-αtYi ft(Xi))為歸一化因子

      3)

      End For

      4)

      H(X)=sign(∑Tt=1αtft(X))

      5)

      Return H(X)

      程序后

      2 KSMOTE-AdaBoost算法

      本文提出的KSMOTE-AdaBoost分類模型分為3個部分:噪聲樣本濾除階段、數(shù)據(jù)平衡階段和數(shù)據(jù)訓練分類階段。分類模型如圖1所示。

      2.1 KNN噪聲樣本濾除算法

      在真實數(shù)據(jù)集中,噪聲數(shù)據(jù)的存在是不可避免的,并且在某種程度上會對分類器性能產(chǎn)生影響。尤其在少數(shù)類樣本數(shù)量相對較少、樣本抗干擾能力較弱的情況下,噪聲數(shù)據(jù)對樣本分布影響更大。所以本文在對少數(shù)類樣本采樣之前,引入KNN噪聲樣本濾除算法。該算法基于文獻[16]中噪聲樣本識別算法,在類內(nèi)以及類間樣本的分布較為緊密的情況下,難以對噪聲樣本進行有效的識別與過濾的缺點。本文從提高合成樣本質量、提升分類器模型性能出發(fā),對噪聲樣本的定義如下:若某一少數(shù)類樣本的K個近鄰中超過2/3的樣本為多數(shù)類樣本,則將該樣本定義為噪聲樣本。

      KNN噪聲樣本濾除算法首先針對輸入樣本集,進行樣本集的類別劃分;然后通過K近鄰算法獲取每個少數(shù)類樣本的近鄰樣本集,對各近鄰樣本集進行分類匯總;最后根據(jù)噪聲樣本判別條件對樣本集中的噪聲樣本識別并濾除,詳細的算法步驟如算法1所示。

      算法1 KNN Noise Sample Removal。

      輸入:All datasets S; Number of nearest neighbors K;

      輸出:New minority class dataset Sm′。

      有序號的程序——————————Shift+Alt+Y

      程序前

      1)

      S=SM∪Sm

      Sm//Minority class dataset

      SM//Majority class dataset

      |Sm|// The number of minority class samples

      Knn= NearestNeighbors(K).fit()//KNN algorithm

      X_min=[ ]//Save the index of the security sample

      2)

      For i=1 to |Sm|:

      2.1) S′=(Sm-Sm,i)∪SM

      2.2) Knn= NearestNeighbors(K).fit(S′)

      2.3) Nnarray=Knn.kneighbors(Sm,i)//Calculate the K near neighbors of sample i in Sm from

      //dataset S′ through the KNN algorithm,

      //and save the indices in the Nnarray

      2.4) Value,Counts=unique(S[Nnarray])//S[] Select samples based on the index in the list.

      //Count the number of majority and minority among K near //neighbors

      2.5) if Counts[0]< K/3 or Value[0]==1:

      2.5.1) X_min.extend[i]// Save the index of thei sample in the X_min

      3)

      End For

      4)

      Sm′=Sm[X_min]//New minority class dataset S′m

      5)

      Return Sm′

      程序后

      2.2 基于k-means改進的SMOTE算法

      針對不平衡數(shù)據(jù)集中樣本類別數(shù)目的不平衡性,文獻[7-8]中提出的過采樣算法,在進行樣本采樣時,更多考慮到樣本類別之間的不平衡,即少數(shù)類與多數(shù)類之間的不平衡,沒有充分地考慮同類樣本本身分布的不平衡,即類間不平衡,以及合成樣本分布“邊緣化”問題。所以針對以上的問題,本文提出改進的SMOTE算法。

      在分類任務中,不僅類間樣本的不平衡性對模型性能造成影響,類內(nèi)樣本的不平衡性也同樣影響。本文針對以上兩類不平衡問題,引入子簇的概念。首先采用聚類算法k-均值聚類(k-means clustering, k-means)對樣本集進行子簇的劃分,根據(jù)子簇中樣本數(shù)目為其分配不同的采樣權重記作W(i),則有:

      W(i)=1-num(i)/(∑ci=1num(i))(2)

      其中:c表示樣本集劃分的類簇總數(shù),num(i)表示第i個類簇中的樣本數(shù)量。根據(jù)(2)可知,某一類簇中樣本數(shù)目越多,則W(i)越小,即過采樣權重越小,合成樣本數(shù)目就越小,最終實現(xiàn)同類樣本之間的平衡分布。

      在過采樣過程中,合成樣本的質量越高,則模型的性能就越好;反之若合成樣本分布在類別分布的“邊緣”,則有可能影響多數(shù)類樣本的分類精準度,且合成樣本不具有代表性。為了防止新樣本的“邊緣化”,本文引入質心的概念,質心是指少數(shù)類劃分子簇后每個子簇的簇心Ci,center。對SMOTE算法進行改進,原始的方法新樣本的合成如(1)所示,改進后的公式如式(3)所示:

      Xnew=Ci,center+gif*(Xi, j-Ci,center)(3)

      其中:Ci,center表示第i個子簇的簇心,Xi, j表示第i個子簇中的第j個樣本。整個公式表示為在Ci,center與Xi, j之間進行線性插值得到新的樣本Xnew。

      改進的SMOTE算法是根據(jù)樣本集中所包含樣本的分布特點,進行新樣本的合成,合成過程如下:

      1) 使用聚類算法將樣本集劃分為特定數(shù)目的類簇;

      2) 根據(jù)需要合成樣本的數(shù)目,以及各類簇中所包含樣本數(shù)量,得出各類簇所占權重以及需要合成的樣本數(shù)目;

      3) 通過輪盤賭的方式進行樣本的選擇,在選中樣本與所屬類簇簇心之間進行線性插值,獲得合成樣本;

      4) 輸出合成樣本集。

      詳細算法步驟如算法2所示。

      算法2 Improved SMOTE。

      輸入:Sample set S;The number of synthetic new samples is Num; Number of clusters N;

      輸出:Synthestic sample set Snew。

      有序號的程序——————————Shift+Alt+Y

      程序前

      1)

      Snew=[]//array for synthetic samples

      K=N//Number of clusters N

      2)

      kmeans=Kmeans(n_clusters=K)

      3)

      kmeans.fit(S)//Calculate the K class cluster of sample set S// through the k-means algorithm

      4)

      For j in range(kmeans.n_clusters):

      4.1)each_cluster={j:where(kmeans.labels_ == j)[0]}// Each sample is divided into different clusters

      End For

      5)

      For i in each_cluster.keys():

      5.1) Ci=S(i)

      5.2) num(i)= unique(Ci)[1]// Calculate the number of samples in the i cluster

      5.3) W(i)=1-num(i)∑ci=1num(i)

      5.4) numnew(i)=Num*W(i)//The number of samples of the i cluster synthesis sample

      5.5) Ci,center=kmeans.cluster_centers_[i]// The centroid of the i cluster

      5.6) For j=1 to numnew(i):

      5.6.1) Xi, j=Random.choice(Ci,size=1)//Randomly select a sample from Ci

      5.6.2) Snew.append(Xi, j)//Save the newly synthesized sample

      End For

      End for

      6)

      Return Snew

      程序后

      2.3 基于改進過采樣的集成分類算法

      數(shù)據(jù)集經(jīng)過算法1和算法2處理后,會得到一個相對“干凈”且平衡的數(shù)據(jù)集,最后對處理后的數(shù)據(jù)集使用AdaBoost算法訓練分類模型。三者結合在一起,得出本文提出的KSMOTE-AdaBoost算法。

      KSMOTE-AdaBoost算法訓練過程如下:

      1)通過算法1對樣本集中噪聲樣本識別、濾除;

      2)使用算法2對去噪后的樣本集進行新樣本的合成;

      3)將合成的樣本集與去噪后的樣本集進行組合,獲得平衡樣本集;

      4)對平衡樣本集,通過AdaBoost算法進行模型訓練;

      5)獲得KSMOTE-AdaBoost分類模型。

      詳細算法步驟如算法3所示。

      算法3 KSMOTE-AdaBoost。

      輸入:Set S={(X1,Y1),(X2,Y2)…(Xi,Yi)}, i=1,2,…,n,Xi∈X, with labels Yi∈{0,1},Number of iterations T, Base classifier f, Number of nearest neighbors K, Number of clusters k;

      輸出:H(X)=sign(∑Tt=1αtft(X))。

      有序號的程序——————————Shift+Alt+Y

      程序前

      1)

      Filter out noise samples in a small class of samples by Algorithm 1,get denoised sample set Sm′

      2)

      Synthesize a new minority sample set Snew by Algorithm

      3)

      Sall=Snew∪S

      4)

      Initialize the distribution D1(i)=1/(n+Num);i=1,2,…,n,n+1,…,n+Num

      5)

      For t=1,2,…,T:

      5.1) Train a weak learner using distribution Dt

      5.2) Compute weak hypothesis ft:X×Y→[0,1]

      5.3) Compute the pseudo-loss of hypothesis? ft: et=∑ni=1Dt(i)I(ft(Xi)≠Yi)

      5.4) Set αt=12ln1-etet

      5.5) Update Dt: Dt+1(i)=Dt(i)Ztexp(-αtYift(Xi)) ?where Zt is a normalization constant chosen such that Dt+1 is a distribution.

      End for

      6)

      Return H(X)=sign(∑Tt=1αtft(X))

      程序后

      3 實驗結果與分析

      為驗證本文所提出方法的具有較高的適用性,實驗采用6組KEEL數(shù)據(jù)集,實驗數(shù)據(jù)選擇10次十折交叉驗證后的平均值,作為對本文分類算法以及對比算法性能的評估標準。實驗思路:首先選擇類別不平衡數(shù)據(jù)集,對本文提出改進的過采樣算法與以往算法進行比較,對比其實驗結果,證明改進的過采樣算法的有效性;然后將本文提出的分類模型與其他分類模型進行比較,驗證本文的模型在處理不平衡數(shù)據(jù)上能夠有更好的分類效果,更具有優(yōu)勢。

      3.1 數(shù)據(jù)集

      實驗采用來自KEEL公開數(shù)據(jù)庫中不同領域的6組數(shù)據(jù)集。這些數(shù)據(jù)集被國內(nèi)大量的研究者引用。實驗前要先對數(shù)據(jù)集進行預處理,同時把含有多類別的數(shù)據(jù)集劃分為二分類別,預處理后的數(shù)據(jù)集特征如表1。

      3.2 性能評價指標

      針對不平衡數(shù)據(jù)集的特征,不能通過分類準確率的方式來評價一個分類模型的優(yōu)劣,所以本文采用G-mean和AUC作為分類模型的評估指標(本文中定義少數(shù)類為正類,多數(shù)類為負類)。利用混淆矩陣表示不平衡數(shù)據(jù)的分類結果,見表2。

      表格(有表名)

      根據(jù)表2可求出如下評價指標:

      少數(shù)類召回率(查全率):

      RP=TP/(TP+FN)(4)

      多數(shù)類召回率(查全率):

      RN=TN/(TN+FP)(5)

      G-mean=RP*RN(6)

      AUC:在不平衡數(shù)據(jù)集分類器的評價標準中,“受試者工作特征”(Receiver Operating Characteristic, ROC)曲線是評價學習器泛化性能的有利工具。ROC曲線以FPTN+FP(假陽率)為橫軸,以TPTP+FN(真陽率)為縱軸,給出的是當閾值變化時假陽率與真陽率的變化情況,閾值取自分類器的概率輸出。最佳的分類器應該盡可能地處于左上角,這就意味著分類器在假陽率很低的同時獲得了很高的真陽率。在進行分類器的比較時,若一個分類器的ROC 曲線被另一個分類器的曲線完全“包住”,則可斷言后者的性能優(yōu)于前者;若兩個分類器的ROC曲線發(fā)生交叉,則難以一般性地斷言兩者孰優(yōu)孰劣,所以引入ROC曲線下的面積進行對比,即AUC(Area Under Curve)[17]。

      3.3 參數(shù)尋優(yōu)

      對于噪聲處理階段中KNN算法K的選取在本文中至關重要,因為K值的選取是確定某一樣本是否為噪聲的關鍵。若K值較小,則其樣本中噪聲樣本難以過濾,分類器效果得不到提升;選取較大,會造成原有樣本中信息數(shù)據(jù)的丟失,分類模型泛化性較低。對于K值的設定,本文通過將K值限定在3到9之間來進行參數(shù)尋優(yōu),并從兩個方面考慮,一從噪聲樣本數(shù)量,對不用K值下每次過濾的噪聲樣本數(shù)量進行統(tǒng)計,取值為10次十折交叉后的平均值;二從評價指標G-mean值和AUC值,取值為同一K值下不同數(shù)據(jù)集10次十折交叉后的平均值。從圖2與圖3中可以看出,當K值取4時,其噪聲樣本的數(shù)量相對較小且平均G-mean、AUC取值最大。

      對于聚類算法中K值的選取,本文自適應地調整各數(shù)據(jù)集K的取值,保證數(shù)據(jù)集聚類效果。方法如下:首先通過計算類中各點與類中心的距離平方和來度量類內(nèi)的緊密度,再通過計算各類中心點與數(shù)據(jù)集中心點距離平方和來度量數(shù)據(jù)集的分離度,求二者比值,比值越大類與類之間越分散,即聚類結果更優(yōu)。在實驗中統(tǒng)一使用C4.5決策樹算法作為所有實驗的基本分類算法。根據(jù)表1中的數(shù)據(jù)可知,本文所選用數(shù)據(jù)集的不平衡率是存在差異的,所以其合成新樣本的數(shù)目因不平衡率而不同。

      3.4 本文過采樣方法與其他過采樣方法的比較

      為驗證本文所提出的樣本合成算法的優(yōu)勢與降低數(shù)據(jù)集不平衡率的有效性,首先采用人工數(shù)據(jù)集進行驗證,將本文樣本合成方法與SMOTE算法進行對比,比較兩者合成樣本的分布情況。本文采用Python3.6中的Sklearn包隨機生成兩組高斯樣本,樣本數(shù)分別為35和50,合成樣本數(shù)34。圖4為不同算法合成樣本分布對比效果圖,所用數(shù)據(jù)為同一高斯分布數(shù)據(jù)集。

      圖4中原始少數(shù)類樣本點用“×”符號表示,“●”符號表示合成少數(shù)類樣本點。

      圖4(a)所示為原始少數(shù)類樣本集分布情況,從圖中可知樣本集的分布主要聚集在兩個區(qū)域,且每個區(qū)域中所包含樣本數(shù)目不等。圖4(b)所示為通過SMOTE采樣后,所有樣本的分布情況。與圖4(a)相比,可以看出新合成樣本中有較多樣本分布在原始樣本分布的“邊緣”區(qū)域,且采樣后的樣本分布沒有改變原樣本集中的類內(nèi)不平衡性。針對圖4(b)中所呈現(xiàn)的不足,本文對SMOTE采樣算法進行改進。在對樣本集進行過采樣之前,針對類內(nèi)樣本分布的不平衡性,引入子簇的概念,將樣本集劃分為不同的子簇,并通過式(2)賦予其不同的采樣權重。針對合成樣本的“邊緣性”問題,引入簇心的概念。將簇心與任一簇內(nèi)樣本進行線性組合,通過式(3)合成新樣本,實驗效果圖如圖4(c)所示。

      其次為驗證本文所提出的過采樣方法的泛化性,使用本文的方法與SMOTE、ADASYN在不同數(shù)據(jù)集上對G-mean和AUC評價指標進行對比。實驗中均采用scikit-learn自帶的C4.5作為分類器。實驗結果如表3所示(加粗部分為最好實驗結果)。

      由表3實驗數(shù)據(jù)可以看出本文提出的過采樣算法確實提高了預測效果。在數(shù)據(jù)集Glass1和Yeass6上G-mean和AUC表現(xiàn)均高于其他方法,G-mean值最高提高了2.1%,AUC值提高了4.6%;對比經(jīng)典的過采樣算法SMOTE,G-mean值平均提高了約1.8%,AUC值平均提高了約2.6%;

      由表3實驗數(shù)據(jù)可以看出本文提出的過采樣算法確實提高了預測效果。在數(shù)據(jù)集Glass1和Yeast6上G-mean和AUC表現(xiàn)均高于其他方法,G-mean值最高提高了1.03%,AUC值提高了4.6%;對比經(jīng)典的過采樣算法SMOTE,G-mean值平均提高了約0.899%,AUC值平均提高了約4.44%;與ADASYN相比,本文提出過采樣算法的評價指標均高于其指標;在Yeast3中本文算法的AUC均高于其他算法,而G-mean值略低的原因為RN降低程度高于RP增大程度。在Pima中本文算法的G-mean高于另外兩種過采樣算法,AUC值相對較低,分析其原因為Pima原始數(shù)據(jù)集中數(shù)據(jù)分布比較集中,對噪聲樣本的劃分比較敏感,所以導致AUC的取值略低于其他兩種方法。

      3.5 本文分類模型與其他算法的比較

      3.4節(jié)驗證了本文采樣算法的有效性,現(xiàn)進一步驗證本文提出的基于改進的過采樣方法與集成學習結合對分類模型的提升。本文算法與SMOTE-Boost、CUS-Boost和RUS-Boost在6個不同數(shù)據(jù)集上的G-mean、AUC比較結果,如表4所示(加粗部分為最好實驗結果)。

      從表4的實驗結果可以看出,本文提出的分類模型在所選用的數(shù)據(jù)集上其G-mean值、AUC值上均得到了提升,在數(shù)據(jù)集Ecoli2、Glass1以及Pima中,其分類的效果均優(yōu)于對比模型,G-mean值的最高值達到了88.2%,AUC的最高值達到了94.1%。在數(shù)據(jù)集Yeast3中本文算法的低于G-mean值、AUC值略低一些,原因為其數(shù)據(jù)集本身類別數(shù)據(jù)的分布區(qū)域較為重疊,多數(shù)類樣本集中包含“干擾樣本”。在數(shù)據(jù)集Yeast6中本文算法的G-mean值略低,但其AUC值最高提高了9.9%。對于數(shù)據(jù)集Glass6即使在G-mean值上低于SMOTE-Boost算法,但其AUC值增加了2.6%。

      4 結語

      針對不平衡數(shù)據(jù)集分類問題,現(xiàn)有的過采樣算法更多地考慮類間數(shù)據(jù)的不平衡,進而忽略了類內(nèi)樣本的不平衡性,存在樣本分布“邊緣化”問題,導致合成樣本的質量較低,實際情況下對樣本的分類準確度較低。針對以上問題,本文在SMOTE算法的基礎上進行改進。為了克服SMOTE算法的不足,本文在進行過采樣之前,提出噪聲樣本過濾算法,對少數(shù)類樣本集先進行噪聲樣本的濾除,提高合成樣本的質量。其次針對合成樣本存在的不平衡性問題,引入聚類思想,有效降低了數(shù)據(jù)集中類內(nèi)的不平衡性,同時利用濾除噪聲樣本數(shù)、G-mean以及AUC進行模型參數(shù)的尋優(yōu)。最后與AdaBoost算法相結合,在KEEL數(shù)據(jù)集上與其他方法進行對比,實驗表明該分類模型可以明顯提高少數(shù)類樣本的分類準確度,分類性能更優(yōu)。

      本文將聚類思想引入到不平衡分類問題的過采樣算法中,并與集成學習相結合提出一種針對不平衡數(shù)據(jù)二分類問題的KSMOTE-自適應增強(KSMOTE-AdaBoost)算法,并通過一系列實驗驗證了KSMOTE-AdaBoost算法訓練出的分類器可以有效處理不平衡數(shù)據(jù)的分類問題。然而在實際應用中所接觸的數(shù)據(jù)大部分是多類別的,未來將研究考慮針對多類的基于過采樣的分類算法,提高分類的精度以及減少算法所運行的復雜度。通過,也期望本文所提出的不平衡數(shù)據(jù)集分類算法可以應用到更多的領域。

      參考文獻

      [1]莫贊,蓋彥蓉,樊冠龍.基于GAN-AdaBoost-DT不平衡分類算法的信用卡欺詐分類[J].計算機應用,2019,39(2):618-622. (MO Z, GAI Y R, FAN G L. Credit card fraud classification based on GAN-AdaBoost-DT imbalanced classification algorithm[J]. Journal of Computer Applications, 2019, 39(2): 618-622.)

      [2]MAZUROWSKI M A, HABAS P A, ZURADA J M, et al. Training neural network classifiers for medical decision making: the effects of imbalanced datasets on classification performance [J]. Neural Networks, 2008, 21(2/3): 427-436.

      [3]YANG Z, TANG W, SHINTEMIROV A, et al. Association rule mining-based dissolved gas analysis for fault diagnosis of power transformers [J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2009, 39(6): 597-610.

      [4]PUN J, LAWRYSHYN Y. Improving credit card fraud detection using a meta-classification strategy [J]. International Journal of Computer Applications, 2012, 56(10): 41-46.

      [5]康松林,樊曉平,劉樂,等.ENN-ADASYN-SVM算法檢測P2P僵尸網(wǎng)絡的研究[J].小型微型計算機系統(tǒng),2016,37(2):216-220. (KANG S L, FAN X P, LIU L, et al. Research on P2P botnets detection based on the ENN-ADASYN-SVM classification algorithm[J]. Journal of Chinese Computer Systems, 2016, 37(2):216-220.)

      [6]BERMEJO P, GAMEZ J A, PUERTA J M. Improving the performance of Naive Bayes multinomial in e-mail foldering by introducing distribution-based balance of datasets [J]. Expert Systems with Applications, 2011, 38(3):2072-2080.

      [7]CHAWLA N V, BOWYER K W, HALL L O, et al. SMOTE: synthetic minority over-sampling technique [J]. Journal of Artificial Intelligence Research, 2002, 16(1): 321-357.

      [8]HE H, BAI Y, GARCIA E A, et al. ADASYN: adaptive synthetic sampling approach for imbalanced learning [C]// Proceedings of the 2008 IEEE International Joint Conference on Neural Networks (IEEE World Congress on Computational Intelligence). Piscataway, NJ: IEEE, 2008: 1322-1328.

      [9]HAN H, WANG W Y, MAO B H. Borderline-SMOTE: a new over-sampling method in imbalanced data sets learning [C]// Proceedings of the 2005 International Conference on Intelligent Computing, LNCS 3644. Berlin: Springer, 2005: 878-887.

      [10]CASTRO C L, BRAGA A P. Novel cost-sensitive approach to improve the multilayer perceptron performance on imbalanced data[J]. IEEE Transactions on Neural Networks and Learning Systems, 2013, 24(6): 888-899.

      [11]李勇,劉占東,張海軍.不平衡數(shù)據(jù)的集成分類算法綜述[J].計算機應用研究,2014,31(5):1287-1291.(LI Y, LIU Z D, ZHANG H J. Review on ensemble algorithms for imbalanced data classification [J]. Application Research of Computers, 2014,31(5): 1287-1291.)

      猜你喜歡
      聚類
      稠密度聚類在艦船網(wǎng)絡微弱信號自適應增強中的應用
      基于K-means聚類的車-地無線通信場強研究
      基于DBSACN聚類算法的XML文檔聚類
      電子測試(2017年15期)2017-12-18 07:19:27
      基于高斯混合聚類的陣列干涉SAR三維成像
      雷達學報(2017年6期)2017-03-26 07:53:02
      條紋顏色分離與聚類
      基于Spark平臺的K-means聚類算法改進及并行化實現(xiàn)
      局部子空間聚類
      自動化學報(2016年8期)2016-04-16 03:38:58
      基于改進的遺傳算法的模糊聚類算法
      一種層次初始的聚類個數(shù)自適應的聚類方法研究
      基于熵權和有序聚類的房地產(chǎn)周期分析
      河南科技(2014年23期)2014-02-27 14:19:14
      浪卡子县| 门源| 茌平县| 屏山县| 禄劝| 南部县| 台江县| 文昌市| 巴彦县| 石台县| 澎湖县| 巴林左旗| 银川市| 三亚市| 内乡县| 溧水县| 腾冲县| 泗洪县| 昭平县| 保德县| 西乡县| 巩留县| 汉川市| 高阳县| 依安县| 青田县| 德保县| 安宁市| 哈密市| 景谷| 措勤县| 贡山| 本溪市| 深州市| 大丰市| 连城县| 宜阳县| 项城市| 含山县| 南川市| 泰安市|