本發(fā)明涉及數據處理領域,尤其涉及面向高維和不平衡數據分類的集成。
背景技術:
:數據挖掘研究正面臨各種數據問題的挑戰(zhàn),不同特性的數據增加了算法研究的復雜度。其中,對具有高維和不平衡特性的數據分類是近年的研究焦點?,F有方法僅考慮了高維或不平衡的某一特性,但大量現實數據卻同時展現了雙重特性。在分類具有雙重特性的數據時,單獨針對高維或不平衡數據的分類算法面臨性能瓶頸。如何有效分類高維且不平衡的數據是應用研究亟需解決的問題。分類高維不平衡數據的方法有兩種:預處理(特征選擇和取樣)再分類和直接分類。預處理后的數據可以直接用于已有分類算法,但數據損失了部分特征和實例信息,預處理的效果將影響分類性能。直接分類可以保留全部數據信息,但分類算法必須兼顧考慮高維和不平衡特性,增加了設計的復雜度。本文從這兩個方面展開研究,針對預處理高維且不平衡數據時,先特征選擇還是先取樣問題,通過實驗對比獲得特征選擇先于取樣。更優(yōu)的結論;針對先特征選擇面臨的數據不平衡問題,提出了不平衡數據特征選擇算法brfvs;針對預處理數據可能導致特征或實例的損失問題,在基于特征的集成學習框架下,從隨機方式(隨機森林)和選擇方式(集成特征選擇)兩個方面提出了代價敏感隨機森林算法csrf和基于集成特征選擇的分類算法iefs。本文所做具體工作如下:1)對比特征選擇和取樣順序對分類性能的影響。在特定領域(軟件缺陷檢測)的實驗研究結果顯示,先取樣再特征選擇后的分類效果更優(yōu)。由于實驗數據單一,該結論不具有普及性。而在多個其他領域的驗證研究顯示,特征選擇和取樣的順序并不是影響分類性能的關鍵因素。但因為引入了人為噪聲因素,該結論不適用于無噪聲的情況。本文從uci數據集中,按照應用領域、維數和不平衡程度篩選了12個實驗數據集。以auc為評價標準,測試了過濾式和封裝式特征選擇方法與取樣方法組合預處理后對分類性能的影響。不同于上述結論,先特征選擇再取樣的平均auc性能在12個數據集上的表現優(yōu)于先取樣再特征選擇。該結論可為預處理高維不平衡數據提供實踐指導。2)提出不平衡特征選擇算法brfvs。目前針對不平衡數據特征選擇的算法相對較少。已有的efsbs算法屬于過濾式方法,沒有充分利用分類算法的反饋;pree算法盡管利用了分類的性能反饋,但不能處理離散型特征。brfvs是一個既能處理離散型,又能處理連續(xù)型特征,同時能充分利用分類算法反饋的特征選擇算法。brfvs借鑒了隨機森林算法的思想,采用欠取樣產生多個平衡數據集,在各數據集上利用隨機森林變量選擇方法計算特征重要性度量值。最終的度量值通過對各數據集的度量值加權求和獲得。數據集的權重由其與集成預測的一致性程度決定。實驗對比了隨機森林超參數k的取值對算法性能的影響,結果顯示,當k取值為m時,采用brfvs特征選擇后再取樣的分類性能優(yōu)于普通特征選擇后再取樣的分類性能。進一步驗證了先特征選擇后取樣更優(yōu)的實驗結論。提出代價敏感隨機森林算法csrf。盡管直接分類可不受預處理性能的影響,但已有的高維數據分類算法不能有效分類不平衡數據,而不平衡數據分類算法未考慮數據展現高維特性的情況。csrf在隨機森林的決策樹屬性分裂度量中引入測試代價和誤分類代價,這兩種代價分別相關于小類數據,通過整對小類的關注度提高對小類的正確識別率。實驗對比了csrf算法、原始隨機森林算法和僅引入誤分類代價的隨機森林算法。csrf在auc性能,尤其是小類的正確識別率上有明顯優(yōu)勢,同時,csrf算法的分類性能也明顯高于預處理后再分類的分類性能。4)提出基于集成特征選擇的高維不平衡數據分類算法iefs。已有集成特征選擇算法的目標函數僅考慮多樣性和準確性的加權求和,未考慮不平衡特性,不適用于不平衡數據分類。iefs算法選擇kohavi-wolpert方差作為多樣性度量方法,在其中引入獎懲因子增加對小類的關注,并采用爬山法搜索解空間,可兼顧考慮多樣性、準確性和不平衡性。實驗結果顯示,此方法在auc分類性能上略差于csrf分類算法,但是其在auc分類性能和小類的識別上明顯高于c4.5和隨機森林算法。盡管先特征選擇面臨數據不平衡問題,但不論是采用brfvs算法還是普通特征選擇算法,先預處理高維問題再處理不平衡問題的方式將產生更優(yōu)的分類性能。直接分類與預處理再分類的性能對比顯示,直接分類方法在auc和小類正確識別率上優(yōu)于預處理方法,但時間代價更大,適用于離線處理方式。iefs算法由于受到搜索方法的局限性,展現的性能則略差于csrf算法。綜上所述,針對現有技術存在的缺陷,特別需要面向高維和不平衡數據分類的集成,以解決現有技術的不足。技術實現要素:本發(fā)明的目的是提供面向高維和不平衡數據分類的集成,自動化程度強,采用不同的預處理組合策略來緩和高維和不平衡對分類的影響。本發(fā)明為解決其技術問題所采用的技術方案是,面向高維和不平衡數據分類的集成,采用降維和取樣的先后順序,將預處理策略減少為兩類;基于實驗結論的可重現性原則,選取數據挖掘和機器學習的一些標準數據集作為實驗數據;在預處理方法的選擇上,增加了封裝式(wrapper)特征選擇方法和過取樣方法;從屬性個數和不平衡程度兩方面研究預處理方法對高維不平衡數據分類性能的影響;降維方法分為兩類:特征選擇和特征變換,特征選擇方法依據是否獨立于后續(xù)的學習算法分為過濾式(filter)和封裝式(wrapper)兩種,過濾式與后續(xù)學習算法無關,一般直接利用所有訓練數據的統(tǒng)計性能評估特征,速度快,但評估與后續(xù)學習算法的性能偏差較大;封裝式利用后續(xù)學習算法的訓練準確率評估特征子集,偏差小,計算量大,不適合于大數據量,特征變換不同于特征選擇之處在于其輸出結果不是原有的屬性,而是基于某種變換原則所產生的新屬性,由于變換后的屬性改變了原有屬性的物理特性,同時一些特征變換方法通常針對連續(xù)屬性數據,再此不考慮特征變換方法,取樣方法包括兩種:欠取樣和過取樣,預處理采用降維方法和取樣方法;降維方法的評估直接依賴于數據集本身,通常認為相關性較大的特征或特征子集可獲得較高的分類準確率,常見的filter特征選擇評估方法有類間距離、信息增益、關聯度和不一致度等,kohavi曾指出盡管僅考慮數據集的評估方法運行效率高,但尋找與類別相關的特征或特征子集和選擇可最優(yōu)化分類準確率的特征或特征子集是兩個不同的問題;取樣方法是一類常用的預處理技術,利用取樣可以平衡數據,緩解數據中的不平衡問題,取樣方法根據其取樣方向可以分為兩類:過取樣(oversampling)和欠取樣(undersampling),過取樣增加小類實例,欠取樣則減少大類實例,根據取樣策略分為隨機的和算法的兩類,隨機取樣以隨機方式刪除或增加實例,而算法取樣則根據一定的原則取樣,如刪除靠近大類邊界的實例或者增加任意產生的小類實例等,通常而言,隨機取樣是較為常用的取樣手段,而算法取樣對于實例集的改變可能存在一定的導向性為簡化問題。進一步,降維方法關注特征選擇與取樣的組合實驗效果,因此基于簡化原則,選擇簡單、通用且高效的算法,filter特征選擇算法中選擇信息增益特征選擇算法和relief算法,選擇前者的原因在于后續(xù)分類算法擬定采用決策樹算法,而信息增益本身就是決策樹屬性選擇的方法;后者則是因為relief算法是目前比較公認的效果較好的filter特征選擇算法,wrapper算法擬定選擇不同的搜索策略構造不同算法,由于kohavi的實驗研究顯示最佳優(yōu)先搜索優(yōu)于貪心搜索(爬山法)方式,在此選擇最佳優(yōu)先搜索方式,另外,隨機搜索可以提供更為準確的搜索結果,在此同時考慮采用基本遺傳算法的遺傳搜索方式;信息增益是信息增益是機器學習和信息理論中常用的一種度量方法,在進行類別預測時,已知特征的取值,ig可以度量有關類預測所需要的信息位數,信息增益可被定義為先驗不確定性與期望的后驗不確定性之間的差異,計算給定屬性x關于類屬性y的ig,需要已知兩個信息:類標號y本身取值的不確定性和考慮屬性x時的不確定性,這兩個不確定性可以分別表示為y的熵h(y)和條件熵h(y|x);其中r表示屬性x的取值個數,特征x的ig可定義為:ig(x)=h(y)-h(y|x)h(y)表示不考慮特征x時,y屬性的純度,而h(y|x)表示考慮了特征x后,y屬性的純度,若考慮x屬性后,使得y屬性的劃分更純的話,則認為此特征屬性能夠有效區(qū)分類別,熵值越小,而純度越高,也即應該選擇最大信息增益的屬性。進一步,relief算法根據特征對近距離實例的辨別能力來評價特征,認為好的特征應該使同類的實例接近,而使不同類的實例之間遠離,圓和三角分別表示兩類實例,算法從訓練集d中隨機選擇一個實例r,然后從和其同類的實例中尋找最近鄰實例h,稱為nearesthit,從和其不同類的實例中尋找最近鄰實例m,稱為nearestmiss,然后對于每維特征,如果r和h在其上的距離小于r和m上的距離,則說明此維特征對區(qū)分同類和不同類的最近鄰是有益的,增加該特征的權值;反之,則說明此維特征對區(qū)分同類和不同類的最近鄰是起反作用的,則降低該特征權值,權值的更新公式如下:weight[a]=weight[a]·diff(a,r,h)/m+diff(a,r,m)/m其中a=1....n,n代表屬性個數,m指的是迭代次數,diff(a,r,h)表示實例r和h在屬性a上的距離;重復上述過程m次,最后所獲得是各特征的平均權值,特征的權值越大,表示該特征的分類能力越強,反之,表示該特征的分類能力越弱。進一步,wrapper方法是由kohavi提出,將學習算法當作一個黑匣子,利用學習算法的結果選擇特征子集,學習算法本身就是特征子集選擇的評估函數,不同的搜索策略將產生不同的特征子集,一個搜索包含了狀態(tài)空間,初始狀態(tài),終止條件和搜索策略四個要素,kohavi將搜索空間的每個狀態(tài)表示為一個特征子集,對于n個特征而言,每個狀態(tài)有n位,每位表示一個特征是否出現,1表示出現,0表示不出現,操作決定了狀態(tài)間的偏序關系,kohavi選擇的操作是增加或刪除屬性,如果是n個特征,則搜索空間為(2)no,采用窮舉模式搜索整個空間是不現實的,由此需要不同的搜索策略。進一步,正確率和錯誤率是常用的分類器性能度量,但這兩個度量對類不平衡敏感,過于偏向于多數類,當正負類比例為5%:95%的情況下,即使將所有實例都分為負類,分類器的正確率達到95%,而此時所有正例都將被錯分,正確率(acc)和錯誤率(err)表示如下:根據混淆矩陣,還可計算出精確度和召回率(真正率)及其他度量,f-measure組合了精確度和召回率,較高的f-measure意味著分類器在正類上具有更好的性能;kubat等提出的g-mean是正負類預測準確度的幾何平均,g-mean是避免過度擬合負類的重要度量;roc曲線是點(fprate,tprate)的軌跡,roc曲線上的每個點對應一個分類器模型,點(0,0)表示把每個實例都預測成負類的模型;點(1,1)表示把每個實例都預測成正類的模型;點(1,0)是理想模型,將所有正例分類為正類,所有負例分類為負類,在繪制roc曲線時,y軸表示真正率,而x軸表示假正率,將一個分類器用于一個測試集上會產生一個混淆矩陣,進而獲得相應的真正率(tpate)和假正率(fprate),這樣就對應于roc空間中的一個點,不同的分類器則對應于roc空間的一組點,將這些點連接起來就可以得到一條roc曲線,其對應的下方圖面積就是auc(areaunderroccurve),假設分類器在實例x上輸出得分f(x),則相應的auc可以利用下式計算得到:其中:i(g)是指示函數,n+表示正例實例數,n-表示負例實例數。本發(fā)明的優(yōu)點在于:1)基于uci數據集,對比特征選擇和取樣順序對分類性能的影響。預處理是解決高維不平衡數據分類問題的一種方法。先減少特征(特征選擇)還是先平衡數據(取樣)是其面臨的首要問題。在特定應用領域的研究結果顯示,先取樣再特征選擇后的分類性能更優(yōu)。由于采用的實驗數據單一,這一結論不能普及;多個應用領域的研究結果則顯示,處理順序不是關鍵因素。但因為引入了人為噪聲干擾,其結論不適用于無噪聲的情況。本文在來自于uci的不同應用領域的12個數據集上,采用更完備的預處理實驗策略,獲得了不同的結論:對高維不平衡數據分類前,先減少特征再平衡數據產生的平均auc性能更優(yōu)。該結論可為應用研究提供實踐指導。2)借鑒隨機森林變量選擇思想,本文設計了一個新的不平衡數據特征選擇算法brfvs。先特征選擇必然面臨數據不平衡問題。目前針對不平衡數據特征選擇的算法相對較少。已有的efsbs算法沒有充分利用分類算法的反饋;pree盡管利用了分類的性能反饋,但不能處理離散型特征。本文提出的brfvs算法是一個既能處理離散型特征,又能處理連續(xù)型特征,且能充分利用分類算法反饋的特征選擇算對brfvs超參數k不同取值時的性能研究顯示:當k取值為m時,采用brfvs特征選擇后再取樣的分類性能更好,且明顯優(yōu)于普通特征選擇后再取樣的分類性能,再次印證了先特征選擇更優(yōu)的實驗結論。3)考慮誤分類和測試雙重代價,本文提出了一個代價敏感隨機森林算法csrf,從屬性測試和誤分類兩方面調整對小類的關注度,提高小類的正確識別率。預處理方法可能導致特征或實例的損失,直接分類則可保留全部數據信息。已有的高維數據分類算法不能有效分類不平衡數據,而不平衡數據分類算法未考慮數據展現高維特性的情況。本文利用了隨機森林處理高維數據的優(yōu)勢,在其決策樹的屬性分裂度量中引入雙重代價,更好地處理數據中的不平衡性。相比于未考慮代價和僅考慮誤分類代價的隨機森林,csrf分類在auc性能,尤其是小類的正確識別率上有明顯優(yōu)勢。同時,直接用csrf算法分類的性能也明顯高于預處理后的分類性能。4)兼顧多樣性、準確性和不平衡性,本文在集成特征選擇中采用kohavi-wolpert方差作為多樣性度量方法,在其中引入獎懲因子增加對小類的關注,提出了直接分類高維不平衡數據的iefs算法。已有集成特征選擇算法的目標函數僅考慮多樣性和準確性,未考慮不平衡特性。iefs算法在集成特征選擇目標函數中綜合考慮集成性能和不平衡處理因素,設計了新的目標函數,采用爬山法搜索特征空間。實驗結果顯示,此方法在auc分類性能上略差于csrf分類算法,但是其在auc分類性能和小類的識別上明顯高于c4.5和隨機森林算法。附圖說明下面結合附圖和具體實施方式來詳細說明本發(fā)明:圖1是本發(fā)明relief方法示意圖;圖2是本發(fā)明狀態(tài)搜索空間圖;圖3是本發(fā)明三層交叉準確率評估圖;圖4是本發(fā)明選擇特征和數據取樣場景圖;具體實施方式為了使本發(fā)明實現的技術手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結合圖示與具體實施例,進一步闡述本發(fā)明。面向高維和不平衡數據分類的集成,采用降維和取樣的先后順序,將預處理策略減少為兩類;基于實驗結論的可重現性原則,選取數據挖掘和機器學習的一些標準數據集作為實驗數據;在預處理方法的選擇上,增加了封裝式(wrapper)特征選擇方法和過取樣方法;從屬性個數和不平衡程度兩方面研究預處理方法對高維不平衡數據分類性能的影響;高維不平衡數據分類的解決思路有兩種:預處理后再分類和直接分類。目前主要采用不同的預處理組合策略來緩和高維和不平衡對分類的影響。khoshgoftaar和shanab分別針對某一特定領域(軟件質量)和多個應用領域(uci)的數據,研究預處理方法對高維不平衡數據分類性能的影響。軟件質量數據集上的研究由于數據集單一,實驗結論不具有普及性;而在uci數據集上的實驗研究,人為地引入了噪聲,其結論不適用于無噪聲的情況。噪聲因素的引入使得實驗結果不能真實地反映預處理方法對于高維不平衡數據分類的實際效果。降維方法分為兩類:特征選擇和特征變換,特征選擇方法依據是否獨立于后續(xù)的學習算法分為過濾式(filter)和封裝式(wrapper)兩種,過濾式與后續(xù)學習算法無關,一般直接利用所有訓練數據的統(tǒng)計性能評估特征,速度快,但評估與后續(xù)學習算法的性能偏差較大;封裝式利用后續(xù)學習算法的訓練準確率評估特征子集,偏差小,計算量大,不適合于大數據量,特征變換不同于特征選擇之處在于其輸出結果不是原有的屬性,而是基于某種變換原則所產生的新屬性,由于變換后的屬性改變了原有屬性的物理特性,同時一些特征變換方法通常針對連續(xù)屬性數據,再此不考慮特征變換方法,取樣方法包括兩種:欠取樣和過取樣,預處理采用降維方法和取樣方法;降維方法的評估直接依賴于數據集本身,通常認為相關性較大的特征或特征子集可獲得較高的分類準確率,常見的filter特征選擇評估方法有類間距離、信息增益、關聯度和不一致度等,kohavi曾指出盡管僅考慮數據集的評估方法運行效率高,但尋找與類別相關的特征或特征子集和選擇可最優(yōu)化分類準確率的特征或特征子集是兩個不同的問題;wrapper特征選擇的核心思想是:與學習算法無關的filter特征評價將與后續(xù)分類算法產生較大的偏差。不同學習算法偏好不同的特征子集,特征選擇后的特征子集最終將用于后續(xù)的學習算法,則該學習算法的性能就是最好的評估標準。選擇不同的分類算法以及特征空間搜索策略,則可產生各種wrapper特征選擇算法,常見的搜索方式有最佳優(yōu)先搜索、隨機搜索和啟發(fā)式搜索等。取樣方法是一類常用的預處理技術,利用取樣可以平衡數據,緩解數據中的不平衡問題,取樣方法根據其取樣方向可以分為兩類:過取樣(oversampling)和欠取樣(undersampling),過取樣增加小類實例,欠取樣則減少大類實例,根據取樣策略分為隨機的和算法的兩類,隨機取樣以隨機方式刪除或增加實例,而算法取樣則根據一定的原則取樣,如刪除靠近大類邊界的實例或者增加任意產生的小類實例等,通常而言,隨機取樣是較為常用的取樣手段,而算法取樣對于實例集的改變可能存在一定的導向性為簡化問題。降維方法關注特征選擇與取樣的組合實驗效果,因此基于簡化原則,選擇簡單、通用且高效的算法,filter特征選擇算法中選擇信息增益特征選擇算法和relief算法,選擇前者的原因在于后續(xù)分類算法擬定采用決策樹算法,而信息增益本身就是決策樹屬性選擇的方法;后者則是因為relief算法是目前比較公認的效果較好的filter特征選擇算法,wrapper算法擬定選擇不同的搜索策略構造不同算法,由于kohavi的實驗研究顯示最佳優(yōu)先搜索優(yōu)于貪心搜索(爬山法)方式,在此選擇最佳優(yōu)先搜索方式,另外,隨機搜索可以提供更為準確的搜索結果,在此同時考慮采用基本遺傳算法的遺傳搜索方式;信息增益是信息增益是機器學習和信息理論中常用的一種度量方法,在進行類別預測時,已知特征的取值,ig可以度量有關類預測所需要的信息位數,信息增益可被定義為先驗不確定性與期望的后驗不確定性之間的差異,計算給定屬性x關于類屬性y的ig,需要已知兩個信息:類標號y本身取值的不確定性和考慮屬性x時的不確定性,這兩個不確定性可以分別表示為y的熵h(y)和條件熵h(y|x);其中r表示屬性x的取值個數,特征x的ig可定義為:ig(x)=h(y)-h(y|x)h(y)表示不考慮特征x時,y屬性的純度,而h(y|x)表示考慮了特征x后,y屬性的純度,若考慮x屬性后,使得y屬性的劃分更純的話,則認為此特征屬性能夠有效區(qū)分類別,熵值越小,而純度越高,也即應該選擇最大信息增益的屬性。參見圖1,relief算法根據特征對近距離實例的辨別能力來評價特征,認為好的特征應該使同類的實例接近,而使不同類的實例之間遠離,圓和三角分別表示兩類實例,算法從訓練集d中隨機選擇一個實例r,然后從和其同類的實例中尋找最近鄰實例h,稱為nearesthit,從和其不同類的實例中尋找最近鄰實例m,稱為nearestmiss,然后對于每維特征,如果r和h在其上的距離小于r和m上的距離,則說明此維特征對區(qū)分同類和不同類的最近鄰是有益的,增加該特征的權值;反之,則說明此維特征對區(qū)分同類和不同類的最近鄰是起反作用的,則降低該特征權值,權值的更新公式如下:weight[a]=weight[a]-diff(a,r,h)/m+diff(a,r,m)/m其中a=1....n,n代表屬性個數,m指的是迭代次數,diff(a,r,h)表示實例r和h在屬性a上的距離;重復上述過程m次,最后所獲得是各特征的平均權值,特征的權值越大,表示該特征的分類能力越強,反之,表示該特征的分類能力越弱。參見圖2,wrapper方法是由kohavi提出,將學習算法當作一個黑匣子,利用學習算法的結果選擇特征子集,學習算法本身就是特征子集選擇的評估函數,不同的搜索策略將產生不同的特征子集,一個搜索包含了狀態(tài)空間,初始狀態(tài),終止條件和搜索策略四個要素,kohavi將搜索空間的每個狀態(tài)表示為一個特征子集,對于n個特征而言,每個狀態(tài)有n位,每位表示一個特征是否出現,1表示出現,0表示不出現,操作決定了狀態(tài)間的偏序關系,kohavi選擇的操作是增加或刪除屬性,如果是n個特征,則搜索空間為(2)no,采用窮舉模式搜索整個空間是不現實的,由此需要不同的搜索策略。搜索的目標是通過評估函數,找到具有最高評估值的狀態(tài)。由于不知道分類器的實際準確率,kohavi采用5層交叉驗證方法估計分類器準確率作為評估函數,參見圖3顯示的是一個估計準確率的三層交叉驗證方法。kohavi設置搜索的初始狀態(tài)為空集,即采用前向選擇的方法(forwardselection)。實驗結果顯示,最佳優(yōu)先搜索的效果優(yōu)于貪心搜索,因此論文實驗擬采用最佳優(yōu)先搜索方式。最佳優(yōu)先搜索的本質思想就是選擇當前已有的最可信的結果,遺傳算法(geneticalgorithm,ga)最早由holland提出,是一種模擬生物選擇和繁衍過程的進化學習方法。遺傳算法將待解決的問題通過編碼表示為多個基因構成的染色體,設計一個適應函數用來判斷染色體的好壞及其生存概率,染色體適應值越高,意味著被選擇繁殖的可能性越大。遺傳算法通過選擇、交叉和變異獲得種群的下一代,不斷迭代直至滿足結束條件。ga-wrapper采用二進制編碼方式,個體編碼為二進制位串行式,每一位表示一位特征,取值為0代表不選擇該特征,為1代表選擇該特征。一個個體代表一種特征選擇方案。以分類器的準確率作為適應值計算函數。傳統(tǒng)分類算法假定數據類別分布均衡。但真實數據常常存在類不平衡(classimbalance)或類分布偏斜(skewedclassdistribution)的情況[153]。當處理類不平衡數據時,由于多數類占優(yōu)勢,分類邊界偏置于優(yōu)勢數據,傳統(tǒng)分類算法將面臨對少數類預測能力下降的問題,從而影響整體預測性能。此時,使用通常的準確率或錯誤率作為評估分類器性能可能出現偏差。目前不平衡數據分類算法的評價方法包括:正確率、精確度(precision)、召回率(recall)、f-measure、gmean、auc、roc曲線、precision-recall曲線和cost曲線等?;煜仃嚤磉_實例分類的分布情況,是計算分類器性能度量的基礎,如表1所示,其中正類代表少數類,負類代表多數類。表1預測正類預測負類實際正類truepositives(tp)falsenegatives(fn)實際負類falsepositives(fp)truenegatives(tn)進一步,正確率和錯誤率是常用的分類器性能度量,但這兩個度量對類不平衡敏感,過于偏向于多數類,當正負類比例為5%:95%的情況下,即使將所有實例都分為負類,分類器的正確率達到95%,而此時所有正例都將被錯分,正確率(acc)和錯誤率(err)表示如下:根據混淆矩陣,還可計算出精確度和召回率(真正率)及其他度量,f-measure組合了精確度和召回率,較高的f-measure意味著分類器在正類上具有更好的性能;kubat等提出的g-mean是正負類預測準確度的幾何平均,g-mean是避免過度擬合負類的重要度量;roc曲線是點(fprate,tprate)的軌跡,roc曲線上的每個點對應一個分類器模型,點(0,0)表示把每個實例都預測成負類的模型;點(1,1)表示把每個實例都預測成正類的模型;點(1,0)是理想模型,將所有正例分類為正類,所有負例分類為負類,在繪制roc曲線時,y軸表示真正率,而x軸表示假正率,將一個分類器用于一個測試集上會產生一個混淆矩陣,進而獲得相應的真正率(tpate)和假正率(fprate),這樣就對應于roc空間中的一個點,不同的分類器則對應于roc空間的一組點,將這些點連接起來就可以得到一條roc曲線,其對應的下方圖面積就是auc(areaunderroccurve),假設分類器在實例x上輸出得分f(x),則相應的auc可以利用下式計算得到:其中:i(g)是指示函數,n+表示正例實例數,n-表示負例實例數。面對高維不平衡問題的直覺方法是對數據進行預處理,但是高維和不平衡的影響在數據集中是互相滲透的,先特征選擇還是先取樣?預處理的先后順序是否與數據本身的維度和不平衡特性有一定的聯系?預處理是否是最佳的處理方法?這一系列的問題驅使研究者進行預處理方面的驗證實驗。目前來說已經有許多分別驗證各種預處理方法在高維或不平衡分類上的效果,但綜合考慮預處理方法在高維不平衡數據上的處理效果的實驗,僅有khoshgoftaar的團隊。但通過分析其實驗研究內容,可以發(fā)現,在實驗策略上存在一定的冗余,預處理方法的選擇不夠有代表性,且在數據集中人工引入噪聲,盡管可以模擬出看似真實的數據集,但單就高維不平衡問題而言,則引入了不純的信息,不能更好地展示預處理方法在此類問題上的處理效果,基于此,本文在khoshgoftaart團隊的實驗研究基礎上,對實驗的策略、數據集和方法進行了改進,期望通過合理的實驗設置,獲得有效的實驗結果,分析的實驗結論可幫助后續(xù)算法的設計。khoshgoftaar在軟件缺陷檢測中,用特征選擇和取樣技術的各種組合模式解決數據中特征選擇和類別不平衡問題。根據特征選擇和取樣的先后順序及分類基于的訓練數據集,設計了四種應用場景:(1)基于原始數據特征選擇,基于原始數據建模;(2)基于原始數據特征選擇,基于取樣數據建模;(3)基于取樣數據特征選擇,基于原始數據建模;(4)基于取樣數據特征選擇,基于取樣數據建模;這四種場景如圖4所,其采用的實驗策略如表2所示:表2實驗結果顯示:(1)基于取樣數據的特征選擇比基于原始數據的特征選擇的效果明顯更好,即s3和s4明顯強于s1和s2;(2)訓練數據集是使用原始數據還是取樣數據對預測模型的性能影響不大,即s1和s2之間以及s3和s4之間性能差別不大;據此,khoshgoftaar認為在缺陷預測中選擇正確的屬性集非常重要。隨后,shanab在此基礎上,進行了更為通用的實驗。在場景上,shanab認為第一種方法等同于僅進行特征選擇的方法,因此將其去除,其他三種場景保持不變。特征選擇方法由6種擴大為9種,取樣方法仍然保持不變,使用的分類算法則由兩種擴大為五種,所采用的驗證數據集不再局限于軟件缺陷檢測領域,而擴大為7個,分別包括基因表達數據、互聯網數據和圖像識別數據。具體的實驗策略如表3所示:表3實驗結果與khoshgoftaar的結論稍有出入。場景s2和s3的性能相對更好,而s2和s3的性能高低則取決于所采用的評價指標和分類算法,若采用prc指標或mlp或lr算法,則s3更好,若采用auc指標或5-nn或svm算法,則s2效果更好。分析兩者的實驗策略和實驗結果可以發(fā)現其存在以下問題:1)特征選擇和取樣選擇的組合策略不合理四種場景中,s2和s4所獲得的訓練數據集是低維平衡數據集,而s1和s3所獲得的訓練數據集是低維不平衡數據集。其所采用的分類算法均為傳統(tǒng)分類算法。由此,s1和s3所獲得的結果并不符合預處理的最終處理目標。策略組合的關鍵并不在于最終的數據集形成于原數據集還是取樣數據集,關鍵應該在于特征選擇方法與取樣方法的先后順序,以及特征選擇基于的數據集是原始數據集還是取樣數據集,而取樣方法基于的數據集是原始數據集還是特征選擇后的數據集。抑或是兩者是作為兩個獨立的過程進行。不論采用何種策略,若采用的分類算法是傳統(tǒng)算法,預處理的目標應該是將具有高維不平衡特性的數據集轉化為低維平衡數據集。而這四種場景,僅有兩種場景最終的數據集是低維平衡數據集。2)特征選擇方法和取樣方法不完備上述實驗所采用的特征選擇方法均是過濾式方法,即特征選擇基于數據集,與所選擇的分類算法無關,而取樣方法僅僅考慮欠取樣一種。過濾式方法僅從數據集本身考慮,但面對不同分類算法時,效果將各有不同,而欠取樣是一種減少數據集數量的做法,當訓練數據較少,或者說少數類較少時,這樣的小樣本將影響分類的效果。因此,從特征選擇方法和取樣方法來說,其選擇的方法應更為完備。3)實驗結果的分析不充分khoshgoftaar的研究結果顯示,先取樣的場景優(yōu)于特征選擇的場景,而最終訓練數據集的形成是在原始數據上,還是在取樣數據上則影響不大。這一結果可以理解為,若先進行特征選擇,則數據集是不平衡數據集,特征選擇方法仍是傳統(tǒng)方法,這樣將影響最終的結果,若預先取樣,則可以先消除不平衡,使得特征選擇方法發(fā)揮正常的作用。據此理解,其結論有一定合理性。但shanab的結果卻顯示,s2和s3優(yōu)于s4,這一結果與khoshgoftaar的結果有一定的出入,也就是說,先取樣,還是先特征選擇差別不大,但是在原始數據集上訓練的效果優(yōu)于取樣數據集上。為何相似策略,其結論有一定差別?khoshgoftaar的實驗數據集僅針對軟件缺陷檢測領域,不能說明其通用性,而shanab的實驗方案盡管更為通用,但是其在實驗過程中,考慮了噪聲問題,引入了更多的不確定性。之所以在原始數據集上訓練的效果優(yōu)于取樣數據集上,主要因為欠取樣技術減少了訓練數據集的數量,shanab實驗選擇的數據集的數量和少數類的數量相對較少的情況下,在更多數據上的分類效果將更好。實驗所用數據集全部來自于加州大學爾灣分校機器學習小組所維護的一個數據挖掘公共數據庫[159]。對來自于分類任務的142個數據集按照以下原則進行了篩選:1)按照三個屬性區(qū)間篩選:[25,100],[100-1000]和1000以上;2)選擇類分布不平衡的數據集;3)選擇在屬性區(qū)間范圍內的類別分布平衡的多分類數據集。之所以選擇uci數據集并按此三個原則進行篩選,理由如下:1)uci數據集是機器學習和數據挖掘比較公認的標準數據集,大量的挖掘算法研究和應用所采用的數據集都是來源此,選擇uci數據集可使后續(xù)研究者重現實驗過程;2)屬性區(qū)間設置是為了對比不同維數的數據集在各種方法下的性能體現,分析算法受維數的影響程度,對于1000維以上的數據集,僅在1000附近選擇,是因為選擇對比的預處理方法是基于weka實現,weka中的算法對于性能有一定的要求,而屬性過高的數據屬于超高維數據,因此不在論文的考慮范圍之內;3)類分布不平衡一方面是由于數據的某些類別稀少本身的特性所決定,另一方面是由于一些算法處理原因而人為造成的不平衡,例如有些算法僅僅適用于二分類問題,此時,需要將多分類問題轉化為二分類問題,則極有可能人為地造成類分布不平衡,因此滿足屬性選擇區(qū)間的數據集,如果是多分類問題,也屬于實驗數據集的考慮范圍之內。uci的分類數據集中,屬性個數大于25的數據集有53個,根據篩選原則獲得來自于圖像識別、垃圾郵件識別、web應用和錯誤診斷等四個應用領域的七個數據集。上述數據集中有些數據屬性存在一定的缺失、有些則屬于多分類問題,因此需要對原始數據進行相應的處理。下述是有關數據集的說明以及處理方法。1)鋼板缺陷數據集(steelplatesfaults):由意大利的通信科學semeion研究中心提供。每個實例代表的是一個不銹鋼片的表面缺陷。有七種不同類型的缺陷,缺陷由27個屬性描述。這些屬性表示了缺陷的幾何形狀和輪廓。共有1941個實例[160]。steel數據集是一個多分類問題。根據steel數據集的六種數據類型將其轉化為七個二分類數據集。其中一個類別是某一特定的缺陷,而另一個類別則是其他所有的曲線,分類目的則轉化為有效地區(qū)分特定類型的缺陷與其他類型的缺陷。由于前五個類別是特定類型的曲線,而第七個類別是泛指非此五種缺陷的其他缺陷,其占據整體數據集大約30%多的比例,將其考慮為一個分類問題意義不大,因此將其刪除,獲得6個二分類數據集。由于6個數據集中每兩個數據集的不平衡率相似,分別為(dirtiness,stains)、(pastry,z_scratch)和(k_scratch,bumps),僅需選擇3個數據集為代表即可。以c4.5為基準算法在此三對數據集的每對中選擇正類的tprate稍低的數據集作為最終的實驗數據集,分別為dirtiness、pastry和bumps。2)地球資源衛(wèi)星數據集(staloglandsatsatellite):stalog數據集是一個衛(wèi)星圖像的某一子區(qū)域。這個區(qū)域包含82*100個像素。數據集中的每一行對應的是這個82*100的子區(qū)域中的3*3的鄰域。每一行都對應3*3鄰域中9個像素的四個光譜帶的像素值,因此形成了36個屬性。一個像素值是一個8位位串,數值0對應為黑色,數值255對應為白色。類標號表示中心像素的類別(7個類別),分別以數字表示,1代表redsoil,2代表cottoncrop,3代表greysoil,4代表dampgreysoil,5代表soilwithvegetationstubble,6代表mixtureclass,7代表verydampgreysoil。由于第六類沒有實例,因此實際上數據集的類別為六類。數據以隨機方式排序,一些數據線已被移除,因此無法根據數據重構圖像。類似于steel數據,將stalog數據也轉化為二分類數據集,由此形成了6個數據集,這6個數據集中每三個數據集的不平衡率相似,分別為(1,2,3)和(4,5,6)。和steel的選擇原則類似,從這兩組數據中各選一個數據集獲得最終實驗數據集(3,4)3)垃圾郵件數據集(spambase):垃圾郵件數據集的每一行代表一封郵件是否是垃圾郵件。大部分的屬性表示某些單詞或字符是否在郵件中頻繁出現。數據集有57個屬性,其中有48個取值范圍在[0-100]的連續(xù)屬性,這些屬性記錄的是一些單詞在郵件中出現的頻率。有6個范圍在[0-100]的連續(xù)屬性用于記錄字符在郵件中出現的頻率。剩下的三個連續(xù)屬性表示用來記錄郵件中連續(xù)大寫字母長度的不同度量(平均值,最長值和總數)。最后一個屬性是表示該郵件是否是垃圾郵件的類標號。0表示不是垃圾郵件,1表示是垃圾郵件。數據集共有4601個實例,但是數據集中的某些屬性存在缺失,由于實驗數據比較充分,對缺失數據采取刪除的策略,由此獲得個實例,其中垃圾郵件1813個,非垃圾郵件2788個。4)麝香數據集(musk):musk數據集是一個描述102個分子的數據集合,其中39個由人類專家判定為麝香,剩余的63個分子判定為非麝香。分類的目標是通過學習,預測一個新分子是否是麝香。由于鏈接(bond)可以旋轉,單個分子可以展現不同的形狀。此數據集根據分子的所有低能量形態(tài)產生了6598個形態(tài)。其中特征依賴于分子的確切形狀或形態(tài),抽取了166個特征用于描述每個形態(tài)。剩余兩個屬性分別為分子名和構造名。除了166個特征外還有兩個屬性,分別為分子名和形態(tài)名,這兩個屬性不能用于分類,因此將其刪除。5)因特網廣告數據集(internetadvertisements):因特網廣告數據集包含了3279個實例,這些實例代表了嵌入在web頁面中的圖像和單詞。特征包括圖像的維,文檔或圖像的url中的詞組,圖像anchortag中或附近出現的文本,類標號表示為一個圖像是否是廣告。原始類分布為非廣告2821個實例,廣告458個實例。但數據中一些屬性存在28%左右的缺失,對于缺失數據采取刪除的策略,由此獲得非廣告實例1978個,廣告實例381個。6)手寫體數字光學識別數據集(optidigits):optidigits數據集來自于43個人手寫的0到9的數字,其中30個人的手寫數字作為訓練數據集,剩下的13個人的手寫數字作為測試數據集。預先打印的手寫數字圖像通過nist提供的預處理程序抽取為位圖的形式。32*32為位圖被劃分為不覆蓋的4*4塊,計算每個塊里的像素數。由此產生一個8*8的輸入矩陣,其中每個元素是0-16的整數,由此形成64個屬性維。類標號為手寫數字。由于各數字的分布均衡,首先將其轉化為二分類問題。轉換的方式有兩種:(1)取其中一個數字為正例,剩余數字為反例。(2)由于2,3,5,7,8這幾個數字容易混淆,因此先刪除非2,3,5,7,8的實例,取其中一個作為正例,剩余作為反例。由此將產生15個數據集,根據前述類似的原則,選擇tprate較低的數據集,第一種情況選擇了數字8作為正例,形成數據集optidigitsa-8;第二種情況選擇數字3作為正例,形成數據集optidigitp-3。7)手寫體數字數據集(semeionhandwrittendigit):semeion數據集來自于80個人的1593個手寫數字。這些數字在一個灰度范圍為256的16*16的矩形中被拉伸。每個圖像的每個像素使用一個固定的域值被掃描為一個布爾值(每個像素值小于等于127位0,大于127為1)。每個人寫0到9共十個數字兩遍,其中第一次以正常的方式寫,第二次以快速的方式寫。數據集中的每一條記錄表示一個手寫數字,屬性表示為像素。與optidigits的選擇原則類似,選擇出兩個數據集,分別為semeiona-8和semeionp-3。通過選擇和處理后最終獲得了12個數據集,論文的所有研究均是基于此12個數據集。總結選擇理由如下:(1)涉及多個領域;(2)存在本質不平衡情況和人為不平衡情況,符合現實世界數據特性;(3)uci數據集是數據挖掘公認的實驗數據集,對比實驗研究具有可再現性和可比性。(4)數據集屬性存在三個跨度,不平衡度也存在不同級別,滿足研究維數變化和不平衡程度對于算法的影響分析需求?;谏鲜隼碛?,選擇此12個數據集作為實驗研究基礎。根據上述實驗所存在的問題,本設計了更為合理的高維不平衡預處理策略,數據集的選擇上,充分考慮了不同的維數以及不平衡程度,涉及多個常見的具有高維不平衡數據的領域。相比于上述實驗,在實驗方案上更為全面,期望能夠對于采用預處理方法解決高維和不平衡數據分類有更為深入的認識。高維數據特征選擇方法有兩種:filter和wrapper。不平衡預處理方法主要指的是取樣方法,包括欠取樣和過取樣。高維和不平衡的處理策略無非就是兩種:先降維再平衡,還是先平衡再降維。劃分的原則是降維和取樣的先后順序以及各種降維方法與取樣方法的組合形式。在具體方法的選擇上,采用一些有效的通用方法。由于決策樹算法在實際應用中具有普遍性,而論文后續(xù)的研究所采用的基礎算法是決策樹算法。因此,此實驗僅考慮c4.5這一種分類算法。進行特征選擇與取樣方法組合實驗的主要目的是為了回答以下幾個問題:(1)在分類高維和不平衡數據時,數據預處理方法是否總是有效?(2)預處理高維不平衡數據時,特征選擇和取樣方法的先后順序如何,不同先后順序對于分類結果是否有影響?(3)預處理方法是否受到屬性個數和不平衡程度的影響?由于過濾式屬性選擇涉及選擇的屬性個數,在此根據隨機森林算法所建議的k參數的選值,若原始屬性個數為m,則特征選擇后的屬性個數為m。wrapper方法則根據搜索終止條件,選擇相應的子集。在分類器評價方面,則選擇不平衡數據分類中常用的auc面積作為評價標準。由于采用隨機取樣方法,每次取樣后所獲得的數據集將有所不同,由此所產生的分類器也將有所區(qū)別,為獲得更為準確率的實驗結論。采用重復取樣五次的方法,獲得五個不同的取樣數據集,再對此數據集上所產生的準確率平均作為最終的實驗結果。由此獲得實驗結果集中表頭包含了三部分信息:數據集名,小類所占比例以及未預處理時用c4.5分類的auc值。最左邊一列代表的是所采用的預處理策略,其中f1代表ig方法,f2代表relief方法,w1代表最佳優(yōu)先搜索,w2代表遺傳搜索。根據表4從以下幾個方面分析研究結果:1)先取樣還是先降維?即判定場景s1和場景s2在不同數據集上的性能。記錄了各個數據集分別在未預處理、場景s1和場景s2三種情況下的平均auc值。場景s1和s2的性能均優(yōu)于原始數據的分類性能,也就是說,對高維不平衡數據進行預處理是可以提升分類算法的性能的。僅在spam數據上出現一些反常的現象。分析其原因可以發(fā)現,spam的類別比例大約為4:6,并非完全的均衡,但是不均衡現象不明顯,因此預處理的方法未必能夠有正面的效果,反而可能造成分類性能的下降。另一個反常的現象出現在opt數據上,預處理后的平均auc值反而出現下降的情況。opt數據和sta數據都是采用獨立的測試數據集,而其他數據集所獲得的測試結果是采用十層交叉驗證。由于訓練數據進行了預處理,因此測試數據也相應的也要進行預處理,但是由于預處理所產生的差異,可能導致測試數據的分布不同于訓練數據,因此造成實驗結果的反?,F象。取樣和降維的先后順序,可以從兩個方面考慮,一方面是算法的執(zhí)行效率。另一方面是對分類算法的影響。從執(zhí)行效率方面看,如果采用過取樣的方法,取樣后降維極大了增加了程序的運行時間,尤其是在執(zhí)行wrapper算法時,filter類算法相比其具有明顯的時間優(yōu)勢。從對分類算法的影響看,實驗結果并非像khoshgoftaar所述,先取樣優(yōu)于先特征選擇。從s1和s2的兩個場景對比發(fā)現,有6個數據集,s1場景的平均auc值優(yōu)于s2場景的平均auc值。盡管兩者的效果相差不大,但是從整體趨勢來看,先特征選擇效果優(yōu)于先取樣。兩者之所以差別比較小是因為過取樣的分類準確率過高,使得平均準確率的差距不大。2)不同取樣方法和降維方法對后續(xù)分類算法是否有影響?從實驗結果看,采用過取樣方法,分類的auc值普遍提升,最大auc值達到了0.99,尤其是不平衡程度比較高的數據集。很明顯,過取樣方法展現了非常樂觀的預測性能。但這卻可能代表著過度擬合,可以觀察到,當數據比例嚴重失衡時,過取樣方法使得分類算法展現了近乎完美的性能。主要原因是對小類的有放回取樣,產生了大量的重復實例,在這些重復實例上的高準確率使得整體性能評價得到了提升。但對于不平衡比的傾斜比例不夠大的數據集,例如spam數據集,過取樣方法未必能夠展現好的性能,反而使得分類器的性能下降。因此,當數據的不平衡比例較大時,不建議采用過取樣方法。采用封裝式特征選擇的分類效果普遍優(yōu)于過濾式特征選擇的分類效果。而同類型方法間的性能差異則不大。值得注意的一點是,盡管采用最佳優(yōu)先搜索方式和遺傳搜索方式的性能差異不大,但是,在大部分情況下,采用遺傳搜索方式搜索的特征子集,并沒有展現優(yōu)于最佳優(yōu)先搜索方式的結果,反而出現比最佳優(yōu)先搜索略差的效果。3)數據的維度和類別的不平衡度對于預處理方法來說有何影響?在場景s2中,更為高維的數據的處理時間明顯高于低維數據,尤其是在過取樣后再進行特征選擇。采用過濾式特征選擇時,所獲得的特征選擇結果為,特征的排序,實驗按照固定取原始特征數的開方作為最終的特征數。而封裝式特征選擇則是直接按照選擇的特征子集確定最終的特征數。因此,封裝式特征選擇的特征數明顯多于過濾式,從實驗數據可以看出,封裝式特征選擇的效果不論是在場景s1還是s2,均優(yōu)于過濾式特征選擇。當數據的不平衡程度比較高的時,采用過取樣方法,很容易造成過度擬合的情況;當數據展現輕微的不平衡時,是否預處理的影響并不大,預處理可能還會造成分類性能的下降。總結此12個數據集上的實驗結果,可獲得以下實驗結論:1)先特征選擇的效果略優(yōu)于先取樣;2)數據不平衡比率較大時,建議采用欠取樣方法;3)當數據失衡比例不大時,不建議進行預處理;4)在封裝式特征選擇中,復雜的方法未必會獲得更優(yōu)的結果,如ga搜索的結果未必優(yōu)于最佳優(yōu)先搜索。上述結論并非是絕對的,僅僅是當前實驗設置下,展現的客觀實驗結果。由于數據集的不同以及算法參數的不同設置,也可能導致不同的實驗結論。但論文實驗方案經過了多方面的考慮,在類似的設置情況下,此四個結論對于具體實踐而言還是有一定的價值的。以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內。本發(fā)明要求保護范圍由所附的權利要求書及其等同物界定。當前第1頁12