心智圖資源庫 整合學習
包含bagging與boosting兩大類演算法,介紹詳細,描述全面,希望對有興趣的小夥伴有幫助!
層次聚類
DBSCAN
K-means
模式識別
機器學習演算法工程師技能樹
機器學習演算法工程師
AdaBoost元演算法提高分類性能技巧思維導圖
機器學習之基本迴歸演算法
常見神經網路模型的類型及應用
神經網路與深度學習之循環神經網絡
整合學習(第一部分)
簡介
思想;建構並組合多個弱學習器來完成學習任務
圖解:
整合學習需要關注的兩個問題
單一弱學習器如何訓練?
方法一:改變訓練資料集的權重
方法二:改變訓練資料集的機率分佈
如何將各個弱學習器組合成強式學習器?
方法一:平行投票法
方法二:串行加權法
整合學習的兩大類
Bagging:基學習器間不存在強烈依賴關係,可同時產生的平行化方法
代表演算法
隨機森林
演算法思維:採用決策樹作為弱學習器,並將弱學習器按照Bagging的方式進行集成
隨機森林如何隨機? (透過改變資料集的機率分佈)
方法一:Forest-RI
每次建構訓練集都需要從資料集D中隨機抽取k個樣本,M個特徵中隨機抽取n個特徵
方法二:Forest-RC
每次建構訓練集都需要從資料集D的M個特徵中隨機抽取n個特徵做線性加權,形成包含F個新特徵的資料集。 (權重係數為[-1,1]的隨機數)
演算法步驟
第一步:選擇弱學習器(決策樹、KNN、邏輯迴歸等等)
第二步:根據隨機性建構訓練集
Forest-RI
Forest-RC
第三步:訓練目前的弱學習器
第四步:依投票機制判斷強學習器是否合格
投票機制:所有弱學習器結果的眾數
優缺點
優點
訓練時樹與樹之間是互相獨立的,訓練速度快
泛化誤差使用的是無偏估計,模型泛化能力強
自身俱有袋裝資料集,無需單獨換分交叉驗證集
面對不平衡、缺失資料集,模型準確率依舊較高
缺點
隨機森林在某些雜訊較大的分類或迴歸問題上會過度擬合
隨機森林參數較多,難以調參
最佳化
針對參數較多,難以調參問題
先對參數進行熟悉,再根據網格搜尋進行調參
參數對模型的影響圖解:
Boosting:基學習器間存在強依賴關係,必須串列產生的序列化方法
AdaBoost
演算法思維:每輪訓練一個弱學習器,前一輪的訓練樣本權重變化後作為後一輪弱學習器的訓練數據,最後將各個弱學習器通過線性加權的方式組合成集成模型
第二步:初始化或更新樣本權重
初始化樣本權重,即各個樣本權重相同
更新樣本權重,即降低分類正確的樣本權重,提升分類錯誤的樣本權重
第四步:計算目前弱學習器的權重
第一步:計算目前弱學習器的誤差率(分類錯誤的樣本數佔所有樣本數的比例)
第二步:根據誤差率計算目前弱學習器的權重
第五步:將目前弱學習器加入線性模型並判斷是否合格
線性模型
如何判斷?
強學習器的準確率
強學習器中弱學習器的數量
AdaBoost具有很高的精度
AdaBoost可將不同的分類演算法作為弱分類器,不拘泥於決策樹
參數訓練比較耗時
資料不平衡容易導致精確度遺失
弱分類器的數目不易確定
針對訓練耗時:採用前向分佈演算法加快參數最佳化
針對若分類器數目不易確定:採用交叉驗證輔助確定
GBDT(梯度提升樹)
提升樹
回歸提升樹:將多個弱回歸器簡單相加
分類提升樹:將多個弱分類器簡單相加
梯度提升樹:統一分類、回歸提升樹
演算法想法:採用CART迴歸樹作為弱學習器,根據弱學習器的損失建構新一輪的弱學習器,最終將所有弱學習器線性相加。
第二步:透過計算目前弱學習器的損失函數的負梯度(擬合殘差)以及資料集D的特徵與樣本的隨機抽樣來建構訓練集(隨機性)
第四步:將目前弱學習器加入線性模型並判斷是否合格
適合低維度資料且能處理非線性數據
採用一些健壯的損失函數,對異常值的穩健性非常強
由於兼具Bagging與Boosting的優勢,理論層次上高於隨機森林與adaboost
由於弱學習器之間存在依賴關係,難以並行訓練數據
資料維度較高時會加大演算法的計算複雜度
由於弱學習器為回歸器,因此無法直接用於分類
透過自採樣的SGBT來達到部分並行
XGboost:GBDT的高效實現,新增正規項與損失函數的二次泰勒展開擬合
LightGBM:XGBoost的高效實現,將連續的浮點特徵離散成k個離散值,並建構寬度為k的Histogram,加快計算速度、節省空間資源