我們學(xué)過決策樹、樸素貝葉斯、SVM、K近鄰等分類器算法,他們各有優(yōu)缺點;自然的,我們可以將這些分類器組合起來成為一個性能更好的分類器,這種組合結(jié)果被稱為 集成方法 (ensemble method)或者 元算法 (meta-method)。使用集成算法時有多種形式:
不同算法的集成
同一種算法在不同設(shè)置下的集成
數(shù)據(jù)集不同部分分配 給不同分類器之后的集成
1、bagging 和boosting綜述
bagging 和boosting中使用的分類器類型都是一樣的,即上述第二種形式。
bagging,也稱為自舉匯聚法(boostrap aggegating) 是在原始數(shù)據(jù)集中有放回的選擇S次后得到S個新數(shù)據(jù)集的一種技術(shù)。新數(shù)據(jù)集和原數(shù)據(jù)集大小相等,但是有可能某一條數(shù)據(jù)被選擇了好幾次,而原數(shù)據(jù)集中某些數(shù)據(jù)在新數(shù)據(jù)集中可能不出現(xiàn)。在S個數(shù)據(jù)集建好之后,將某個算法分別作用于每個數(shù)據(jù)集就得到S個分類器。對新數(shù)據(jù)集進(jìn)行分類時,就用這S個分類器進(jìn)行分類,與此同時,選擇分類器投票結(jié)果中最多的的類別作為最終分類結(jié)果,如圖1所示。Random Forests是一種更先進(jìn)的bagging算法,下文詳細(xì)介紹。
boosting 與bagging很類似,不同的是Boosting是通過串行訓(xùn)練而獲得的,而每個新分類器都是根據(jù)已經(jīng)訓(xùn)練好的分類器的性能來進(jìn)行訓(xùn)練的。AdaBoost是這一種常用的boosting方法。