高維不平衡數據的特征(屬性)較多,類標號中的類別分布不均勻的數據。
高維數據分類難本質問題:
1.密度估計難問題;
2.維數災難:特征數增加意味着分類所需的樣本數量的增加;
3.Hughes問題:給出了一個廣義上的數據測量復雜度,訓練樣本數量和分類精度三者間的關系即對有限樣本而言,存在一個最優的數據復雜度,可使分類精度達到最優。若數據特征數很多,量過精度過高,都會導致分類精度下降。
分類中的數據不平衡有兩種:類間不平衡和類內不平衡,本文研究的是類間不平衡。
數據不平衡的分類困難的本質原因:
1.不恰當的評估標准:傳統的分類算法通常在假設類別平衡的前提下,采用分類准確率作為評價標准,以平均准確率最大化為目標當類別不平衡時,為達到精度最大化,往往會犧牲少數類的性能;
2.數據稀疏:數據稀缺分為兩種:絕對稀缺和相對稀缺絕對稀缺是指樣本數量絕對過少,導致該類信息無法在訓練數據中充分表達,而相對稀缺是指少數類本身數量並不過少,只是相對大類而言,占有的比例相對過少;
3.數據碎片:采用分治類的算法,如決策樹算法,將原始問題划分為多個子問題來處理對於少數類而言,本身的數據量就不充分,划分后的子空間包含的數據信息就更少,使得一些跨空間的數據規律不能被挖掘出來,形成數據碎片;
4.不恰當的歸納偏差:不恰當的歸納算法往往不利於少數類的分類學習;
5.噪聲。在噪聲過濾的方法中,有些是將少數類作為噪聲,刪除后則少數類的數量將更稀疏。另外,由於少數類和噪聲難以區分,往往把噪聲數據包含在訓練過程中,導致一些真正的少數類無法得到好的訓練。
高維數據分類有兩種解決思路:
(1)在預處理階段降維,減少特征數量;
(2)設計適用於高維數據分類的新算法。
分類前通過降維可一定程度解決高維數據引起的維數災難常用的降維方法有兩類:特征變換狀語從句:特征選擇。
1)特征變換:將原有特征空間進行某種形式的變換,重新產生一個低維且各維間更為獨立的特征空間,包含線性變換和非線性變換兩種。
2)特征選擇:共從原始特征空間中選擇一部分重要屬性,組成新的特征空間,通過特征選擇,刪除一些和任務無關或者冗余的特征,簡化的數據集常常會得到更精確地模型,也更容易理解。
根據特征選擇中子集的選擇的方式不同,特征選擇算法被划分為三類:
1)過濾式(過濾器):把特征選擇作為分類的一個預處理步驟,僅從特征本身出發,根據特征間的相關度選擇子集,不考慮選擇特征后的應用,選擇過程獨立於分類算法;
2)封裝式(包裝器):把分類算法作為選擇的一個部分,研究發現,特征的最優子集依賴於分類算法的特定偏差,因此特征選擇應考慮分類器的特性;
3)嵌入式(嵌入式):將特征選擇過程與學習器訓練過程融為一體,兩者在同一優化過程中完成,即在學習器的訓練過程中自動的進行了特征選擇。
一般而言,封裝式的方法比單個過濾方法具有更高的准確率,但是由於需要在每個子集上進行評估,更為耗時。
降維方法可以大量減少特征數量,使普通算法能夠分類高維數據,但降維算法所獲得的結果是單個特征子集,這將損失其他特征所帶來的信息,特征子集選取的好壞對於算法的性能將有較大的影響。為解決這一問題,一些適用於高維數據分類的算法相繼提出,SVM是統計學習理論基礎上發展起來的分類算法,適用於解決小樣本和高維數據分類,但SVM存在兩個問題:(1)對大型數據集,計算量大,速度慢;(2)面對高維數據集,分類結果難以解釋而基於規則的分類方法可以解決的SVM 。存在的問題,其將關聯規則挖掘與分類結合,先挖掘特征屬性和類屬性之間的關聯規則,利用這些規則進行分類但其面臨:規則表示,規則剪枝以及規則選擇問題。
不平衡數據分類方法可以划分為三類:
1)數據層:在訓練前采用重取采樣技術重構數據集,降低不平衡度,包括過采樣狀語從句:欠采樣。
2)算法層:針對不平衡數據特點構造新算法或改造現有算法,如單類學習狀語從句:代價敏感學習。
3)混合方法:將兩者結合起來,如集成學習方法。
集成學習方法來源於機器學習的研究。機器學習關注的一個基本問題就是算法的泛化能力(新數據上的處理能力),提高泛化能力是機器學習永遠的追求。在面臨不平衡數據時,由於基分類器仍然是由假設平衡的分類算法所產生,集成學習並不能直接應用於不平衡數據集,但是集成學習提供了一個統一的框架,即可以將數據層和算法層的方法結合起來, 。更好的處理不平衡數據分類問題目前用集成學習方法分類高維數據有以下幾類方法:
1)先降維,再集成學習。是一種最簡單的思路,利用降維技術降低數據數量,再采用集成學習方法提高准確率的本質特征,提高分類的准確率。
2)先對集成構建的個體子集降維,最后集成投票。是對第一種方法的改進,由於子集的划分保證了多樣性,不同子集上的降維結果將有所區別,在特征減少的同時,可以利用多個子集彌補由於降維效果不佳所帶來的損失。
3)基於特征的集成學習。是一種融合降維和集成的方法。集成學習的有效前提基礎是基分類器具有多樣性和准確性.Boosting和裝袋都是基於數據子集的划分。而基於特征的集成學習的思想在於基分類器的構成是在特征子集上,而非整個特征空間。
根據最終特征子集產生的不同方式,基於特征的集成學習方法可以分為兩類:
1)基於隨機的方式,以隨機的方式產生特征子空間,如隨機子空間算法,隨機森林算法等;
2)基於選擇的方式,采用一定原則從特征子空間中選擇部分特征子空間集成。通常此類方法都與搜索方法相關,基於一定的度量原則或目標,利用搜索算法,從特征子空間中搜索符合要求的特征子空間集合,再構造集成分類器。
分析用於高維數據分類的兩類集成學習算法可以發現,基於隨機的方式的方法主要面臨隨機子空間中屬性數的選擇,而在隨機森林中除此之外還需要確定樹的數量。這兩個參數的選擇對於算法有一定的影響。基於選擇的方式的方法面臨兩個問題:特征選擇方法和搜索方法,即如何選擇合適的特征子集,使得構造的集成學習方法算法具有多樣性和准確性;選擇何種搜索方法使得在有限時間和空間中獲得最優特征子集。
基於特征的集成學習在特征子集上構造基分類器的方式降低特征維度,利用集成學習方式提高算法泛化能力,具有適合解決高維數據分類問題的特性。但集成學習在解決不平衡數據分類時,其本身並不具有獨特性,集成學習的基分類器的產生仍然面臨着傳統分類算法在面對不平衡數據時所面臨的問題。之所以將其用於不平衡數據分類,在於其提供了一個統一的算法框架,可以將常用的不平衡處理方法,如取樣技術和代價敏感方法融合在集成學習算法中,在解決不平衡分類問題時,充分利用集成學習提高算法的泛化能力的特性,可構造出一系列的算法。
分類不平衡的數據的集成方法:
1)代價敏感集成:目前解決不平衡分類問題的代價敏感集成方法主要采用不同的方法更新的Adaboost算法的權重,使得算法對於不同的類別區別對待;
2)基於Boosting的數據預處理和集成學習:此類方法將取樣技術嵌入到推進算法中,朝着小類的方向改變用於訓練下一個分類器的數據分布;
3)基於Bagging的數據預處理和集成學習:裝袋方法由於其簡單性及具有較好的泛化能力,常常與預處理方法組合處理不平衡數據分類問題,采用這種方法的關鍵在於處理不平衡獲得有效分類器的同時保證基分類器的多樣性;
4)混合方法的數據預處理和集成學習:混合方法不同於前面兩類方法之處是采用了雙重混合,也就是將裝袋和推進組合起來。
集成學習並非某一個算法,而是一系列的算法。通常集成學習分為兩個步驟:構建和組合。第一步產生多個用於集成的基分類器,第二步在此基礎上,組合基分類器的結果。根據產生基分類器的算法個數,集成學習可以分為同構集成學習和異構集成學習。同構集成學習采用單個分類器算法,有構建策略產生不同的基分類器;而異構集成學習(多分類器系統)則采用不同的分類算法,利用分類算法間的差異性獲得不同的基分類器。一般意義上的集成學習是指同構集成學習。
根據不同構造方法,集成學習算法可分為以下四種:
1)基於數據樣本的(Boosting,Bagging);
2)基於特征的(Random Subspace);
3)基於輸出類別的(ECOC);
4)基於隨機性的(神經網絡,決策樹)。
根據組合形式,集成學習算法分為組合全部基分類器的算法,選擇性集成算法,而選擇性集成算法主要由以下四類:
1)基於聚類的方法,將聚類算法應用於各基分類器的預測結果。每個基分類器對驗證集中的各個實例軍有一個預測結果,由此可獲得一個T * N的矩陣,其中Ť為基分類器個數,N為驗證集實例個數。把驗證集矩陣作為聚類算法的輸入數據,即可獲得具有類似預測的基分類器聚類,根據聚類結果修剪基分類器集合,選擇出具有代表性的基分類器;
2)基於排序的方法,是一種直觀的方法,分為兩個步驟,先基於某種衡量標准對基分類器排序,再采取適當的停止准則選取一定數量的基分類器;
3)基於選擇的方法,根據是否采用統一模型對驗證集中的所有個體進行預測,分為靜態選擇法和動態選擇法,排序算法實際上是選擇算法的一種。靜態選擇算法的特點是從已有基分類器中選擇部分構建集成分類器,並用於預測驗證集中的所有實例。動態選擇法則是針對驗證集的每個實例,動態選擇合適的部分基分類器預測,即每個實例可能選擇不同的基分類器組合;
4)基於優化的方法,其核心思想是對每個基分類器賦予一定的權重,采用優化算法獲得最優權重向量,根據預設的閾值選擇相應的基分類器。通常采用遺傳算法(GA)優化基分類器權重,所不同的是采用的遺傳算法編碼方式。
基於集成特征選擇的集成學習方法的關鍵是利用一定的度量獲得選擇的特征子空間集合。所以,此類算法的關鍵是特征子空間選擇度量和獲得方法的研究,而特征子空間選擇度量的一個關鍵因素就是基分類器多樣性的度量。
多樣性度量方法主要分為兩類:成對多樣性度量,非成對多樣性度量。
成對多樣性度量有以下5種:相關性度量,Q統計量,評判間一致性K,不一致度量,雙錯度量。
成對非多樣性度量主要由以下6種:熵度量,Kohavi-沃伯特方差,者間一致性度量,“困難”度量,泛化多樣性,偶然錯誤多樣性。
預處理高維不平衡數據
高維不平衡數據分類的解決思路有兩種:預處理后再分類和直接分類,一般預處理方法又包括降維方法和取樣方法。
降維方法
Filter特征選擇方法的評估直接依賴於數據集本身,通常認為相關性較大的特征或特征子集可獲得較高的分類准確率。常見的Filter特征選擇評估方法有信息增益,類間距離,關聯度和不一致度等。
Wrapper器特征選擇的核心思想是:與學習算法無關的過濾特征評價與后續的分類算法產生較大的偏差不同的學習算法偏好不同的特征子集,特征選擇后的特征子集最終將用於后續的學習算法,則該學習算法的性能就是最好的評估標准。選擇不同的分類算法以及特征空間搜索策略,則可產生各種Wrapper特征選擇算法,常見的搜索方式有最佳優先搜索,隨機搜索和啟發式搜索。
取樣方法
根據其取樣方向可以分為兩類,過采樣和欠采樣。根據取樣策略可分為隨機取樣和算法取樣。
過取樣:增加小類實例;
欠取樣:減少大類實例;
隨機取樣:以隨機的方式刪除或增加實例;
算法取樣:根據一定的原則取樣,如刪除靠近大類邊界的實例或增加任意產生的小類樣例等一般來說,算法取樣會產生一定的導向性。
分類算法評價方法
傳統的分類算法假定類別分布平衡。但真實數據常常出現類不平衡、類分布偏斜的情況。當處理類不平衡數據時,由於多數類占優勢,分類邊界偏置於優勢數據,傳統的分類算法將面臨對少數類預測能力下降的問題,從而影響整體預測性能。因而,應用通常的Acc(准確率)或Err(錯誤率)可能會出現偏差。目前不平衡數據分類的算法的評價方法包括:正確率、錯誤率、召回率、F-measure、Gmean、AUC、ROC曲線、precision-recall曲線和cost曲線等。而混淆矩陣表達實例分布的分布情況,是計算分類器性能度量的基礎。
基於隨機森林的不平衡特征選擇算法
不平衡數據特征選擇
1)基於預報風險誤差的EasyEnsemble算法PREE
EasyEnsemble算法分為兩步:
a)欠采樣,從大類數據中隨機抽取多個與小類數據一致的實例子集,並與小類一起組成多個新的訓練數據集用於訓練分類器;
b)所有分類器通過AdaBoost算法集成為最終的分類器。
PREE算法也為兩步:
a)使用EasyEnsemble算法建立分類模型;
b)利用分類器模型獲得特征子集。
2)基於抽樣集成的特征選擇算法EFSBS
EFSBS的思路比較簡單,算法有以下三個步驟:
a)欠采樣,采用隨機有放回方法從大類中產生多個與小類數量相等的數據子集,再與小類數據一起組成新的訓練數據集;
b)通過FCBF特征選擇算法獲得特征子集;
c)對產生的特征子集多數投票,獲得最終的特征子集。
PREE和EFSBS共同之處在於都采用了集成學習算法,利用欠采樣方法先平衡數據集。區別在於PREE算法嚴格意義應屬於Wrapper方法,利用了集成學習算法的分類效果進行特征選擇,EFSBS則屬於Filter方法,在特征子集的選擇上沒有利用來自於分類算法的反饋。
隨機森林變量選擇
隨機森林變量選擇(RVS)是隨機森林的一種隱式特征選擇方法。當一個重要特征(對預測准確率有貢獻)出現噪聲時,預測的准確率應該會明顯減少,若此特征是不相關特征,則其出現噪聲對預測准確率的影響應該不大。基於這一思想,利用袋外數據(Out of Bag Data)預測隨機森林性能時,若想知道某特征的重要程度,只需隨機修改該特征數值,而保持其他特征不變,由此獲得的袋外數據預測准確率與原始袋外數據預測准確率之差體現了該特征的重要程度其具體過程如下:
對於每個自舉數據集袋內數據(InOfBagi),構建決策樹Treei
1)確認袋外數據OutOfBagi;
2)同Treei預測OutOfBagi中實例的類標號,計算正確預測次數Sumoutofbagi;
3)對於每個隨機變量FJ(J = 1 ... M):
對於特征Ĵ,先計算所有所有原始袋外數據預測正確率與改變特征Ĵ值后袋外數據的正確預測率之差,其在所有樹上的平均值即代表了特征Ĵ的變量重要性。一個)對OutOfBagi中的特征FJ的值隨機排序,獲得變化后的袋外數據集OutOfBagCij;
B)用Treei對OutOfBagCij中的實例進行預測,計算正確預測次數Sumoutofbagcij;
C)用原始OutOfBag正確預測次數減去改變特征Ĵ值后的袋外數據的正確預測次數。
隨機森林變量選擇方法實際上也是一種嵌入式的特征選擇算法,充分利用了集成分類器構建過程所產生的分類模型。與PREE不同之處在於,PREE利用的是在特定特征上的結構風險變化,PREE在計算特定特征的AUC時,采用的是取特征平均值的方式;而隨機森林變量選擇方法基於的是無關特征對模型性能影響不大的思想,通過施加干擾來測試特征的准確程度,且這種方法樂意同時處理離散型和連續性數據,彌補了PREE的缺陷。
不平衡隨機森林變量選擇算法
高維數據處理的一種有效途徑即通過特征選擇降低特征數,而不平衡數據處理的有效途徑是通過取樣方法平衡數據。隨機森林的兩個步驟綜合了此兩項機制。不平衡隨機森林變量選擇算法(BRFVS)受隨機森林算法啟發,利用隨機森林的構造過程,對不平衡數據集進行特征選擇。
在隨機子空間上構造決策樹,是一種縮小特征空間的有效辦法,而決策樹算法計算分裂屬性的過程也就是一個屬性選擇的過程,可以直接利用此過程選擇重要特征。在每個UndeSamplingD數據集上都可以構造一棵在隨機子空間中產生的決策樹,也即獲得一個特征重要性度量。N個UndeSamplingD可以獲得N個特征重要性度量。這些特征重要性度量體現了各特征在不同UndeSamplingD數據集上的重要程度。但是每個UndeSamplingD所獲得特征重要性度量的可信度是不一樣的,在此體現為權重,也即可信度越高,所賦予的權重越高。
特征重要性度量
BRFVS采用RVS來計算特征重要性度量值.RVS中特征重要性度量的計算是基於袋外數據樣本的。基於袋外數據樣本測試算法性能或計算算法參數是當前常用的一種方法。這種方法的好處是可以減少計算時間。但在BRFVS中,由於采用的欠采樣方法平衡數據集中的類別,如果按照袋外數據樣本的獲取方法,則會導致出現袋外數據的大類數據過多。因此,BRFVS采用ķ層交叉驗證的方法來獲取特征重要性度量。
權重計算方法
當大類數據和小類數據嚴重不平衡時,對大類數據欠采樣時可能會產生差異性較大的UndeSamplingD數據子集。在此數據子集上建立的樹的准確率也將有所區別。實際上,由於UndeSamplingD的多樣性,其准確性是不同的.BRFVS算法認為最終集成判定一致度高的基決策樹應該具有更高的權重,其所獲得的特征重要性度量值具有更好的可信度。
基於隨機森林的高維不平衡分類算法
分類高維不平衡數據的方法有兩種:預處理再分類和直接分類。盡管預處理后能夠達到一定的分類效果,但是由於預處理后獲得的結果是單個數據集,也就是說最終用於分類的數據集將損失一部分特征和實例信息。直接分類則是在分類時充分考慮數據的高維和不平衡特性,使算法在面臨此類數據時,能夠有較好的性能。
有關集成學習解決不平衡數據分類問題的綜述中,代價敏感集成學習是一種不平衡數據分類算法。大部分的代價敏感集成方法主要是與Boosting相結合,通過在AdaBoost的權重更新公式中引入不同代價,修改權重更新公式,使之能夠有效處理不平衡問題。但是Boosting算法每次建樹時都是考慮整個特征空間,不利於高維數據的處理。
針對不平衡數據分類問題,有人提出平衡隨機森林算法(BRF)和權重隨機森林(WRF):
研究表明,對於樹分類器而言,通過欠采樣或過采樣的方式人為地使數據平衡是一種有效解決不平衡數據分類問題的方式。欠取樣看起來優於過取樣,但是欠取樣大類也可能會導致信息丟失,通過集成的方式可以彌補這一點。
BRF算法的思想的來源於此,算法步驟如下:
1)對隨機森林中的每一輪迭代從小類中抽取Bootstrap樣本。從大類中,以有放回的方式隨機抽取同樣數量的實例;
2)從產生的數據中以不剪枝的方式產生決策樹。樹產生算法為CART算法。但對CART算法修改如下:在每個節點上,不是在所有特征中搜索最優分裂,僅在固定的隨機選擇的特征中搜索最優分裂;
3)按照指定次數重復上述兩個步驟,集成預測結果獲得最終的預測。
由於RF分類器偏向於大類准確,WRF對誤分類小類設置更重的懲罰。WRF給每個類別分配一個權重,小類賦予更大的權重。類權重以兩種方式整合在RF算法中,WRF算法步驟如下:
1)樹的構建過程中,在計算分類的Gini系數中加入類權重;
2)每棵樹的終端結點上,每個端點類別的預測采取有權重的投票方式決定。例如,一個類別的權重投票使用該類別的權重乘以終端結點上的實例數。
RF的最終預測是由來自各個樹的帶權重投票集成,權重是終端結點的平均權重。類權重本質上而言就是通過參數調整來達到理想的性能。權重可以通過袋外數據(Out-of-Bag)來估計獲得。WRF設置大類和小類的初始權重均為0.5,通過調整權重,獲得ROC曲線,確定最優權重設置。
實驗顯示,BRF和WRF相比於之前的一些經典算法而言,具有更好的性能。但BRF和WRF之間性能不相上下。BRF雖平衡了數據,但是改變了數據分布,可能會引入數據的不確定性;WRF賦予小類更多權重的同時,可能使得算法在面臨噪聲時更為脆弱。,隱蔽有人提出了一個融合BRF和WRF的改進的平衡隨機森林算法(IBRF)。IBRF算法在欠采樣時,並非取與小類實例數量相等的固定數量的實例,而是引入區間參數,使得小類和大類的取樣數量可以根據需要調整。IBRF算法描述如下:
輸入:訓練數據{(x1,y1),...,(xn,yn)},區間變量m和d,樹的數量ntree;
過程如下:
For t=1,...,ntree,
1)在區間m-d/2和m+d/2間產生變量a;
2)以有放回形式隨機從負類訓練數據集D-中抽取na個實例,從正類訓練數據集D+中抽取n(1-a)個實例;
3)分配權重w1給負類,w2給正類,其中w1=1-a,w2=a;
4)產生不剪枝的分類決策樹;
輸出:最終排名。計算每個測試實例的負例得分,即預測為負類的樹的數量,越多樹將該實例預測為負類,該實例所獲得的負例得分就越高。對所有實例的負例得分排序獲得最終序列。
變量a直接決定了每輪迭代中負例和正例訓練實例的平衡程度。a越大,意味着訓練實例中負類的實例越多,也意味着賦予負類的權重越大。
代價敏感方法
代價敏感(Cost-Sensitive Learning,CSL)學習最初來源於醫療診斷中,將有病的病人診斷為無病所付出的代價將遠大於將無病的人診斷為有病病人。也就是說錯誤分類的代價是不等的。代價敏感方法被提出用於解決占據少數類別,但其誤判影響較大的問題。
代價是代價敏感學習的基礎,在數據挖掘中,將代價分為測試代價和誤分類代價。測試代價是指獲得測試屬性所需要的代價。誤分類代價是指將訓練數據實例錯誤分類所造成的損失。
針對二元分類問題,假設正類(+)表示少數類,負類(-)表示多數類。一個實例本應屬於j,但被錯誤分為i,C(i,j)表示將j錯誤分為i的代價。代價矩陣定義如下:
假設正確分類沒有代價,則代價矩陣可以描述為代價率:
代價敏感分類的目的就是以最小誤分類代價建立模型:
其中#FN 和#FP 表示假負和假正實例數。
集成學習中的代價
在用集成學習解決不平衡分類問題中,代價敏感AdaBoost算法是一種主要的方式。代價敏感AdaBoost通過修改AdaBoost的權重以及分布更新公式,使得來自不同類別的實例被區別對待。
AdaBoosting是一個串行算法,通過逐步調整實例分布,使得分類傾向於難分的實例。再集成所有分類器,形成集成學習算法。AdaBoost算法涉及兩個參數:at和Dt(i)。at是指每個分類器的權重,Dt(i)是指t輪時實例i的權重。
在AdaCost中,權重更新公式增加了一個代價調整函數。對於一個具有更高代價因子的實例,如果這個實力被誤分類,則增加更多權重,但是如果沒有被誤分類,則減少相應的權重。AdaBoost的權重函數和at的計算公式被替換為:
代價敏感隨機森林算法
盡管代價敏感學習已經被引入到集成學習中,但是現有的代價敏感方法大多是與Boosting算法結合,在分類高維數據時不能取得較好的性能。隨機森林本身適合於處理高維數據,如果在隨機森林中引入代價因子,則可同時處理高維不平衡數據分類。之前的BRF和WRF為代價敏感隨機森林算法(CSRF)設計提供了啟發。之前方法在決策樹中引入的代價多是誤分類代價,而CSRF則綜合考慮了誤分類代價和測試代價兩種代價的影響。
隨機森林是一個兩階段的過程:
1)通過Bagging方法獲得多個Bootstrap訓練集用於產生基分類器;
2)在產生的訓練數據集上,用分類回歸樹(CART)算法產生不剪枝的決策樹。
決策樹的每個結點的分裂屬性不是在整個特征空間計算,而是固定一個屬性特征數量K,每次分裂時,從特征集中隨機有放回地抽取K個屬性,在此K個屬性上計算最佳分裂屬性。
CART決策樹是一個二元遞歸划分過程,可用於處理分類問題也可以處理回歸問題。每一個結點均划分為兩個分支,分裂屬性的計算原則采用Gini指數。但Gini指數中只考慮了誤分類代價,而未考慮測試代價。CSRF算法借鑒了EG2算法的思想,EG2算法是在C4.5的基礎上,修改了屬性分裂度量,使用信息代價函數(ICF)作為分裂准則,這一准則同時權衡了信息增益和測試代價兩方面的信息。
其中Gain(A)代表屬性A的信息增益,CA代表屬性A的測試代價,參數用於調整信息代價大小。將信息增益修改為Gini系數,則使得分裂屬性的計算綜合考慮測試代價和誤分類代價。
當w取值為0的時候,屬性分裂度量與測試代價無關。
代價敏感算法通常以最小化誤分類代價為目標,由於在算法中引入了測試代價,因此,總體代價表示為:
也就是說評價函數由最小化誤分類代價轉化最小化誤分類代價和測試代價之和,其中TestCost為測試代價。
CSRF算法描述:
CSRF通過對隨機森林中產生決策樹的CART算法進行修正,使其對不平衡數據能夠區別對待。代價引入主要體現在兩個方面:屬性分裂和算法評價。在CSRF中的測試代價與分類類別相關,測試代價是一個預設的數值,該數值通過計算該屬性與類別的相關性而獲得,也就是說如果某一屬性與某一類別的相關性大,則認為在當前屬性上分裂的測試代價更小。
CSRF具體步驟如下:
1)通過Bagging方法獲得Boostrap數據集;
2)建立不剪枝的CART決策樹,修改CART決策樹的屬性分裂計算方法。這里誤分類代價采用固定數值。還需要確定的就是參數w,w用於調節測試代價的影響能力,CSRF用袋外數據測試,w的初值為0,取0.1為步長,以總體代價為評價標准,獲得總體代價最小的w值作為最終的模型參數值。為了簡化問題,每個CART樹的w取值都相同。由於在不平衡數據中,期望給予小類更多地關注,因此,確定測試代價時,僅考慮屬性和小類的相關性,相關性大則測試代價小,反之則大。采用Gini系數計算各屬性與小類的相關性。
基於集成特征選擇的高維不平衡數據分類算法
集成學習算法有效的前提是基分類器多樣且准確。隨機森林本身的機制就可以達到保證多樣性和准確性的雙重效果,能夠較准確的處理高維數據,直接在其中引入傾向於小類的代價,就可以達到平衡小類和大類的效果。
集成特征選擇不同於隨機森林,是一種基於選擇特征的集成學習方法。采用特征選擇算法分類高維不平衡數據時,需要兼顧多樣性、准確性和不平衡性。 思路與前一章類似,本文設計了一個新集成特征選擇算法IEFS,在特征子集評價函數中引入代價,代價以權重體現,增加了獎懲因子。在子集搜索過程中,小類上的分類准確率得以提升則給予獎勵,小類上的分類准確率下降則給予懲罰。
集成特征選擇
基於特征選擇的集成分類也稱為集成特征選擇方法。集成特征選擇方法可以描述為:將數據集中的不同特征分別進行分割,在不同的特征子集上構建不同分分類器。集成特征選擇不同於傳統的特征選擇方法,傳統的特征選擇方法是按照某一個准則選擇一組最優或近似最優的特征。而集成特征選擇方法的目標不是選擇某一個最優或近似最優的特征子集,而是以構建的基分類器具有高精度且分類器間具有分類錯誤多樣性為目標,選擇划分特征子集的方法。多樣性和准確性往往是兩個矛盾的目標,因此集成特征選擇算法的核心目標是平衡多樣性和准確性,而並非尋找具有最優識別精度的特征子集。
一個集成特征選擇算法包含三個步驟:1)特征子集的選擇;2)產生基分類器;3)集成預測結果。其中特征子集的選擇是一個搜索過程,搜索目標函數用於評價特征子集,假設有M個屬性,則屬性組合的搜索空間為2的M次方。特征子集的選擇本質上就是在搜索空間中搜索滿足目標函數的特征子集的集合。目標函數決定了搜索收斂的方向,搜索方法決定了搜索的質量。
常用目標函數
最初,基於特征選擇的集成學習方法是為了擴展集成學習基分類器的產生方式而提出,以最小化泛化錯誤率為目標。即選擇預測錯誤率最小的特征子集的組合。
隨后,研究發現,集成錯誤由兩個部分組成:基分類器的泛化錯誤和基分類器的不一致程度。於是,Opitz提出集成特征選擇的概念,用標准遺傳算法搜索構建集成的特征子集,將遺傳算法的適應值函數定義為:
Fitnessi代表第i個種群的適應值。准確率Accuracyi指所有基分類器在測試集上正確分類率的平均值。
Accuracyij是指第i個種群中第j個基分類器的預測准確率。cij(x)基分類器j預測x的類標號,c(x)是測試集的原始類標號。多樣性Diversityi定義為第i種群中,基分類器與集成預測結果的差距的平均值。通過加權平均平衡准確率和多樣性。
搜索方法
在集成特征選擇中除了考慮目標函數,采用的搜索算法也是其中一個關鍵因素。目前在集成特征選擇中常用的搜索方法有:爬山法(HC)、遺傳算法(GA)等。
集成特征選擇中關注搜索性能的相關研究以遺傳算法為基礎算法,通過研究搜索算法,力求獲得最優解。但由於遺傳算法的時間開銷大,關注目標函數的研究通常采用爬山搜索作為搜索方法。
兼顧不平衡性的集成特征選擇算法
本文修改了Optiz提出的目標函數,使其在特征子集的搜索過程中更傾向於小類准確,采用爬山搜索特征空間,提出了兼顧不平衡性的集成特征選擇算法(IEFS)。
IEFS的特征子集評價函數仍然由兩個部分組成:准確率和多樣性。
由於數據的不平衡性,采用准確率度量基分類器的預測性能將傾向於大類准確。因此,在IEFS中,准確率采用F-measure度量。
IEFS的多樣性度量采用KW方差多樣性度量。一個好的集成的基分類器應該盡可能准確且多樣。集成目標f IEFS中,准確率越大,意味着基分類器越准確;多樣性越大,意味着基分類的預測越不一致。IEFS在准確率的度量中采用了傾向於小類的F度量。同時修改了KW方差多樣性度量。基分類器的多樣性度量越大意味着可能產生更好的集成,也意味着基分類器選擇的特征子集是合適的。在KW多樣性度量中,當基分類器的預測越一致,則KW的取值越小,代表基分類器的預測多樣性越小。
IEFS在多樣性的度量中引入不平衡因素,即在小類實例上預測越不一致,則增加其多樣性計算值。當小類預測不准確時,予以懲罰,減少多樣性度量值,使得不能使小類分類正確的基分類器被拋棄,則可增加小類的分類准確率。
為測試此多樣性度量的有效性,集成選擇的目標函數僅考慮准確率和多樣性的簡單求和。
總結部分:
不論是高維數據還是不平衡數據,可以都預處理再分類。
降維是常用的高維預處理方法,包括特征選擇和特征變換;不平衡數據的預處理方法主要是取樣技術,包括欠采樣和過采樣;預處理可以減少分類時間,但會損失特征或實例信息,預處理不准確將導致分類不准確。
直接分類高維數據的算法較少,基於特征的集成學習是其中的一種;直接分類不平衡數據的算法有三類:代價敏感算法,單一分類算法和集成學習。
注意:其中集成學習算法大都是在推進算法中引入代價或結合取樣方法處理不平衡數據當數據展現高維和不平衡雙重性時,現有方法無法獲得較好的性能但從現有方法中可以發現,集成學習是兩類數據分類方法的交集。