簡體   English   中英

有沒有辦法在 Python 中並行化集成學習循環?

[英]Is there a way to parallelize a loop for ensemble learning in Python?

我想同時訓練多個 LightGBM 模型。

現在,我正在按如下順序訓練它們:

for m in range(ensemble_n):
   params = {'seed':m}
   model = lgb.train(params, lgbtrain)
   prediction=model.predict(test_df.drop([target], axis=1))
   test_predictions[:, m] = prediction

有沒有辦法讓我並行化上面的循環?

並行訓練 model 的多個版本的代價是您需要將多個版本的數據加載到 memory 中,如果您有一個相當大的數據集,這可能會變得很困難。

同時,如果您使用的是 LGBM 的 scikit-learn API,您可以使用參數n_jobs=-1 ,它將在所有可用內核上並行計算單個 model。 這將更有效地利用資源,因為無論您必須選擇並行訓練多個模型還是並行訓練單個 model,但不能同時訓練兩者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM