我訓練一個毫升模型(例如,XGboost)和我有一個大的組合5 hyperparameters,每個參數有5個候選人說,這將是5 ^ 5 = 3125組合。
現在我想做並行網格搜索在所有hyperparameter組合訓練機器學習模型來獲得最佳性能的模型。
所以我怎麼能實現這一磚,特別是使用MLFlow ?有人告訴我我可以定義一個函數來訓練和評估模型(使用mlflow)和與所有的hyper-parameter組合定義一個數組,數組sc.parallelize然後映射函數。
我想出了sc.parallelize數組的代碼,等等
paras_combo_test = [(x, y) x (50、100、150) y [0.8, 0.9, 0.95]] sc.parallelize (paras_combo_test, 3) .glom () .collect ()
(simplicit,我隻是使用兩個參數x, y,總共有9個組合,我把他們3分區。)
我如何映射在函數模型的訓練和評估(可能使用mlflow),所以會有3作品(每個工作將培訓3模型)並行分區的參數組合?
這個博客應該很有幫助:
//m.eheci.com/blog/2021/04/15/how-not-to-tune-your-model-with-hyperopt.html
這裏有xgboost文檔
https://docs.m.eheci.com/machine-learning/train-model/xgboost.html
一個簡單的規則sc.parallelize從未使用。
你可以設置num_workers默認的並行性
https://databricks.github.io/spark-deep-learning/_modules/sparkdl/xgboost/xgboost.html