基于pso算法的不平衡樣本分類方法
【專利摘要】本發明提供了一種基于PSO算法的不平衡樣本分類方法,通過采用粒子群優化PSO算法,對過采樣過程中邊界樣本和安全樣本的采樣率進行優化得到最優過采樣倍率,同時對特征進行優化,從而選擇出能夠達到簡化運算和提升分類結果的最具代表性的特征組合。本發明采用AUC/F?Mea作為算法的適應度函數,從而提升最終分類器的效果。
【專利說明】
基于PSO算法的不平衡樣本分類方法
技術領域
[0001] 本發明屬于數據挖掘中的分類技術優化領域,尤其涉及一種適用不平衡樣本的分 類方法。
【背景技術】
[0002] 在不平衡樣本分類問題中,不平衡數據就是在整個數據集樣本空間中其中一類的 樣本和其余一類或幾類樣本在數量上存在巨大的差距。在這種情況下往往少數類需要我們 投入更多的關注。例如在醫療診斷中的應用中,癌癥或者心臟病的數據樣本空間就是不平 衡樣本,在這類樣本中,我們關注的對象往往是患病樣本,通過準確分類出這些樣本的屬 性,從而可以準確診斷病人的病情,并給與這些病人及時的針對性治療。
[0003] 傳統分類器在處理不平衡樣本分類問題中,為了追求較高的全局分類準確率,往 往直接將少數類樣本分類為多數類樣本,這種做法會將潛在的病人信息分類為健康信息, 因此患者可能錯過治療的最佳時期,造成患者不可挽回的損失。
[0004] 在不平衡樣本分類問題中,有很多的參數對最終的分類效果都會有一定的影響, 通過確定不同的參數組合,可以得到差異比較大的結果。而這些參數的確定一般都是通過 人為指定的,沒有一個驗證這些參數有效性的指標,只能通過最終的分類效果來判斷這些 參數,而且人為指定的參數通過多次的調整,往往得到的也僅僅是一個局部最優解,很少的 情況下會得到全局最優解。
[0005] 現有技術中,對于不平衡樣本分類問題,有基于數據重采樣的處理方法和基于算 法改進的處理方法。
[0006] 基于數據重采樣的處理方法:樣本的不平衡特性主要表現在兩類樣本數量上的不 平衡,從而造成傳統分類器分類困難,因此首先想到的便是在數據層面,通過改變原始數據 樣本的數量不均勻的問題,從而使得樣本基本達到平衡來解決這種分類困難。在數據層面 上,國內外學者主要提出了過采樣、欠采樣和混合采樣的思想。
[0007] 過采樣,顧名思義,就是通過一定的方法加入一些少數類樣本,從而使原始不平衡 樣本數據集基本達到平衡。但如果過采樣的方法不對,則可能造成過擬合現象。
[0008] SMOTE算法是目前應用比較流行的過采樣技術。它主要是通過在少數類樣本中插 入一些仿造少數類樣本,而不是簡單的進行附近過采樣。這項技術主要是在從一個已經在 手寫體識別的項目中提出來的算法中獲得的靈感。SMOTE進行過采樣的主要過程如下:首先 根據每個少數類樣本,選取出離這個少數類樣本點最近的K個其他少數類樣本點,然后在這 個點和其他K個少數類樣本點之間采用線性插值的方法,并采用一定的隨機插值因子和過 采樣率來進行的產生一部分少數類仿造樣本點。SMOTE插值的公式下式所示:
[0009] pi = x+rand(0,l)*(yi-x )i = l,2,...N (1)
[0010] SMOTE算法主要是在相似的少數類樣本(也就是相鄰近)之間進行插值,這樣生成 的仿造樣本具有一定代表性。因此,過擬合問題在SMOTE算法中被避免,而且少數類的決策 空間也會擴展的更好;同樣,它也可以應用到多數類樣本空間中,可以降低多數類的決策空 間。
[0011] 樓曉俊等人在2013年提出了一種基于聚類的并且考慮邊界樣本信息的過采樣方 法,該方法中通過單邊選擇法確定少數類和多數類的邊界樣本信息,通過對所有少數類樣 本進行考慮邊界的聚類,在簇內進行適當的過采樣,這樣產生的仿造少數類樣本與原始樣 本有更多的相似性,更能代表父類樣本空間分布。同時通過對邊界樣本進行針對性的過采 樣,增加邊界樣本的清晰度,從而突出少數類邊界樣本的重要性。
[0012] 欠采樣方法的思想則是通過某些方法在多數類樣本中按照某種規則移除一些特 定的樣本,使得樣本數據空間能夠基本達到平衡。然而欠采樣的方法也有一些弊端,容易造 成一些具有代表性樣本的重要信息丟失。
[0013] 混合采樣就是將過采樣和欠采樣算法融合在一起的算法,在對原始數據集進行重 采樣的過程中,使用混合采樣對數據集進行平衡性操作。大量的研究表明,混合采樣的方法 比單一的重采樣方法具有更大的優越性,先進行過采樣在進行欠采樣一般能取得更好的效 果。
[0014] 基于算法改進的處理方法:處理不平衡樣本分類問題中,數據層面的重采樣方法 能夠在一定程度上消除不平衡的影響,提升少數類的分類效果,但數據層面的方法本質是 改變了數據集的分布,這種改變可能對分類效果的真實性產生一定的影響。在算法層面上 進行的改進可以消除在數據層面上的弊端,也會得到一定程度少數類分類效果的提升。經 過這幾年國內外學者的研究,在算法層面上的研究主要涉及到代價敏感學習(Cost-sensitive Learning) 、集成學習 (Ensemble Learning) 以及單類傳統學習方法 (One-Class Learing)〇
[00?5]集成學習方法是不平衡樣本分類中應用較多的一種算法框架,Boosting算法屬于 集成學習方法中比較經典的一種,而AdaBoost是Boosting類算法中經常被用到的一種算 法。AdaBoost通過迭代訓練不同的弱分類器,通過組合方式將這些弱分類器集成為強分類 器,它根據每次迭代分類器的分類情況,更新樣本下一次訓練的權值。根據AdaBoost算法的 訓練過程我們可以得到其主要有高精度分類效果、子分類器可以根據需要自調、分類結果 容易理解和不會產生overfitting現象等優點。
[0016] 在數據層面對不平衡樣本空間進行平衡化的操作中,有一些參數是需要人為指定 的。比如在Borderline算法中,需要的參數有K,也就是K近鄰的方法找到它在整個數據集S 中的K個最近鄰樣本,并將這些樣本存入每個Smin樣本對應的集合KNNsmin中去。同時在通 過SMOTE算法進行過采樣的時候,有一個過采樣倍率的問題(OrRate)的參數也是通過人為 指定的,不同的過采樣倍率對最終的分類效果的影響是很大的。同時在進行混合采樣的時 候,同時也存在著多數類樣本點的欠采樣倍率的參數問題(UsRate)。
[0017] 在算法層面,同時也存在著一些參數需要去進行人為的指定,比如在采用 Boosting算法的AdaBoost算法中,基分類器最終都會有一個投票權重的確定,這個投票權 重系數的確定也是通過這個基分類器的分類錯誤率確定的。而這些基分類器的權重系數往 往互相是有影響或者關系的,單純的根據分類錯誤確定它們的系數得到的最終分類效果往 往不是最優的。
【發明內容】
[0018] 為了解決現有技術中問題,本發明提供了一種基于PS0算法的不平衡樣本分類方 法,采用PS0(Particle Swarm Optimization)算法對參數進行自適應的優化,從而能夠得 到一系列最優的系數組合,使得最終的分類效果得到很大的提升。
[0019] 本發明通過如下技術方案實現:
[0020] -種基于PS0算法的不平衡樣本分類方法,所述方法中PS0算法中粒子的表示為: OsRatei、UsRate和Fecj,其中OsRatei為第i個聚類簇的過采樣率,i = 1,2,…,N,N為通過 DBSCAN算法所形成的聚類簇數目,Fee j為樣本的第j個特征,j = 1,2,…,M;所述方法包括: (1)將數據集劃分為訓練集Train和測試集Test; (2)首先在搜索空間生成初始解Xi,i = 1, 2,…,SN,其中SN為粒子群大小;(3)令全局最優解gbest = 0; (4)執行步驟(5)、(6)最大循環 次數MCN次;(5)令j從1到SN,獲得當前的解;按照得到的所述解,特征重新選擇后生成新 的數據集,通過k折交叉驗證以及分類器學習,得到相應的AUC或者F-Measure; (5)根據PS0 算法中的速度計算公式和位置更新公式得到每個粒子的pbest,同時更新全局最優解 gbest; (7)通過得到的過采樣率、欠采樣率和特征組合,同時進行混合采樣,構建分類器進 行訓練數據集,然后用分類器進行訓練,得到最終的AUC。
[0021] 本發明的有益效果是:本發明通過采用粒子群優化算法,對過采樣過程中邊界樣 本和安全樣本的采樣率進行優化得到最優過采樣倍率,同時對特征進行優化,從而選擇出 能夠達到簡化運算和提升分類結果的最具代表性的特征組合,采用AUC/F-Mea作為算法的 適應度函數,從而提升最終分類器的效果。
【附圖說明】
[0022]圖1是PS0算法偽代碼;
[0023] 圖2是PS0算法中粒子的表示形式示意圖;
[0024] 圖3是本發明的PS0算法對過采樣率優化偽代碼。
【具體實施方式】
[0025]下面結合【附圖說明】及【具體實施方式】對本發明進一步說明。
[0026]粒子群優化(Particle Swarm Optimization,PS0)算法是由Kennedy和Eberhart 博士于1995年提出,它一種進化算法,產生的靈感是來源于仿自然界中的昆蟲、獸群和鳥群 等的群體行為,這些自然界中的群體生物會按照一種它們自己能夠理解的方式進行尋找食 物,配偶以及其他一些事情,群體中的每一個成員都會通過學習自己的經驗和其他群體成 員的經驗來改變個體或者群體的行為模式,最終完成群體的全局搜索。從現實中的例子我 們可以理解PS0算法的具體過程是怎樣的:假設有一群鳥在某一特定區域漫無目的搜索食 物的位置,這些鳥對事物的具體位置一無所知,也不知道往哪個方向飛才能飛到食物附近 的位置,這些鳥該怎樣才能以最優的搜索路線找到這個食物呢?正確的做法就是通過得到 距離食物較近的其他粒子的信息,然后根據這些信息往這個離食物較近的鳥所在區域移動 并進行搜索。
[0027]在計算機科學中,PS0算法是一種計算方法,它主要通過迭代優化問題和一個特定 的適應度函數來試圖得到最佳候選解決方案。PS0算法中的"粒子"代表整個群體搜索空間 中的每一個個體,上面我們舉的現實生活中鳥群尋找食物的例子中,PS0算法優化的具體過 程如下:初始化鳥的位置和飛行速度,這個速度包含粒子在下一步搜索過程所要運行的軌 跡,然后搜索當前區域的最優解。PSO算法每次的更新中,有兩個重要的值需要保留,其中一 個是群體中每個粒子的個體最優解,記為pbest;還有一個解為全局最優解,代表粒子群整 個搜索空間中最優解,記為gbest。粒子的速度和位置時刻根據這兩個值進行更新,每一次 的迭代都是根據以下兩個公式進行更新的:
[0028] v[11 = ινχ \\ c) X ?\ χ {pbest - x';) -f c-y χ r, x (gbesf - x') (2)
[0029] +1/^ G)
[0030] 其中:1 = {1,2,"_,5?,其它參數說明如下表1所示:
[0031] 表1 PSO算法參數說明
[0033] 將粒子群優化算法應用到一些具體應用的參數優化或者權重系數的優化問題上, 一般都能夠取得全局最優解,從而提高最終的實驗效果。PS0算法程序的偽代碼如附圖1所 不。
[0034] 通過采用粒子群優化算法,對過采樣過程中邊界樣本和安全樣本的采樣率進行優 化得到最優過采樣倍率,同時對特征進行優化,從而選擇出能夠達到簡化運算和提升分類 結果的最具代表性的特征組合,采用AUC/F-Mea作為算法的適應度函數,從而提升最終分類 器的效果。粒子群優化算法中粒子的表示如附圖2所示。其中,OsRate代表過采樣率, OsRatei為第i個聚類簇的過采樣率(i = 1,2,…,N),N為通過改進DBSCAN算法所形成的聚類 簇數目;UsRate代表多數類邊界樣本的欠采樣率;Fee代表特征,Feci為樣本第i個特征(i = 1,2,…,Μ),這里的特征向量是二進制形式表示的,1代表該位置上的特征是對分類效果是 有幫助的,需要保留,若為0,則代表該位置特征對分類結果的提升沒有任何的幫助,可以去 除這個特征簡化訓練過程。
[0035] AUC(Area under Receiver Operating Characteristics Curve)是一種可視化 的分類器算法表現評價方法,用一個二維坐標系來表示。其中,X軸是錯分少數類(陽性)的 比率(FP_Rate),Y軸是正確分類的少數類(陽性)的比率(TP_Rate),每個分類器算法對一組 樣本數據進行分類后都會產生一個點P〇int(FP_Rat e,TP_Rate),調整分類器的閥值產生多 個點,形成R0C曲線,AUC則是這條曲線覆蓋右下角的面積。AUC值越大,則表示分類器算法的 識別能力越強。
[0036] F-Measure最經常被應用到不平衡樣本分類的評價工作中,如下公式所示。F- Measure由查全率、查準率以及平衡因子復合得到,當Recall和Precision都取得一個較高 的數值時,F-Measure便會取得較為理想的結果。
[0038] 式中β--調節查全率和查準率的平衡因子(通常β設為1)。
[0039]標準DBSCAN算法的具體聚類過程如下:根據預先設定的單位半徑和密度,在整個 數據集,找到滿足條件的這些點,稱之為核心點,接著對該核心點進行擴充。擴充的方法是 尋找從該核心點出發的所有和它密度相連的其他樣本點。遍歷該核心點的ε鄰域內的所有 核心點(因為邊界點是無法擴充的),找到和這個核心點密度相連的其他少數類樣本點,并 判斷這個點是否也為核心點,繼續根據這個核心點進行擴充,直到無法找到密度相連的可 以擴充的核心點為止。接下來就是重新掃描沒有被聚類成簇的少數類樣本數據集,在剩余 數據集中尋找在不曾被聚類為任何一個簇的的其他核心點,然后對該核心點采用上述方法 進行擴充直到整個數據集中沒有新的未被聚類成簇的核心點。聚類結束后,那些少數類樣 本集中未被聚類在任一簇中的樣本點就時噪聲點。
[0040] 基于改進的DBSCAN算法能夠解決類內不平衡的情況,其基本思想是:
[0041] 首先,考慮類內不平衡少數類樣本分布密度不均勻的情況,能夠得到一組基于分 布密度的EPS值。在存在類內不平衡的數據集中,各個少數類數據樣本點與其他少數類樣本 點的距離遠近是不同的,也就是分布密度不同。分布密度的計算是通過計算距離其中任一 少數類樣本最近的K個少數類樣本點到這樣本點的距離來衡量的。具體方法如下:通過統計 任一少數類樣本點Xi最近的K個其他少數類樣本點,分別計算Xi到這K個少數類樣本的距離, 然后對這些距離取一個平均值。通過得到的距離平均值,可以得到少數類樣本點Xi的分布 密度,所有的少數類樣本點都能計算出這樣一個衡量該點分布密度的平均距離公式。
[0042] 然后,將這些通過計算得到的每個少數類樣本點的平均距離組成一個距離向量數 組。將這些平均距離作為原始數據集,在這個數據集上通過進行距離上的聚類。在將這個距 離數組聚類成N個簇之后,計算每個簇中的所有距離加和取平均,將得到的這個平均值作為 這個簇的鄰域閾值,通過分別計算這N個簇的平均值,可以得到N個鄰域閾值EPSdiil, 2,…,N) 〇
[0043] 接下來,將這N個領域閾值進行排序,按照從小到大的順序,將這些排好序的閾值 保存在一個數組中,留做下一步的改進DBSCAN算法的EPS參數的依次的確定。
[0044] 在接下來的聚類算法中,首先選擇閾值數組中最小的那一個,當做DBSCAN算法的 EPS值(MinPts可以人工指定,在訓練過程中保持不變),然后對所有少數類樣本進行聚類, 通過聚類可以得到滿足這個密度的多個少數類樣本聚類簇,其他不滿足條件的少數類樣本 則被歸為噪聲樣本。接著采用閾值數組中下一個閾值對標記為噪聲樣本點的少數類樣本繼 續進行DBSCAN聚類,同樣得到一些聚類簇和剩余的噪聲樣本點。
[0045] 最后,重復以上的操作,采用閾值數組中從小到大的不同閾值對標記為噪聲樣本 點的少數類樣本進行DBSCAN聚類,當對所有少數類樣本的通過不同的EPS進行聚類過后,則 完成少數類樣本的所有聚類操作,那些最后都不被歸為在任何一個簇的數據即為噪聲數 據。
[0046] 通過改進的DBSCAN算法,不僅能夠產生少數類的聚類簇,然后再在這些樣本簇內 進行過采樣,而且還能夠充分的解決類內不平衡中的分布不均勻和數據碎片或者小析取項 的問題。
[0047] PS0算法在對不平衡樣本分類問題中的過采樣率優化問題和特征選擇優化的偽代 碼如附圖3所示。其中,MCN為最大循環次數,NumFo Ids為K折交叉驗證中的參數K。
[0048] 粒子群優化算法主要是對連續值進行優化,而這里的特征向量為離散型的,為了 使PS0同樣可以處理特征向量,使用sigmoid函數,對生成的連續值速度V采用下面的公式 (5)和(6 ),轉換為離散的0、1值,從而適用于特征優化集合的選擇上來。
[0051] 通過PS0算法確定了各個聚類簇的邊界樣本采樣率和安全樣本采樣率以及對分類 效果有提升的特征之后,便可以通過特征提取選取出最具有代表性的數據特征和數據樣本 集,然后通過優化得到的過采樣率對少數類樣本進行過采樣,最終得到想要的平衡數據集 樣本。
[0052] AdaBoost算法的基分類器可以由任意的單一分類器組成,現在通常用的就是決策 樹、神經網絡、SVM等傳統機器學習算法作為基分類器。大部分的集成學習方法都是使用同 樣的單一基分類器學習算法去構造一個同構集成學習算法框架,或者采用不同的基分類器 來構造一個異構集成學習算法框架。
[0053] AdaBoost的思想是根據當前迭代分類器分類結果,調節并歸一化樣本的權值,從 而保證下一次的迭代計算中,弱分類器可以將更多的精力集中在上一個分類器誤分類的樣 本上,所以樣本權值的更新策略也是影響分類效果的因素之一;同時基分類器的權重系數 也是影響AdaBoost算法最終分類的一個因素,所以如何設置基分類器的權重系數也是本發 明的主要研究之一。
[0054]對于AdaBoost算法中的基分類器的投票權重系數的確定也是根據上面的思想,將 多個基分類器系數當做PS0優化算法中的每一個"粒子",同時特定的設置,最終得到 AdaBoost算法中這些基分類器投票權重系數的最優組合。
[0055]以上內容是結合具體的優選實施方式對本發明所作的進一步詳細說明,不能認定 本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的普通技術人員來說,在 不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發明的 保護范圍。
【主權項】
1. 一種基于PSO算法的不平衡樣本分類方法,其特征在于,所述方法中PSO算法中粒子 的表示為:OsRatei、UsRate和Fee j,其中OsRatei為第i個聚類簇的過采樣率,i = 1,2,…,N, N為通過DBSCAN算法所形成的聚類簇數目,Fee j為樣本的第j個特征,j = 1,2,…,M;所述方 法包括:(1)將數據集劃分為訓練集Train和測試集Test; (2)首先在搜索空間生成初始解 11,1 = 1,2,~,51其中51'1為粒子群大小;(3)令全局最優解8匕68七=0;(4)執行步驟(5)、(6) 最大循環次數MCN次;(5)令j從1到SN,獲得當前的解;按照得到的所述解,特征重新選擇 后生成新的數據集,通過k折交叉驗證以及分類器學習,得到相應的AUC或者F-Measure; (5) 根據PSO算法中的速度計算公式和位置更新公式得到每個粒子的pbest,同時更新全局最優 解gbest; (7)通過得到的過采樣率、欠采樣率和特征組合,同時進行混合采樣,構建分類器 進行訓練數據集,然后用分類器進行訓練,得到最終的AUC。2. 根據權利要求1所述的不平衡樣本分類方法,其特征在于:所述DBSCAN算法為改進的 DBSCAN算法,該算法能夠解決類內不平衡的情況,其基本思想是:首先,考慮類內不平衡少 數類樣本分布密度不均勻的情況,能夠得到一組基于分布密度的EPS值;然后,將這些通過 計算得到的每個少數類樣本點的平均距離組成一個距離向量數組,將這些平均距離作為原 始數據集,在這個數據集上通過進行距離上的聚類;在將這個距離數組聚類成N個簇之后, 計算每個簇中的所有距離加和取平均,將得到的這個平均值作為這個簇的鄰域閾值,通過 分別計算這N個簇的平均值,可以得到N個鄰域閾值EPSi,i = 1,2,…,N;接下來,將這N個領 域閾值進行從小到大的順序排序并保存在一個數組中;在接下來的聚類算法中,首先選擇 閾值數組中最小的那一個,當做DBSCAN算法的EPS值,然后對所有少數類樣本進行聚類,接 著采用閾值數組中下一個閾值對標記為噪聲樣本點的少數類樣本繼續進行DBSCAN聚類,同 樣得到一些聚類簇和剩余的噪聲樣本點。最后,重復以上的操作,當對所有少數類樣本的通 過不同的EPS進行聚類過后,則完成少數類樣本的所有聚類操作,那些最后都不被歸為在任 何一個簇的數據即為噪聲數據。3. 根據權利要求1所述的不平衡樣本分類方法,其特征在于:其特征在于:PS0算法主要 是對連續值進行優化,而這里的特征向量為離散型的,為了使所述PS0算法能夠處理離散型 的特征向量,使用s i gmo i d函數,對生成的連續值速度轉換為離散的0、1值。4. 根據權利要求1所述的不平衡樣本分類方法,其特征在于:所述方法通過PS0算法確 定了各個聚類簇的邊界樣本采樣率和安全樣本采樣率以及對分類效果有提升的特征之后, 通過特征提取選取出最具有代表性的數據特征和數據樣本集,然后通過優化得到的過采樣 率對少數類樣本進行過采樣,最終得到想要的平衡數據集樣本。
【文檔編號】G06N3/00GK105868775SQ201610172812
【公開日】2016年8月17日
【申請日】2016年3月23日
【發明人】張春慨
【申請人】深圳市頤通科技有限公司