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