基于改進dbscan-smote算法的分類方法
【專利摘要】本發明針對數據樣本空間的處理中類內不平衡的情況提供了一種基于改進DBSCAN?SMOTE算法的分類方法,首先在數據樣本集合中,判斷出哪些屬于邊界樣本,并將邊界樣本分為多數類邊界樣本和少數類邊界樣本,對于多數類樣本空間中的邊界樣本采用聚類;然后采用PSO算法對聚類簇內邊界樣本和安全樣本的過采樣率進行優化,通過對少數類邊界樣本通過SMOTE算法進行不同采樣率的過采樣;其中,所述聚類基于改進DBSCAN算法,該算法不僅能夠產生少數類的聚類簇,然后再在這些樣本簇內進行過采樣,而且還能夠充分的解決類內不平衡中的分布不均勻和數據碎片或者小析取項的問題。
【專利說明】
基于改進DBSCAN-SMOTE算法的分類方法
技術領域
[0001] 本發明屬于數據挖掘中的分類技術優化領域,尤其涉及一種適用不平衡樣本的分 類方法。
【背景技術】
[0002] 不平衡樣本分類問題中,不平衡數據就是在整個數據集樣本空間中其中一類的樣 本和其余一類或幾類樣本在數量上存在巨大的差距。在這種情況下往往少數類需要我們投 入更多的關注。例如在醫療診斷中的應用中,癌癥或者心臟病的數據樣本空間就是不平衡 樣本,在這類樣本中,我們關注的對象往往是患病樣本,通過準確分類出這些樣本的屬性, 從而可以準確診斷病人的病情,并給與這些病人及時的針對性治療。
[0003] 傳統分類器在處理不平衡樣本分類問題中,為了追求較高的全局分類準確率,往 往直接將少數類樣本分類為多數類樣本,這種做法會將潛在的病人信息分類為健康信息, 因此患者可能錯過治療的最佳時期,造成患者不可挽回的損失。
[0004] 在不平衡樣本分類問題中,往往又存在著兩種不平衡:類間不平衡和類內不平衡。 類間不平衡就是多數類和少數類之間在數據樣本數量上的不平衡;類內不平衡就是在少數 類樣本空間中又存在著各子類間數據樣本分布位置或者分布密度的不平衡,也即是存在數 據碎片和密度不均勻問題。
[0005] 現有針對不平衡樣本分類問題的方案眾多,可以將這些方法歸納為兩大類:一、從 數據層面解決問題,也就是通過適當采樣方法,增加少數類樣本數量,從而使原始樣本空間 趨于平衡,使得此問題轉化為傳統的機器學習樣本分類問題。二、從算法層面解決問題,也 就是改進傳統的機器學習分類器算法,使得新的分類器算法能夠更好地識別數量很少的不 平衡樣本。
[0006] 數據層面解決不平衡樣本分類的主要思想就是通過重采樣從而對原始不平衡樣 本空間進行重構,使其變為相對平衡分布的狀態,使得重構后數據樣本能更好的適用標準 分類器算法進行分類。在數據層面解決不平衡樣本分類問題有很多不同形式進行重采樣的 方法,主要有"過采樣方法"和"欠采樣方法"兩大類重采樣算法。例如在少數類中的過采樣, 在多數類中的欠采樣又或者結合這兩種方法的混合采樣。
[0007] 研究者提出了很多有效的重采樣方案,單邊選擇法(one-side selection)是 Kubat等人于1997對于樣本向量距離思想上的一次改進而提出一種新的欠采樣方法。該方 法的主要思想是:在樣本向量距離思想的基礎上,結合了 KNN,將多數類樣本歸為四種主要 類別,分別為安全樣本、冗余樣本、邊界樣本和噪聲樣本。在這里,安全樣本和冗余樣本是那 些遠離少數類和多數類邊界處的樣本,這些樣本的分類難度比較小,對于邊界樣本和噪聲 樣本而言,我們稱之為"不安全樣本",對于這類樣本需要重點關注。因此,單邊選擇法的采 樣過程中,通過多數類樣本中的安全樣本和少數類樣本人工合成新的數據樣本,而對"不安 全樣本"的處理方式是采用欠采樣方法。
[0008] SMOTE(synthetic minority over-sampling technique)算法是應用較多的一種 過采樣方法,由Chawla等人提出的。它的主要思想是在少數類樣本空間中相鄰的樣本之間 仿造一些樣本。因此,過擬合問題在SMOTE算法中就會被避免,而且少數類的決策空間也會 擴展的更好;同樣,它也可以應用到多數類樣本空間中,可以降低多數類的決策空間。現在 很多的過采樣方法都是在SMOTE基礎上進行的改進,Han等人提出了 Borderline-SMOTE,He 和Li提出了 NRSBoundary-SMOTE算法,其主要思想是擴展少數類的分類空間并且壓縮多數 類的分類空間。
[0009] Yen和Lee在2009年提出了一種基于聚類的欠采樣方法SBC。該算法認為,不同的聚 類簇之間有一定的差異性,應該對不同的聚類簇采取不同的欠采樣策略。SBC算法的主要思 想就是:采用傳統聚類算法將多數類樣本聚類成k個簇,然后根據簇中多數類占所有多數類 的比例進行欠采樣倍率的設置,根據不同的采樣倍率進行欠采樣,實現刪除一些多數類的 功能。
[0010] 在數據層面的改進對于解決不平衡樣本分類問題已經有了很大的分類效果和許 多成功的應用案例。但是,數據層面僅僅是在數據分布的角度去解決不平衡樣本分類問題, 并沒有從分類算法的角度去尋求更好的解決方案。所以,越來越多的學者開始在算法層面 來尋求突破,主要是通過改進傳統的分類器算法,使它們能夠適應不平衡樣本分類問題。在 算法層面,主要的研究體現在代價敏感學習、集成學習和其他一些優化的分類學習算法。
[0011] -般來說,解決不平衡分類問題最普遍的一種解決方案就是選擇恰當的歸納偏 置。對決策樹來說,一種方法就是調整葉節點的概率估計,另一個方法就是優化剪枝技術; 對于SVM來說,就是對不同的類設置不同的懲罰因子,或者根據核函數來調整分類超平面。 為了研究出一種算法解決方案,一個是需要相應分類器相關的知識和應用領域,尤其是要 完全理解為什么這種學習算法當遇到數據不平衡會失敗的原因。
[0012] 代價敏感學習是考慮將不同誤分類的樣本賦予不同的誤分代價。代價矩陣代表了 將某一類錯分為另一類是需要付出的懲罰代價,讓C(Min,Maj)代表將分類器算法將少數類 樣本Min誤分類為多數類樣本Maj的代價大小。根據這種思想,C(Min,Maj)代表著將少數類 樣本誤分類多數類樣本時候的代價,C(Maj,Min)正好相反。在解決不平衡分類問題時,由于 少數類樣本蘊含的價值信息往往大于多數類樣本所蘊含的價值信息,因此,代價矩陣中,誤 分類少數類樣本時候的代價要大于誤分類多數類樣本時候的代價,即C(Min,Maj)>C(Maj, Min)。所有沒被誤分類的樣本代價為0,即C(Maj,Maj) =C(Min,Min) = 0。其中某一樣本的條 件概率風險R(i|x)的定義如下公式(1)所示:
[0013] R(i|x) = EjP(j|x)C(i,j) (1)
[0014]其中P(j|x)代表樣本x被分類為j類型的后驗概率。綜上所述,代價敏感學習兩條 關鍵的原則是:少數類樣本被誤分類的代價要大于多數類被誤分類的代價原則以及條件風 險最小化原則,分類器在訓練的時候會更加關注誤分類代價較大的樣本,從而在下一次迭 代中正確分類這些樣本點。
[0015]集成分類學習方法的基本思想是構建多個基分類器,每個基分類器都對原始數據 進行各自的分類預測,最后將每個基分類器分類的結果匯總統計,從而采用加權投票進行 多數原則分類。將多個基分類器結合起來的主要動機就是提高它們的泛化能力,每一個基 分類器都被假設為它會在特定有限的數據集中出現誤分類的情況,同一個實例可能會被不 同的基分類器分類為不相同的類別標簽。集成學習之所以在不平衡分類領域獲得很高的關 注和應用,主要是因為它具備如下的獨特優勢:基于統計的學習方法;處理大規模數據的優 越性能;針對不平衡樣本分類的獨特的學習效果;數據集的分治處理和特定邊界樣本的結 合。以上集成學習的獨特優勢,對于解決不平衡樣本分類有天然的適用性。
[0016] 集成分類學習方法的主要作用就是基本通過統計偏差或者方差來進行學習的。對 于給定的一個基分類器,偏置方差分解在偏差、方差和基本誤差中都會有所不同,集成分類 方法性能上的提升也主要是表現在方差的降低。Bagging、Random forest和AdaBoost都是 成功降低誤分方差的一系列被成功應用的集成分類學習方法。
[0017] AdaBoost演算法被觀察到有能力減少偏差。以樹粧(每個劈叉樹只有兩個終端節 點,通常方差較低但高偏差)為基礎的學習分類器,裝袋執行很差和AdaBoost演算法顯著提 高了基分類器的性能。對于一個不平衡數據集,標準的學習方法由于引入偏移誤差表現的 往往很差。AdaBoost學習演算法減少偏見的能力在處理類不平衡問題上是至關重要的。 AdaBoost算法主要形式有:AdaCl,AdaC2和AdaC3,它們的主要不同之處就是在基分類器的 權重系數at的計算上,在每次迭代運算中都會將代價這一項考慮進去進行重新計算。
[0018] 如上所述,采樣方法改變樣本數據的分布,從而解決了標準分類器算法無法適應 不平衡樣本數據集的問題。然而,很多研究仍然從分類器算法的角度來解決其對于不平衡 樣本數據集分類準確率地下的問題。例如,代價敏感學習方法通過設置合理的錯分代價,從 而尋求最低代價完成分類。
[0019] 傳統的隨機欠采樣和隨機過采樣有很多明顯的缺點。例如,隨機欠采樣很有可能 會移除一些潛在有價值的樣本,造成不平衡樣本分類時分類不準確;隨機過采樣可能會導 致過擬合問題。最為主流SMOTE也存在一些顯而易見的問題,比如仿造的數據樣本對決策空 間的擴展作用不大;由于隨機性,有時候無法顧及傳統分類器認為的所謂的"少數類噪聲樣 本",從而對診斷表現造成較大的影響。
[0020] 在現實世界中,少數類樣本數據經常被錯分,或當作數據噪音處理,代價敏感學習 為少數類樣本數據指定較高的錯分代價,相反,為多數類樣本數據設置較小的錯分代價,這 樣也就可以使得在分類過程中給予分類難度較大的樣本更多的"關注",從而做到有的放 矢。另外,近年來,集成學習作為一種重要的機器學習方法框架,也被更多的應用于不平衡 樣本分類。集成學習通過將基分類器進行組合,從而形成分類準確率較高的集成分類器。對 于集成學習改進也有很多,例如Chawla N V等人通過將SMOTE采樣算法集成到Boosting中, 從而得到了 SMOTEBoost提高了少數類分類的準確率。
[0021 ] Boosting算法中同時也存在一定的弊端,在對每一輪迭代中,樣本權值的賦予策 略的不同往往能對最終的分類效果產生較大的影響。同時在對基分類器投票權重系數的確 定上,往往也只是單純根據這一基分類器的最終分類結果確定的,但是在基分類器的組合 中,這些基分類器往往存在一定的關系,不能僅僅采用他們的分類準確率來確定最終的系 數組合,如何確定最優的這些系數組合也是需要重點考慮的一個問題。
[0022] 現有方法的最主要的一個弊端就是大部分方案都是針對類間不平衡進行處理的, 沒有考慮到類內不平衡問題的存在,所以在最終的效果上往往達不到很理想的效果。
【發明內容】
[0023] 為了解決現有技術中問題,本發明提供了一種針對類內不平衡樣本的基于改進 DBSCAN-SMOTE算法的分類方法,采用改進DBSCAN-SMOTE算法來處理類內不平衡的情況。 [0024]本發明通過如下技術方案實現:
[0025] 一種基于改進DBSCAN-SMOTE算法的分類方法,所述方法針對數據樣本空間的處理 中類內不平衡的情況,首先在數據樣本集合中,判斷出哪些屬于邊界樣本,并將邊界樣本分 為多數類邊界樣本和少數類邊界樣本,對于多數類樣本空間中的邊界樣本采用聚類;然后 采用PS0算法對聚類簇內邊界樣本和安全樣本的過采樣率進行優化,通過對少數類邊界樣 本通過SMOTE算法進行不同采樣率的過采樣;其中,所述聚類基于改進DBSCAN算法,所述改 進的DBSCAN算法包括:首先,考慮類內不平衡少數類樣本分布密度不均勻的情況,能夠得到 一組基于分布密度的EPS值;然后,將這些通過計算得到的每個少數類樣本點的平均距離組 成一個距離向量數組,將這些平均距離作為原始數據集,在這個數據集上通過進行距離上 的聚類;在將這個距離數組聚類成N個簇之后,計算每個簇中的所有距離加和取平均,將得 到的這個平均值作為這個簇的鄰域閾值,通過分別計算這N個簇的平均值,可以得到N個鄰 域閾值EPSi,i = 1,2,…,N;接下來,將這N個領域閾值進行從小到大的順序排序并保存在一 個數組中;在接下來的聚類算法中,首先選擇閾值數組中最小的那一個,當做DBSCAN算法的 EPS值,然后對所有少數類樣本進行聚類,接著采用閾值數組中下一個閾值對標記為噪聲樣 本點的少數類樣本繼續進行DBSCAN聚類,同樣得到一些聚類簇和剩余的噪聲樣本點。最后, 重復以上的操作,當對所有少數類樣本的通過不同的EPS進行聚類過后,則完成少數類樣本 的所有聚類操作,那些最后都不被歸為在任何一個簇的數據即為噪聲數據。
[0026] 作為本發明的進一步改進,所述在數據樣本集合中,判斷出哪些屬于邊界樣本,并 將邊界樣本分為多數類邊界樣本和少數類邊界樣本采用Borderline算法;事先指定待分類 的不平衡數據集為S={(xi,yi),(X2,y2),???,(x n,yn)},其中的每一個樣本由特征向量和這 個樣本所屬的類標組成,特征向量表示為X,類標表示為y,即 x= {X1,X2,…,Xn},y = {Maj, Min},S中的多數類樣本集合用Smaj表示,同樣,用Smin表示少數類。則Borderline算法的過程 如下:
[0027] (1)對Smin中的少數類樣本數據,采用K近鄰的方法找到它在整個數據集S中的K個 最近鄰樣本,并將這些樣本存入每個Smin樣本對應的集合KNNsmin中去。
[0028] (2)通過以下三個公式將Smin中的每個樣本歸類為邊界樣本、噪聲樣本和安全樣 本:
[0029] {(x,y)|(x,y) G KNNsmin A y=Maj} | >K/2 (1)
[0030] {(x,y) | (x,y) G KNNsmin A y=Maj} | =K (2)
[0031] {(x,y)|(x,y) G KNNsmin A y=Maj} | =0 (3)
[0032] 其中滿足公式(1)的少數類數據樣本點則為邊界樣本,此時將邊界少數類樣本插 入到少數類邊界樣本集SBmin中;滿足公式(2)的少數類數據樣本點則為噪聲樣本;滿足公式 (3)的少數類數據樣本點則為安全樣本。
[0033] 作為本發明的進一步改進,所述方法還包括在少數類邊界樣本空間的采樣率要大 于非邊界樣本的采樣率;對于多數類樣本空間中的邊界樣本則采用聚類,然后用聚類質心 代替當前多數類邊界樣本簇,移除簇內其他原始樣本。
[0034] 本發明的有益效果是:本發明不僅能夠產生少數類的聚類簇,然后再在這些樣本 簇內進行過采樣,而且還能夠充分的解決類內不平衡中的分布不均勻和數據碎片或者小析 取項的問題。本發明特別適用于存在類內不平衡樣本分類問題,及同類的識別少數類類別 不平衡樣本分類問題。本發明所提出的方法對數據集進行分類時的通用性,能有效處理不 同類型的數據集。
【具體實施方式】
[0035] 下面結合【具體實施方式】對本發明進一步說明。
[0036] 樣本邊界重疊問題也是造成不平衡樣本分類問題困難的原因之一,所以在本發明 中,著重考慮了邊界樣本對最終分類效果的影響,并采取相應措施消除這一影響。主要采用 的方法就是:在少數類邊界樣本空間的采樣率要大于非邊界樣本的采樣率;對于多數類樣 本空間中的邊界樣本則采用聚類,然后用聚類質心代替當前多數類邊界樣本簇,移除簇內 其他原始樣本。從這兩個方面處理后,則使得原始數據空間邊界樣本更加清晰,在很大程 度上消除了邊界樣本對不平衡樣本分類問題的影響。
[0037]針對上面提到的問題,本發明提出了基于改進DBSCAN的聚類算法,能有效的處理 類內不平衡問題中的數據分布位置或分布密度不均勻的情況。同時結合Borderline算法的 思想,考慮邊界樣本信息,然后采用PS0算法對聚類簇內邊界樣本和安全樣本的過采樣率進 行優化,通過對少數類邊界樣本通過SMOTE算法進行不同采樣率的過采樣。其次,對多數類 邊界樣本進行聚類質心替換的方法,分別進行不同的處理,雙重增加了邊界樣本的清晰度。 這樣處理完之后的數據樣本,不僅在類間和類內都趨于平衡,還增加了邊界樣本的清晰度, 從而能夠有效提升最終分類效果。
[0038]首先,主要對Border 1 ine算法進行描述,該算法的主要功能就是在數據樣本集合 中,判斷出哪些屬于邊界樣本,并將邊界樣本分為多數類邊界樣本和少數類邊界樣本。在該 算法中,事先指定待分類的不平衡數據集為S,其中的每一個樣本由特征向量和這個樣本所 屬的類標組成,特征向量表示為x,類標表示為y,即x= {xi,X2,…,xn},y= {Maj,Min}。所以 數據集可以表示為:
[0039] S={(xi,yi)(X2,y2),???,(xn,yn)}
[0040] S中的多數類樣本集合用Smaj表示,同樣,用Smin表示少數類。貝ijBorderl ine算法的 過程如下:
[0041] (1)對Smin中的少數類樣本數據,采用K近鄰的方法找到它在整個數據集S中的K個 最近鄰樣本,并將這些樣本存入每個Smin樣本對應的集合KNNsmin中去。
[0042] (2)通過以下三個公式將Smin中的每個樣本歸類為邊界樣本、噪聲樣本和安全樣 本:
[0043] {(x,y)|(x,y) G KNNsmin A y=Maj} | >K/2 (2)
[0044] {(x,y) | (x,y) G KNNsmin A y=Maj} | =K (3)
[0045] {(x,y)|(x,y) G KNNsmin A y=Maj} | =0 (4)
[0046] 其中滿足公式(2)的少數類數據樣本點則為邊界樣本,此時將邊界少數類樣本插 入到少數類邊界樣本集SBmin中;滿足公式(3)的少數類數據樣本點則為噪聲樣本;滿足公式 (4)的少數類數據樣本點則為安全樣本。
[0047] (3)通過(2)的方法,同樣可以得到多數類數據樣本根據Borderline算法進行歸 類,對于邊界樣本,同樣將這些樣本插入到一個多數類邊界樣本集合SBmaj中去,噪聲樣本 直接進行移除,安全樣本不進行任何的操作。
[0048] 通過以上三個步驟,可以分別得到少數類的邊界樣本集合空間和多數類的邊界樣 本集合空間,這樣在接下來的混合采樣過程中,可以著重對邊界樣本的處理,從而增加邊界 樣本的清晰度,使得分類效果有所提升。
[0049] 對不平衡數據樣本分類問題中,如果不平衡數據集中存在類內不平衡,采用傳統 的未經任何改進的聚類算法進行聚類時,往往無法聚類成想要的簇。在類內不平衡中,存在 著少數類中的分布不均勻,以及數據碎片或者小析取項的問題,所以需要對傳統的算法進 行適當的改進,采用特定的能針對類內不平衡進行聚類的聚類算法。
[0050] DBSCAN算法的目的主要是通過密度對樣本進行聚類,滿足單位半徑密度大小的樣 本被聚類,而那些不滿足這個條件的樣本點被當做噪聲點拋棄掉。與傳統的聚類算法不同 的是,DBSCAN算法可以發現聚類成各種滿足密度形狀的簇,與傳統的算法相比它有如下優 占.
[0051] (1)和K-means算法相比,DBSCAN不用事先人為指定要聚成的簇個數和初始質心; [0052] (2)DBSCAN聚成的簇形狀不會發生明顯的變化;
[0053] (3)可以根據實際情況,確定一些參數到達過濾噪聲的效果。
[0054]標準DBSCAN算法的具體聚類過程如下:根據預先設定的單位半徑和密度,在整個 數據集,找到滿足條件的這些點,稱之為核心點,接著對該核心點進行擴充。擴充的方法是 尋找從該核心點出發的所有和它密度相連的其他樣本點。遍歷該核心點的e鄰域內的所有 核心點(因為邊界點是無法擴充的),找到和這個核心點密度相連的其他少數類樣本點,并 判斷這個點是否也為核心點,繼續根據這個核心點進行擴充,直到無法找到密度相連的可 以擴充的核心點為止。接下來就是重新掃描沒有被聚類成簇的少數類樣本數據集,在剩余 數據集中尋找在不曾被聚類為任何一個簇的其他核心點,然后對該核心點采用上述方法進 行擴充直到整個數據集中沒有新的未被聚類成簇的核心點。聚類結束后,那些少數類樣本 集中未被聚類在任一簇中的樣本點就時噪聲點。
[0055]傳統的DBSCAN聚類算法能很好的解決很多其他聚類算法不能解決的問題,但是當 面對不平衡數據樣本分類中的類內不平衡的情況是,傳統的DBSCAN算法也有一定的弊端: [0056] (1)由于DBSCAN算法采用統一的e和Minpts參數,所以當面對類內不平衡中的分布 密度不均勻的時候,DBSCAN算法產生的聚類簇往往不是最理想的聚類結果。所以,對于類 內不平衡中的分布不均勻的情況,需要采用不同的e和Minpts參數來進行聚類,這樣便可根 據不同的分布密度生成相應的聚類簇。
[0057] (2)當存在類內不平衡的數據碎片或者小析取項的情況下,標準DBSCAN算法不能 考慮到數據碎片或者小析取項的區域很小的問題,分類器很有可能會直接當做噪聲點進行 處理。
[0058] 針對以上存在的問題,采用基于改進的DBSCAN算法來處理這些問題,從而解決類 內不平衡的情況,其基本思想是:
[0059]首先,考慮類內不平衡少數類樣本分布密度不均勻的情況,能夠得到一組基于分 布密度的EPS值。在存在類內不平衡的數據集中,各個少數類數據樣本點與其他少數類樣本 點的距離遠近是不同的,也就是分布密度不同。分布密度的計算是通過計算距離其中任一 少數類樣本最近的K個少數類樣本點到這樣本點的距離來衡量的。具體方法如下:通過統計 任一少數類樣本點Xi最近的K個其他少數類樣本點,分別計算Xi到這K個少數類樣本的距離, 然后對這些距離取一個平均值。通過得到的距離平均值,可以得到少數類樣本點X:的分布 密度,所有的少數類樣本點都能計算出這樣一個衡量該點分布密度的平均距離公式。
[0060] 然后,將這些通過計算得到的每個少數類樣本點的平均距離組成一個距離向量數 組。將這些平均距離作為原始數據集,在這個數據集上通過進行距離上的聚類。在將這個距 離數組聚類成N個簇之后,計算每個簇中的所有距離加和取平均,將得到的這個平均值作為 這個簇的鄰域閾值,通過分別計算這N個簇的平均值,可以得到N個鄰域閾值EPSdiil, 2,…,N) 〇
[0061] 接下來,將這N個領域閾值進行排序,按照從小到大的順序,將這些排好序的閾值 保存在一個數組中,留做下一步的改進DBSCAN算法的EPS參數的依次的確定。
[0062]在接下來的聚類算法中,首先選擇閾值數組中最小的那一個,當作DBSCAN算法的 EPS值(MinPts可以人工指定,在訓練過程中保持不變),然后對所有少數類樣本進行聚類, 通過聚類可以得到滿足這個密度的多個少數類樣本聚類簇,其他不滿足條件的少數類樣本 則被歸為噪聲樣本。接著采用閾值數組中下一個閾值對標記為噪聲樣本點的少數類樣本繼 續進行DBSCAN聚類,同樣得到一些聚類簇和剩余的噪聲樣本點。
[0063]最后,重復以上的操作,采用閾值數組中從小到大的不同閾值對標記為噪聲樣本 點的少數類樣本進行DBSCAN聚類,當對所有少數類樣本的通過不同的EPS進行聚類過后, 則完成少數類樣本的所有聚類操作,那些最后都不被歸為在任何一個簇的數據即為噪聲數 據。
[0064]通過改進的DBSCAN算法,不僅能夠產生少數類的聚類簇,然后再在這些樣本簇內 進行過采樣,而且還能夠充分的解決類內不平衡中的分布不均勻和數據碎片或者小析取項 的問題。
[0065] 驗證本發明方法的性能的實驗中選擇AUC(Area under Receiver Operating Characteristics Curve)是一種可視化的分類器算法表現評價方法,用一個二維坐標系來 表示。其中,X軸是錯分少數類(陽性)的比率(FP_Rate),Y軸是正確分類的少數類(陽性)的 比率(TP_Rate),每個分類器算法對一組樣本數據進行分類后都會產生一個點Point(FP_ Rate,TP_Rate),調整分類器的閥值產生多個點,形成ROC曲線,AUC則是這條曲線覆蓋右下 角的面積。AUC值越大,則表示分類器算法的斷識別能力越強。
[0066] F-Measure最經常被應用到不平衡樣本分類的評價工作中,如下公式所示。F-Measure由查全率、查準率以及平衡因子復合得到,當Recall和Precision都取得一個較高 的數值時,F-Measure便會取得較為理想的結果。
(5)
[0068] 式中--調節查全率和查準率的平衡因子(通常0設為1)。
[0069] 測試環境Windows 7,python2 ? 7,IDE: spyder,CPU: Intel (R)Xeon(R)E5_2609, 鹽:16G〇
[0070]本發明實驗數據集采用了具有類內不平衡情況的八個數據集和兩個只存在類間 不平衡的數據集,這些數據集都是在UCI數據庫中獲得的。表1描述了所有實驗所用數據集 的具體屬性,其中No.列為數據集編號,DataSet為數據集名稱,#Attr為數據集包含的屬性 數量,%Min表示少數類樣本所占比例。本次實驗共有10組數據集,其中每組的不平衡比率 也不相同,并且樣本總量也不一樣。
[0071]表1實驗數據集描述
[0074] 為了驗證本發明的兩個改進層面之一的數據層面提出的改進算法DBS(DBSCAN_ 3!11〇^)算法的有效性,本發明選取傳統的數據層面的重采樣算法有1?05(1^11(1 〇111-OverSampling)、SM(SMOTE)作為對比實驗算法。
[0075] 表2 DBS算法實驗的AUC,F_Measure和全局準確率
[0077]表2為以上幾種過采樣算法在10組數據集上采用AdaBoost.Ml進行分類的一些指 標結果。表中N0.列序號代表4-2中的數據集序號,通過從AUC,F-Measure(F-Mea)和全局準 確率Acc三個指標上對比分析了各個算法的分類效果。
[0078]從表2中可以統計看出,DBS算法在本發明所用10個實驗數據集上,有其中7次取得 了最高的AUC值,最優次數是最多的;有其中6次取得了最高的F-Measure值,最優次數同樣 是最多的;同時有其中7次取得了最高的全局準確率Acc,最優次數同樣是最多的。從這些評 價指標,可以得出結論:DBS相對于現有的僅考慮類間不平衡的過采樣算法,考慮類內不平 衡情況的改進DBS過采樣算法能有效的解決類內不平衡情況對分類效果的影響,從多個指 標上都能有效提高不平衡樣本分類效果。
[0079] DBS算法不僅能很好的解決類內不平衡情況的影響,同時對于那些只存在類間不 平衡的數據集分類同樣也會有不錯的效果。通過表2中的數據集的分類效果可以看出,先前 改進算法在對只存在類間不平衡的數據集上進行訓練時往往會與比較高的分類準確率,這 是因為類間不平衡是一種比較相對容易處理,容易做到樣本空間平衡化的一種情況。通過 數據集yeast5和page-blocksO兩個只存在類間不平衡數據集進行分類,DBS、R0S以及SM分 類算法具有同樣好的分類效果,這說明 DBS不僅是著重考慮并處理類內不平衡的一種有效 算法,對只存在類間不平衡的數據集也能達到很好的分類效果。在取得較好分類效果的同 時,驗證了本發明所提出的改進算法對數據集進行分類時的通用性,能有效處理不同類型 的數據集。
[0080] 以上內容是結合具體的優選實施方式對本發明所作的進一步詳細說明,不能認定 本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的普通技術人員來說,在 不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發明的 保護范圍。
【主權項】
1. 一種基于改進DBSCAN-SMOTE算法的分類方法,其特征在于:所述方法針對數據樣本 空間的處理中類內不平衡的情況,首先在數據樣本集合中,判斷出哪些屬于邊界樣本,并將 邊界樣本分為多數類邊界樣本和少數類邊界樣本,對于多數類樣本空間中的邊界樣本采用 聚類;然后采用PSO算法對聚類簇內邊界樣本和安全樣本的過采樣率進行優化,通過對少數 類邊界樣本通過SMOTE算法進行不同采樣率的過采樣;其中,所述聚類基于改進DBSCAN算 法,所述改進的DBSCAN算法包括:首先,考慮類內不平衡少數類樣本分布密度不均勻的情 況,能夠得到一組基于分布密度的EPS值;然后,將這些通過計算得到的每個少數類樣本點 的平均距離組成一個距離向量數組,將這些平均距離作為原始數據集,在這個數據集上通 過進行距離上的聚類;在將這個距離數組聚類成N個簇之后,計算每個簇中的所有距離加和 取平均,將得到的這個平均值作為這個簇的鄰域閾值,通過分別計算這N個簇的平均值,可 以得到N個鄰域閾值EPS i,i = 1,2,…,N;接下來,將這N個領域閾值進行從小到大的順序排 序并保存在一個數組中;在接下來的聚類算法中,首先選擇閾值數組中最小的那一個,當做 DBSCAN算法的EPS值,然后對所有少數類樣本進行聚類,接著采用閾值數組中下一個閾值對 標記為噪聲樣本點的少數類樣本繼續進行DBSCAN聚類,同樣得到一些聚類簇和剩余的噪聲 樣本點。最后,重復以上的操作,當對所有少數類樣本的通過不同的EPS進行聚類過后,則完 成少數類樣本的所有聚類操作,那些最后都不被歸為在任何一個簇的數據即為噪聲數據。2. 根據權利要求1所述的方法,其特征在于:所述在數據樣本集合中,判斷出哪些屬于 邊界樣本,并將邊界樣本分為多數類邊界樣本和少數類邊界樣本采用Border I ine算法;事 先指定待分類的不平衡數據集為S= {(xi,yi),(X2,y2),···,(xn,yn)},其中的每一個樣本由 特征向量和這個樣本所屬的類標組成,特征向量表示為X,類標表示為y,即X= {XI,X2,···, xn},y={Maj,Min},S中的多數類樣本集合用Smaj表示,同樣,用Smin表示少數類。則 Borderline算法的過程如下: (1) 對Smin中的少數類樣本數據,采用K近鄰的方法找到它在整個數據集S中的K個最近 鄰樣本,并將這些樣本存入每個Smin樣本對應的集合KNNsmin中去。 (2) 通過以下三個公式將Smin中的每個樣本歸類為邊界樣本、噪聲樣本和安全樣本: {(x,y) I (x,y) GKNNsminAy=MajI | >K/2 (I) {(x,y) I (x,y) GKNNsminAy=MajI | =K (2) {(x,y) I (x,y) GKNNsminAy=MajI | =0 (3) 其中滿足公式(I)的少數類數據樣本點則為邊界樣本,此時將邊界少數類樣本插入到 少數類邊界樣本集SBmin中;滿足公式(2)的少數類數據樣本點則為噪聲樣本;滿足公式(3) 的少數類數據樣本點則為安全樣本。3. 根據權利要求1所述的方法,其特征在于:所述方法還包括在少數類邊界樣本空間的 采樣率要大于非邊界樣本的采樣率;對于多數類樣本空間中的邊界樣本則采用聚類,然后 用聚類質心代替當前多數類邊界樣本簇,移除簇內其他原始樣本。4. 根據權利要求1所述的方法,其特征在于:其特征在于:PSO算法主要是對連續值進行 優化,而這里的特征向量為離散型的,為了使所述PSO算法能夠處理離散型的特征向量,使 用sigmoid函數,對生成的連續值速度轉換為離散的0、1值。5. 根據權利要求1所述的方法,其特征在于:所述方法通過PSO算法確定了各個聚類簇 的邊界樣本采樣率和安全樣本采樣率以及對分類效果有提升的特征之后,通過特征提取選 取出最具有代表性的數據特征和數據樣本集,然后通過優化得到的過采樣率對少數類樣本 進行過采樣,最終得到想要的平衡數據集樣本。
【文檔編號】G06K9/62GK105930856SQ201610169101
【公開日】2016年9月7日
【申請日】2016年3月23日
【發明人】張春慨
【申請人】深圳市頤通科技有限公司