整合學習(Boosting,Bagging和隨機森林)
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

         今天看了一下整合學習部分,把相關知識點總結了一下。這個是無公式版,想看公式的話,請看《機器學習》–周志華  這本書。

  1. 通過結合多個學習器完成學習任務,也叫“多分類器系統”、“基於委員會的學習”等。如果整合在一起的學習器都是同一種學習器(例如都是神經網路或者決策樹),這種整合叫做“同質整合”,相應的學習器叫做“基學習器”,應用的演算法叫做“基學習演算法”。如果整合在一起的學習器不是同一種學習器(例如其中包括神經網路和決策樹),這種整合叫做“異質整合”,相應的學習器叫做“元件學習器”或“個體學習器”。
  2. 整合的目的是獲得比通過使用一個學習器獲得更好的效果。例如,通過將弱學習器整合,來獲得更好的較強的學起器。但通常進行的都是較強學習期的整合。(弱學習器:指泛化效能略優於隨機猜測的學習器。例如在二分問題上精度略高於50%的分類器。)
  3. 要獲得較好的整合效果,應該要求學習器“好而不同”。(好而不同的意思是,單個學習器要有一定的“準確性”,而且學習器之間要有差異。)整合結果通過“投票法”得出。(如果投票結果相同,可隨機選擇。)如何產生“好而不同”的個體學習器,才是整合學習的核心。
  4. 整合學習分為2類:1)個體學習器間存在強大依賴關係、必須序列生成的序列化方法,代表演算法:Boosting;2)個體學習器間不存在依賴關係、可同時生成的並行化方法,代表演算法Bagging和“隨機森林”RF。
  5. Boosting是一族可以將若學習器提升為強學習器的演算法,代表演算法為AdaBoost。該演算法的工作機制:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器做錯的訓練樣本在後續受到更多關注,然後基於調整後的樣本分佈來訓練下一個基學習器。如此反覆進行,直至學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。
  6. Bagging是並行式整合學習代表方法。基於“自助取樣法”(bootstrap sampling)。自助取樣法機制:給定包含m個樣本的資料集,我們先隨機取出一個樣本放入取樣集中,再把該樣本放回初始資料集,使得下一次取樣時該樣本還會被採到。這樣,經過m次樣本採集,我們得到包含m個樣本的取樣集。取樣集中,有的樣本出現過很多次,有的沒有出現過。Bagging機制:我們取樣出T個含m個樣本的取樣集。然後基於每個取樣集訓練出一個學習器,再將學習器進行結合。對分類任務使用投票法,對迴歸任務採用平均值法。
  7. AdaBoost VS Bagging:AdaBoost只適用於二分類任務,Bagging適用於多分類、迴歸等任務。
  8. 隨機森林RF:以決策樹為基學習器構建Bagging整合,進一步在決策樹的訓練過程中引入隨機屬性選擇。傳統決策樹在選擇劃分屬性的時候是在當前節點所有的屬性集合中選出一個左右屬性進行劃分;而在RF中,對基決策樹的每個節點,先從該節點的屬性集合中隨機選擇一個包含k個屬性的子集,然後再從這個子集中選擇一個最優屬性用於劃分。這裡的引數k控制了隨機性的引入程度。如果k=d(全部屬性集),則基決策樹的構建=傳統決策樹構建。如果k=1,基決策樹每個節點隨機選擇一個屬性進行劃分。一般推薦k=log2d。
  9. Bagging VS 隨機森林:Bagging中基學習器的“多樣性”通過樣本擾動(對初始訓練集取樣)而獲得;隨機森林中基學習器的“多樣性”不僅來自於樣本擾動,而且還可以通過隨機屬性擾動來獲得。這使得隨機森立的泛化效能可通過個體學習器之間差異程度的增加而進一步提升。隨機森林的使其效能很差,但隨著學習器的增加,效能很快就會變好,且強於Bagging。

相關文章

程式語言 最新文章