根據所給演算法描述,好像只能同質 整合。
adaboost是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器(弱分類器),然後把這
adaboost
些弱分類器集合起來,構成乙個更強的最終分類器(強分類器)。
其演算法本身是通過改變資料分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新資料集送給下層
分類器進行訓練,最後將每次訓練得到的分類器最後融合起來,作為最後的決策分類器
。使用adaboost分類器可以排除一些不必要的訓練資料特徵,並放在關鍵的訓練資料上面。
boosting族演算法中最著名的代表是adaboost
這就是adaboost的結構,最後的分類器ym是由數個弱分類器(weak classifier)組合而成的,相當於最後m個弱分類器來投票決定分類,而且每個弱分類器的「話語權」α不一樣。
這裡闡述下演算法的具體過程:
a).訓練弱分類器ym(),使其最小化權重
誤差函式(weighted error function):
b)接下來計算該弱分類器的話語權α:
c)更新權重:
演算法:
看的雲裡霧裡的有木有,反正我是,但是我們又大牛給出了詳細的例子,我都看懂了。哈哈
下面我們舉乙個簡單的例子來看看adaboost的實現過程:
圖中,「+」和「-」分別表示兩種類別,在這個過程中,我們使用水平或者垂直的直線作為分類器,來進行分類。
第一步:
根據分類的正確率,得到乙個新的樣本分佈d
2?,乙個子分類器h
1其中劃圈的樣本表示被分錯的。在右邊的途中,比較大的「+」表示對該樣本做了加權。
第二步:
根據分類的正確率,得到乙個新的樣本分佈d3
,乙個子分類器h2
第三步:
得到乙個子分類器h
3整合所有子分類器:
因此可以得到整合的結果,從結果中看,即使簡單的分類器,組合起來也能獲得很好的分類效果,在例子中所有的。
adaboost演算法的某些特性是非常好的,在我們的報告中,主要介紹adaboost的兩個特性。一是訓練的錯誤率上界,隨著迭代次數的增加,會逐漸下降;二是adaboost演算法即使訓練次數很多,也不會出現過擬合的問題。
最後,我們可以總結下adaboost演算法的一些實際可以使用的場景:
1)用於二分類或多分類的應用場景
2)用於做分類任務的baseline
無腦化,簡單,不會overfitting,不用調分類器
3)用於特徵選擇(feature selection)
4)boosting框架用於對badcase的修正
只需要增加新的分類器,不需要變動原有分類器
由於adaboost演算法是一種實現簡單,應用也很簡單的演算法。adaboost演算法通過組合弱分類器而得到強分類器,同時具有分類錯誤率上界隨著訓練增加而穩定下降,不會過擬合等的性質,應該說是一種很適合於在各種分類場景下應用的演算法。
Boosting演算法總結
adaboosting 通過前向分步法,優化損失函式,為指數損失函式,然後梯度上公升樹。可以 任意分類器作為弱分類器。優化步長,與迭代次數。gbdt 回歸問題 1 擬合殘差 2 cart樹 3 擬合負梯度 分類問題 1 改變擬合loss,比如 邏輯回歸,對數損失,adaboost 指數損失。2 訓練...
Boosting演算法學習
1 提公升演算法 boosting 是常用的有效的統計學習演算法,屬於迭代演算法,它通過不斷地使用乙個弱學習器彌補前乙個弱學習器的 不足 的過程,來序列地構造乙個較強的學習器,這個強學習器能夠使目標函式值足夠小。2 bagging也是一種常用的統計學習方法,兩者經常放在一起對比,它們不同的是,bag...
Bagging和Boosting 概念及區別
文章 自liuwu265的部落格 bagging和boosting都是將已有的分類或回歸演算法通過一定方式組合起來,形成乙個效能更加強大的分類器,更準確的說這是一種分類演算法的組裝方法。即將弱分類器組裝成強分類器的方法。首先介紹bootstraping,即自助法 它是一種有放回的抽樣方法 可能抽到重...