XGBoost演算法在Boosting演算法的基礎上進行了擴充和升級,具有較好的易用性和魯棒性,被廣泛用在各種機器學習生產系統和競賽領域,該演算法支援分類和迴歸。XGBoost預測組件是在開源社區的基礎上進行封裝,您可以使用該組件對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資料。 | |
參數設定 | 預測結果列名 | 字串 | 預測結果輸出資料行名。 |
執行調優 | 節點個數 | 正整數 | 與單個節點記憶體大小參數配對使用。取值範圍為[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預測組件與XGBoost訓練組件配合使用,關於XGBoost訓練組件的配置方法,請參見XGBoost訓練。
Designer預置了多種演算法組件,你可以根據不同的使用情境選擇合適的組件進行資料處理,詳情請參見組件參考:所有組件匯總。