使用XGBoost磚

磚運行時機器學習包括XGBoost Python和Scala庫。

警告

有一個版本的XGBoost 1.2.0和低錯誤這可能導致共享火花上下文如果XGBoost模型訓練失敗被殺。恢複的唯一方法就是重新啟動集群。磚運行時7.5毫升,包括一個低版本的XGBoost受這個缺陷的影響。安裝一個不同版本的XGBoost,看到上安裝XGBoost磚

使用Python XGBoost

你可以訓練模型使用Pythonxgboost包中。這個包隻支持單一節點的工作負載。訓練PySpark毫升管道和利用分布式訓練,明白了集成與火花MLlib (Python)

XGBoost Python筆記本

在新標簽頁打開筆記本

集成與火花MLlib (Python)

預覽

這個特性是在公共預覽

磚運行時7.6毫升以上包括PySpark估計基於Pythonxgboost包,sparkdl.xgboost.XgboostRegressorsparkdl.xgboost.XgboostClassifier。您可以創建一個毫升管道基於這些估計。有關更多信息,請參見XGBoost PySpark管道

請注意

  • 以下的參數xgboost包不支持:gpu_id,output_margin,validate_features。的參數kwargs在磚運行時支持9.0毫升以上。

  • 的參數sample_weight,eval_set,sample_weight_eval_set不受支持。相反,使用參數weightColvalidationIndicatorCol。看到XGBoost PySpark管道獲取詳細信息。

  • 的參數base_margin,base_margin_eval_set不受支持。在磚運行時的9.0毫升以上,您可以使用參數baseMarginCol代替。看到XGBoost PySpark管道獲取詳細信息。

  • 的參數失蹤有不同的語義xgboost包中。在xgboost包,SciPy稀疏矩陣的零值被視為缺失值的價值無關失蹤。PySpark估計的sparkdl包,零值火花稀疏向量並不作為缺失值,除非你設置失蹤= 0。如果你有一個稀疏的訓練數據集(大多數特性值缺失),磚推薦設置失蹤= 0減少內存消耗,實現更好的性能。

分布式訓練

磚上麵運行時9.0毫升,支持分布式XGBoost訓練使用num_workers參數。使用分布式培訓,創建一個分類或回歸量和集num_workers一個值小於或等於您的集群上的工人數量。

例如:

分類器=XgboostClassifier(num_workers=N,* *{其他參數個數})回歸量=XgboostRegressor(num_workers=N,* *{其他參數個數})

分布式訓練的局限性

  • 你不能使用mlflow.xgboost.autolog與分布式XGBoost。

  • 你不能使用baseMarginCol與分布式XGBoost。

  • 你不能使用分布式XGBoost啟用了自動定量的集群。看到啟用和配置自動定量禁用自動定量說明。

GPU培訓

磚運行時9.0毫升以上支持GPU集群XGBoost培訓。使用GPU集群,集use_gpu真正的

例如:

分類器=XgboostClassifier(num_workers=N,use_gpu=真正的,* *{其他參數個數})回歸量=XgboostRegressor(num_workers=N,use_gpu=真正的,* *{其他參數個數})

筆記本與火花MLlib Python集成示例

PySpark-XGBoost筆記本

在新標簽頁打開筆記本

集成與火花MLlib (Scala)

本節中的示例展示了如何使用XGBoost MLlib。第一個例子展示了如何嵌入一個XGBoost模型轉換為一個MLlib毫升管道。第二個例子展示了如何使用MLlib交叉驗證來優化一個XGBoost模型。

XGBoost分類與ML管道筆記本

在新標簽頁打開筆記本

用交叉驗證的筆記本XGBoost回歸

在新標簽頁打開筆記本