梯度提升決策樹 (Gradient Boosting Decision Trees) 二分類,是經典的基於梯度提升(Gradient Boosting)的有監督學習模型,可以用來解決二分類問題。
支援計算資源
支援的計算引擎為MaxCompute。
演算法簡介
梯度提升決策樹 (Gradient Boosting Decision Trees) 二分類,是經典的基於梯度提升(Gradient Boosting)的有監督學習模型,可以用來解決二分類問題。
演算法原理
梯度提升決策樹模型構建了一個由多棵決策樹組成的組合模型。每一棵決策樹對應一個弱學習器,將這些弱學習器組合在一起,可以達到比較好的分類或迴歸效果。
梯度提升的基本遞推結構為:
其中,通常為一棵 CART 決策樹,為決策樹的參數,為步長。第m棵決策樹在前m-1棵決策樹的基礎上對目標函數進行最佳化。最終得到包含若干棵決策樹的模型。
演算法使用
該演算法實現中包含了XGBoost提出的二階梯度最佳化目標以及LightGBM的長條圖近似計算。對於一些常見的二分類問題,都可以使用這個演算法解決,模型擁有較好的效能,且擁有不錯的可解釋性。
該演算法支援稀疏向量格式與多列特徵格式的輸入。輸入為稀疏向量格式時,僅能選擇1個String類型的列,每條資料是以單個空格為分隔字元的索引值對,索引值之間用冒號分隔,例如:1:0.3 3:0.9
。輸入為多列特徵時,可以選擇多個Double、Bigint和String的列,包括了數值型特徵(numerical feature)與類型特徵(categorical feature)。對於數值型特徵,演算法會對資料進行分箱操作;對於類型特徵,不需要提前進行OneHot預先處理,演算法會使用 many-vs-many 的分裂策略。
該演算法要求二分類的類別必須為0和1。
當該組件與GBDT二分類預測V2組件成對執行完成後,訓練得到的模型支援部署為線上服務,詳細操作可以參考Pipeline部署線上服務。
可視化配置參數
輸入樁配置
輸入樁(從左至右) | 限制資料類型 | 建議上遊組件 | 是否必選 |
輸入資料 | 無 | 是 |
組件參數
頁簽 | 參數 | 是否必選 | 描述 | 預設值 |
欄位設定 | 是否為稀疏向量格式 | 否 | 輸入表中用於訓練的特徵列是否為稀疏向量格式。在稀疏向量格式中,每條資料是以單個空格為分隔字元的索引值對,索引值之間用冒號分隔,例如: | 否 |
選擇特徵列 | 是 | 輸入表中用於訓練的特徵列名數組。非稀疏向量格式時,支援類型double/bigint/string;稀疏向量格式時,支援string類型,並且只能選擇1列。 | 無 | |
選擇類型特徵列 | 否 | 非稀疏向量格式,選擇作為類型特徵(categorical feature)處理的列,其他列作為數值型特徵處理。 | 無 | |
選擇標籤列 | 是 | 輸入表中用於訓練的標籤列名。 | 無 | |
選擇權重列 | 否 | 輸入表中用於訓練的權重列名。 | 無 | |
參數設定 | 樹的數目 | 否 | 模型中樹的棵數。 | 1 |
最大分葉節點數 | 否 | 訓練每棵樹時,最多包含的分葉節點個數。 | 32 | |
學習速率 | 否 | 學習率。 | 0.05 | |
訓練樣本比例 | 否 | 訓練每棵樹時,樣本的採樣比例,範圍為 (0, 1]。 | 0.6 | |
訓練特徵比例 | 否 | 訓練每棵樹時,特徵的採樣比例,範圍為 (0, 1]。 | 0.6 | |
分葉節點最少樣本數 | 否 | 訓練每個樹時,各個葉子節點至少包含的樣本數量。 | 500 | |
最大分箱個數 | 否 | 連續特徵進行離散分箱時的最大分箱個數。該值越大,進行節點分裂時越精確,但計算代價越大。 | 32 | |
最多類別數 | 否 | 類型特徵最多允許的類別個數:對於一個類型特徵,所有出現的值按頻率從高到低排序後,序位多於該值的類別將合并到一個桶中。該值越大,進行節點分裂時越精確,但也更容易過擬合,計算代價也越大。 | 1024 | |
特徵數量 | 否 | 稀疏特徵時,填寫最大特徵ID+1;不填寫時需要掃描一遍資料計算。 | 根據輸入資料自動計算 | |
全域偏置項 | 否 | 初始預測為正樣本的機率值;不填寫時需要掃描一遍資料進行預估。 | 根據輸入資料自動計算 | |
隨機數產生器種子 | 否 | 隨機種子,用於採樣。 | 0 | |
執行調優 | 底層作業使用的計算資源 | 否 | 底層作業使用的計算資源:
| MaxCompute |
節點數 | 否 | 執行作業的節點數。 | 根據輸入資料自動計算 | |
每節點記憶體 | 否 | 節點所使用的記憶體數,單位為MB。 | 根據輸入資料自動計算 | |
線程數 | 否 | 使用多線程加速計算,但成本也更高;一般情況下,隨著線程數的增加,效能會先上升後下降;請謹慎調整線程數。 | 1 |
輸出樁說明
輸出樁 | 儲存位置 | 下遊建議組件 | 資料類型 |
模型輸出 | 不需要配置 | MaxCompute表 | |
特徵重要性輸出 | 不需要配置 | 無 | MaxCompute表 |
與PS-SMART二分類對比
如果您之前使用PS-SMART二分類訓練組件遇到了一些問題不容易解決,那麼可以嘗試使用GBDT二分類V2組件。兩個組件當前的功能和參數支援情況,見下表:
PS-SMART二分類參數 | 對應本組件的參數 |
是否稀疏格式 | 是否為稀疏向量格式 |
選擇特徵列 | 選擇特徵列 |
選擇標籤列 | 選擇標籤列 |
選擇權重列 | 選擇權重列 |
評估指標類型 | 不適用,預設為 AUC 指標,可以在 worker 日誌中查看。 |
樹數量 | 樹的數目 |
樹最大深度 | 最大分葉節點數:換算公式為: |
資料採樣比例 | 訓練樣本比例 |
特徵採樣比例 | 訓練特徵比例 |
L1懲罰項係數 | 暫不支援。 |
L2懲罰項係數 | 暫不支援。 |
學習速率 | 學習速率 |
近似Sketch精度 | 最大分箱個數:換算公式為: |
最小分裂損失變化 | 分葉節點最少樣本數:兩者不能直接換算,但都可用於控制過擬合。 |
特徵數量 | 特徵數量 |
全域偏置項 | 全域偏置項 |
隨機數產生器種子 | 隨機數產生器種子 |
特徵重要性類型 | 不適用,當前預設為資訊增益。 |
計算核心數 | 節點數:不能直接使用相同數值,推薦先試用系統自動分配,然後進行細調。 |
每個核記憶體大小 | 每節點記憶體:不能直接使用相同數值,推薦先試用系統自動分配,然後進行細調。 |