機器學習-集成學習(ensemble learning)方法概述

集成學習(ensemble learning)方法

通過建立幾個模型組合來解決單一預測問題,其工作原理是在數據集上構建多個分類器/模型,各自獨立學習和做出預測,這些預測最後結合成單預測,因此優於任何一個單分類器做出的預測

  • 不是一個單獨的機器學習的算法阿
  • 現在各種演算法競賽中,隨機森林、梯度提升樹(GBDT)、Xgboost隨處可見
  • sklearn中的集成學習方法位於sklearn.ensemble

集成演算法

  • 多個演算法模型集成成為的模型叫做集成評估器(ensemble estimator)
  • 組成集成評估器的每個演算法模型都叫做基評估器(base estimator)
  • 通常分為三類:
    • 裝袋法(Bagging)
      • 構建多個相互獨立的評估器(彼此建立的過程互不干擾)
      • 對其預測進行平均多數表決原則來決定結果
      • 隨機森林
      • 單獨一個基評估器判斷準確率至少要超過50%,才可以確保集成評估器的表現會比基評估器好;否則集成評估器的效果會劣於基評估器。在使用隨機森林之前,一定要檢查,用來組成隨機森林的分類樹是否都至少有50%的預測正確率

    • 提升法(Boosting)
      • 基評估器是相關的(是按順序構建的)
        • 第一次採樣訓練,對於判斷錯誤的樣本,在下一次採樣訓練模型的過程中,會增加其權重,使其更容易被下一個建立的評估器提取到,不斷循環
        • 在一次次建模的過程中,對難以評估特徵的樣本進行強力的預測,構建出一個強評估器
      • Adaboost、梯度提升樹
    • stacking

集成算法目標

集成算法會考慮多個estimator建模的結果,匯總後得到一個綜合的結果

  • 以此來獲取比單個模型更好的回歸或分類表現