Parallel threading with xgboost?

陌路散爱 提交于 2019-12-06 06:44:02

问题


According to its documentation, xgboost has an n_jobs parameter. However, when I attempt to set n_jobs, I get this error:

TypeError: __init__() got an unexpected keyword argument 'n_jobs'

Same issue for some other parameters like random_state. I assumed this might be an update issue, but it seems I have the latest version (0.6a2, installed with pip).

There isn't much needed for me to reproduce the error:

from xgboost import XGBClassifier 
estimator_xGBM = XGBClassifier(max_depth = 5, learning_rate = 0.05, n_estimators = 400, n_jobs = -1).fit(x_train)

Any ideas?


回答1:


I installed xgboost yesterday (25.09.2017):

If you install with pip or conda, the xgboost version does not support the n_jobs parameter; only the nthreads parameter.

If you build xgboost from github repository, you can use n_jobs though.

Update: n_jobs is the number of parallel threads used to run xgboost. (replaces nthread) for all algorithms like XGBClassifier, XGBRanker, XGBRegressor etc.

Reference - here




回答2:


nthread is same with n_jobs but n_jobs is prefered for now. maybe you can try nthread instead.

nthread : int Number of parallel threads used to run xgboost. (Deprecated, please use n_jobs)

n_jobs : int Number of parallel threads used to run xgboost. (replaces nthread)

https://github.com/dmlc/xgboost/blob/master/python-package/xgboost/sklearn.py#L71-L74



来源:https://stackoverflow.com/questions/46310578/parallel-threading-with-xgboost

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!