提高分類準確率的技術 組合分類

2021-07-03 10:13:46 字數 2217 閱讀 1510

基本思想:組合分類把k個學習得到的模型(或基分類器)m1,m2,···,mk組合在一起,旨在建立乙個改進的復合分類器模型m*。使用給定的資料集d建立k個訓練集d1,d2,···,dk,其中di用於建立分類器mi。現在給定乙個待分類的新資料元組,每個基分類器通過返回類**進行投票。組合分類器基於基分類器的投票返回類**。

目前常用的組合分類器有:裝袋、提公升和隨機森林。下面就對這三種分類器依次作介紹。

演算法:裝袋。裝袋演算法——為學習方案建立組合分類模型,其中每個模型給出等權重**。

輸入

輸出:組合分類器——復合模型m∗

方法

for i = 1 to k do

通過對d

有放回抽樣,建立自助樣本di

使用di 和學習方法匯出模型mi

endfor

使用組合分類器對元組x分類:讓k個模型都對x分類並返回多數表決

注意:這裡的每個基分類器具有相同的投票權重

在提公升方法中,權重賦予每個訓練元組。迭代地學習

k 個分類器。學習得到分類器mi

之後,更新權重,使得其後的分類器mi

+1」更關注「mi

誤分類的訓練元組。最終提公升的分類器m∗

組合每個個體分類器的表決,其中每個分類器投票的權重是其準確率的函式。

adaboost(adaptive boosting)是一種流行的提公升演算法。

演算法:adaboost.一種提公升演算法——建立分類器的組合。每個給出乙個加權投票。

輸入

輸出:乙個復合模型。

方法

將d中每個元組的權重初始化為1/

d for

i = 1 to do

根據元組的權重從

d中又放回抽樣,得到di

使用訓練集di

匯出模型mi

計算mi

的錯誤率er

ror(

mi)=

∑dj=

1wi×

err(

xj) ,其中,er

r(xj

)={0

,xj被

正確分類

1,xj

被誤分類

,wi表示元組的權重值

if err

or(m

i)> 0.5 then//這一步的作用是為了避免所產生的分類器效果太差轉步驟3重試

endif

for di

的每個被正確分類的元組 do// 這一步是用來更新被正確分類的元組的權重值元組的權重wi

=wi×

erro

r(mi

)1−e

rror

(mi)

規範化每個元組的權重//將所有元組的權重值進行規範化,規範化後的結果,會發現被正確分類的元組權重降低,而被誤分類元組的權重值上公升endfor

使用組合分類器對元組x分類:

將每個類的權重初始化為0

for

i = 1 to kdo

wi=l

og1−

erro

r(mi

)err

or(m

i)//獲得基分類器的權重值c=

mi(x

)//獲得基分類器的分類結果將wi

加到類c 的權重//將不同類的基分類器權重進行求和

endfor

返回具有最大權重的類

需要注意的是,這個方法存在結果復合模型對資料過分擬合的危險。

隨機森林可以使用裝袋隨機屬性選擇結合起來構建。

演算法:forest-ri.一種隨機森林演算法

輸入

分類 準確率

準確率是乙個用於評估分類模型的指標。通俗來說,準確率是指我們的模型 正確的結果所佔的比例。正式點說,準確率的定義如下 accuracy number of correct predictionstotal number of predictions 對於二元分類,也可以根據正類別和負類別按如下方式計...

第八章 AdaBoost演算法(提高分類準確率)

adaboost是一種流行的提公升 提高分類準確率的組合分類方法 演算法。它是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器,即弱分類器,然後把這些弱分類器集合起來,構造乙個更強的最終分類器。演算法本身是改變資料分布實現的,它根據每次訓練集之中的每個樣本的分類是否正確,以及上次的總體分...

第八章 AdaBoost演算法(提高分類準確率)

adaboost是一種流行的提公升 提高分類準確率的組合分類方法 演算法。它是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器,即弱分類器,然後把這些弱分類器集合起來,構造乙個更強的最終分類器。演算法本身是改變資料分布實現的,它根據每次訓練集之中的每個樣本的分類是否正確,以及上次的總體分...