集成方法(ensemble method)又叫元算法(meta-algorithm):將不同的分類器組合起來。
通俗的說:就是三個臭皮匠賽過諸葛亮。做決定時,考慮多個人的意見,不是一個人的意見
集成方法:
1. bagging(自舉匯聚法):基于數據隨機重抽樣的分類器構建方法。并行算法
2. boosting(再學習):基于所有分類器的加權求和的方法。? ? ? ? ? ? ? 串行算法。
bagging:從原始數據集選擇S次后得到S個新數據集的一種技術。新數據集和原數據集的大小相等。
其實就是有放回采樣,獲得一個和原來大小一樣的新數據集。這個新數據集可能會有重復值,原始數據集的某些值在新數據集中可能不在出現。
用這樣的方法構建S個新的數據集參與訓練,就會得到S個分類器。測試新數據時,送到S個分類器里,得到的結果投票,數量最多的就是分類結果(得民心者得天下)。
boosting:串行訓練。第一個訓練完,第二個在第一個的基礎上接著訓練。重點關注前面分類器錯分的數據(說白了就是背鍋俠,前面哥們犯的錯,后面的去解決)。
目前 bagging 方法最流行的版本是: 隨機森林(random forest)
選男友:美女選擇擇偶對象的時候,會問幾個閨蜜的建議,最后選擇一個綜合得分最高的一個作為男朋友
目前 boosting 方法最流行的版本是: AdaBoost
追女友:3個帥哥追同一個美女,第1個帥哥失敗->(傳授經驗:姓名、家庭情況) 第2個帥哥失敗->(傳授經驗:興趣愛好、性格特點) 第3個帥哥成功
bagging和boosting共同點和差異點:
- bagging 是一種與 boosting 很類似的技術, 無論是boosting還是bagging,所使用的多個分類器的類型(數據量和特征量)都是一致的(就是說要用KNN,都用KNN,要用決策樹,那就都用決策樹)。
- bagging 是由不同的分類器(1.數據隨機化 2.特征隨機化)經過訓練,綜合得出的出現最多分類結果;boosting 是通過調整已有分類器錯分的那些數據來獲得新的分類器,得出目前最優的結果。
- bagging 中的分類器權重是相等的;而 boosting 中的分類器加權求和,所以權重并不相等,每個權重代表的是其對應分類器在上一輪迭代中的成功度。(就是說bagging投票是一人一票,權重相等。而boosting權重不等,可能有的權重大,有的權重小)
?
?