使用XGBoost磚
磚運行時機器學習包括XGBoost Python和Scala庫。
警告
有一個版本的XGBoost 1.2.0和低錯誤這可能導致共享火花上下文如果XGBoost模型訓練失敗被殺。恢複的唯一方法就是重新啟動集群。磚運行時7.5毫升,包括一個低版本的XGBoost受這個缺陷的影響。安裝一個不同版本的XGBoost,看到上安裝XGBoost磚。
使用Python XGBoost
你可以訓練模型使用Pythonxgboost
包中。這個包隻支持單一節點的工作負載。訓練PySpark毫升管道和利用分布式訓練,明白了集成與火花MLlib (Python)。
集成與火花MLlib (Python)
預覽
這個特性是在公共預覽。
磚運行時7.6毫升以上包括PySpark估計基於Pythonxgboost
包,sparkdl.xgboost.XgboostRegressor
和sparkdl.xgboost.XgboostClassifier
。您可以創建一個毫升管道基於這些估計。有關更多信息,請參見XGBoost PySpark管道。
請注意
以下的參數
xgboost
包不支持:gpu_id
,output_margin
,validate_features
。的參數kwargs
在磚運行時支持9.0毫升以上。的參數
sample_weight
,eval_set
,sample_weight_eval_set
不受支持。相反,使用參數weightCol
和validationIndicatorCol
。看到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啟用了自動定量的集群。看到啟用和配置自動定量禁用自動定量說明。