1. 程式人生 > 其它 >LCE:一個結合了隨機森林和XGBoost優勢的新的整合方法

LCE:一個結合了隨機森林和XGBoost優勢的新的整合方法

隨機森林 [Breiman, 2001] 和 XGBoost [Chen and Guestrin, 2016] 已成為解決分類和迴歸的許多挑戰的最佳機器學習方法。Local Cascade Ensemble (LCE) [Fauvel et al., 2022] 是一種新的機器學習方法, 它結合了它們的優勢並採用互補的多樣化方法來獲得更好的泛化預測器。因此,LCE 進一步增強了隨機森林和 XGBoost 的預測效能。

本文介紹了 LCE 和相應的 Python 包以及一些程式碼示例。LCE 包與 scikit-learn 相容並通過了 check_estimator測試,所以它可以 非常方便的整合到scikit-learn 管道中。

LCE 簡介

整合方法的構建涉及結合相對準確和多樣化的個體預測器。有兩種互補的方法可以生成不同的預測變數:(i)通過改變訓練資料分佈和(ii)通過學習訓練資料的不同部分。

LCE 採用了這兩種多樣化的方法。(i) LCE 結合了兩種眾所周知的方法,這些方法可以修改原始訓練資料的分佈,並具有對偏差-方差權衡的互補效應:bagging [Breiman, 1996](方差減少)和boosting [Schapire, 1990 ](減少偏差)。(ii) LCE 學習訓練資料的不同部分,這樣可以捕獲基於分而治之策略(決策樹)無法發現的全域性關係。在詳細介紹 LCE 如何結合這些方法之前,我們先介紹它們背後的關鍵概念,這些概念將用於解釋 LCE。

偏差-方差權衡定義了學習演算法在訓練集之外泛化的能力。高偏差意味著學習演算法無法捕捉訓練集的底層結構(欠擬合)。高方差意味著演算法對訓練集的學習過於緊密(過擬合)。所有訓練的目標都是最小化偏差和方差。

Bagging 對方差減少有主要作用:它是一種生成多個版本的預測器(bootstrap replicates)並使用它們來獲得聚合預測器的方法。目前 bagging 的最先進的方法是隨機森林。

Boosting 對減少偏差有主要作用:它是一種迭代學習弱預測器並將它們相加以建立最終強預測器的方法。新增弱學習器後,重新調整資料權重,讓未來的弱學習器更多地關注先前弱學習器預測錯誤的示例。目前使用提升的最先進的方法是 XGBoost。圖 1 說明了 bagging 和 boosting 方法之間的區別。

圖 1. plant diseases資料集上的 Bagging 與 Boosting。n - 估計器的數量。

新整合方法 LCE 結合了 boosting-bagging 方法來處理機器學習模型面臨的偏差-方差權衡;此外,它採用分而治之的方法來個性化訓練資料不同部分的預測誤差。LCE 如圖 2 所示。

圖 2. plant diseases資料集上的 Local Cascade Ensemble,參考圖 1,藍色為 Bagging,紅色為 Boosting。n — 樹的數量,XGB — XGBoost。

具體來說,LCE 基於級聯泛化:它按順序使用一組預測器,並在每個階段向輸入資料集新增新屬性。新屬性來自預測器(例如,分類器的類概率)給出的輸出,稱為基礎學習器。LCE採用分治策略(決策樹)在區域性應用級聯泛化,並通過使用基於提升的預測器作為基礎學習器來減少決策樹的偏差。LCE 採用當前效能最好的最先進的 boosting 演算法作為基礎學習器(XGBoost,例如圖 2 中的 XGB¹⁰、XGB¹¹)。在生成樹的過程中,將每個決策節點處的基學習器的輸出作為新屬性新增到資料集(例如,圖 2 中的 XGB¹⁰(D¹))來沿樹向下傳播提升。預測輸出表明基礎學習器正確預測樣本的能力。在下一個樹級別,新增到資料集的輸出被基礎學習器用作加權方案,這樣可以更多的關注先前錯誤預測的樣本。最後通過使用 bagging 來減輕由提升樹產生的過擬合。Bagging 通過從隨機抽樣中建立多個預測變數並替換原始資料集(例如,圖 2 中的 D¹、D²)以簡單多數票聚合樹來降低方差。LCE 在每個節點中儲存由基學習器生成的模型。

對於缺失資料的處理。與XGBoost類似,LCE排除了分離的缺失值,並使用塊傳播。在節點分離過程中,塊傳播將所有缺失資料的樣本傳送到錯誤較少的決策節點一側。

LCE 的超引數是基於樹的學習中的經典超引數(例如,max_depth、max_features、n_estimators)。此外,LCE 在樹的每個節點上學習一個特定的 XGBoost 模型,它只需要指定 XGBoost 超引數的範圍。然後,每個 XGBoost 模型的超引數由 Hyperopt [Bergstra et al., 2011] 自動設定,這是一種使用 Parzen 估計樹演算法的基於順序模型的優化。Hyperopt 從先前的選擇和基於樹的優化演算法中選擇下一個超引數。Parzen 估計樹的最終結果一般與超引數設定的網格搜尋和隨機搜尋效能相當並且大部分情況下會更好。

完整文章

https://avoid.overfit.cn/post/c10cc8f023484c95bab2bff5dd37c74c