XGBoost算法在Boosting算法的基礎上進行了擴展和升級,具有較好的易用性和魯棒性,被廣泛用在各種機器學習生產系統和競賽領域,該算法支持分類和回歸。XGBoost訓練組件在XGBoost算法的基礎上進行了包裝,使功能和PAI更兼容,更易用。本文為您介紹XGBoost訓練組件的配置方法。
使用限制
支持的計算引擎為MaxCompute、Flink和DLC。
數據格式
當前支持Table格式和LibSVM格式的數據。
Table格式示例如下:
f0
f1
label
0.1
1
0
0.9
2
1
LibSVM格式示例如下:
示例數據
1 2:1 9:1 10:1 20:1 29:1 33:1 35:1 39:1 40:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1
0 0:1 9:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 115:1 121:1
1 2:1 8:1 18:1 20:1 29:1 33:1 35:1 39:1 41:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1
0 2:1 9:1 13:1 21:1 28:1 33:1 36:1 38:1 40:1 53:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 97:1 105:1 113:1 119:1
0 0:1 9:1 18:1 20:1 22:1 33:1 35:1 38:1 44:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 115:1 121:1
0 0:1 8:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 116:1 121:1
可視化配置組件參數
Designer支持通過可視化方式,配置XGBoost訓練組件參數。
頁簽 | 參數名稱 | 類型 | 參數描述 |
字段設置 | 標簽列名 | 字符串 | 標簽列名。 |
特征列名數組 | 字符串數組 | 表格數據中特征列。和向量列名互斥,代表輸入數據的格式為表格數據。 | |
向量列名 | 字符串 | LibSVM格式數據列名,和特征列名數組互斥。代表輸入數據的格式為LibSVM數據。 | |
權重列名 | 字符串 | 權重列對應的列名。 | |
設置模型路徑 | 字符串 | 設置模型存儲的OSS Bucket路徑。 | |
參數設置 | 訓練的輪數 | 整型數值 | 訓練的輪數。 |
objective | 字符串 | 目標函數,默認值為binary:logistic。 | |
Base score | 浮點數值 | 全局bias,默認值為0.5。 | |
類別數 | 整型數值 | 多分類中類別個數。 | |
構建樹的方法 | 字符串 | 構建樹的方法,取值如下。
| |
L1 正則項 | 浮點數值 | L1正則項,默認值為0.0。 | |
L2 正則項 | 浮點數值 | L2正則項,默認值為1.0。 | |
學習率 | 浮點數值 | 學習率,默認值為0.3。 | |
scale_pos_weight | 浮點數值 | 控制正負樣本比例,默認值為1.0。 | |
sketch_eps | 浮點數值 | 構建樹方法為approx時,控制分箱個數,默認值為0.03。 | |
連續特征的最大分割箱數 | 整型數值 | 構建樹方法為hist時,控制分箱個數,默認值為256。 | |
樹的最大深度 | 整型數值 | 樹的最大深度,默認值為6。 | |
最大節點個數 | 整型數值 | 葉節點最大個數,默認值為0。 | |
節點的最小權重 | 浮點數值 | 節點的最小權重,默認值為1.0。 | |
Max delta step | 浮點數值 | 葉節點的最大步長,可以調節模型精細度,默認值為0.0。 | |
樣本采樣比例 | 浮點數值 | 樣本采樣比例,默認值為1。 | |
采樣方法 | 字符串 | 樣本采樣方法,取值如下。
| |
每一層的列采樣比例 | 浮點數值 | 按層進行列采樣的比例,默認值為1.0。 | |
每個節點的列采樣比例 | 浮點數值 | 按節點進行列采樣的比例,默認值為1.0。 | |
每棵樹的列采樣比例 | 浮點數值 | 按樹進行列采樣的比例,默認值為1.0。 | |
Grow Policy | 字符串 | 樹生長的規則,取值如下。
| |
節點分裂最小損失變化 | 浮點數值 | 最小分裂loss,默認值為0.0。 | |
交互約束 | 字符串 | interaction約束。 | |
單調約束 | 字符串 | monotone約束。 | |
Tweedie variance power | 浮點數值 | Tweedie分布方差。Tweedie分布中有效。默認值為1.5。 | |
執行調優 | 節點個數 | 正整數 | 與單個節點內存大小參數配對使用。取值范圍為[1, 9999]。 |
單個節點內存大小 | 正整數 | 單位為兆。取值范圍為[1024, 64*1024]。 |
使用示例
本示例使用Designer預置模板,通過希格斯玻色子事件的分類場景,介紹如何在Designer中使用XGBoost算法。關于如何創建使用XGBoost算法探究希格斯玻色子事件分類案例工作流,請參見創建工作流:預置模板。
其中:
XGBoost預測組件輸出為原生XGBoost庫輸出的JSON序列化,如果您想在工作流中接入二分類評估組件,您需要在XGBoost預測組件的下游接入SQL腳本組件,并配置以下代碼,將XGBoost預測組件輸出的JSON序列化轉換為二分類評估組件需要的格式。更多內容,請參見XGBoost參數說明。
set odps.sql.udf.getjsonobj.new=true;
select *, CONCAT("{\"0\":", 1.0-prob, ",\"1\":", prob, "}") as detail
FROM (
select *, cast(get_json_object(pred, '$[0]') as double) as prob FROM ${t1})
相關文檔
您可以使用XGBoost預測組件對生成的XGB原生格式的模型進行離線推理。關于XGBoost預測組件的配置方法,請參見XGBoost預測。
Designer預置了多種算法組件,您可以根據不同的使用場景選擇合適的組件進行數據處理,詳情請參見組件參考:所有組件匯總。