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