Python Xgboost GridSearchCV 被杀,如何修复?
Posted
技术标签:
【中文标题】Python Xgboost GridSearchCV 被杀,如何修复?【英文标题】:Python Xgboost GridSearchCV killed, how to fix? 【发布时间】:2017-02-24 04:30:36 【问题描述】:我是 Python 上的 xgboost 新手,今天我试图按照这里的教程进行操作:https://jessesw.com/XG-Boost/。
然后我使用自己的数据尝试了 xgboost,它在不使用 gridsearch 的情况下也能正常工作。然后我按照教程进行了网格搜索,但看起来它不起作用。这是我的代码:
cv_params = 'max_depth': [3, 5, 7], 'min_child_weight': [1, 3, 5]
ind_params = 'learning_rate': 0.1, 'n_estimators': 500, 'seed': 0,
'subsample': 0.8, 'colsample_bytree': 0.8,
'objective': 'reg:linear'
optimized_GBM = GridSearchCV(xgb.XGBClassifier(**ind_params),
cv_params,
cv=5, n_jobs=2, verbose=2)
optimized_GBM.fit(train_x, train['label'])
我得到了这个输出:
Fitting 5 folds for each of 9 candidates, totalling 45 fits
[CV] max_depth=3, min_child_weight=1................................
//anaconda/bin/python.app: line 3: 906 Killed: 9 //anaconda/python.app/Contents/MacOS/python "$@"
任何建议将不胜感激!
【问题讨论】:
你能在其他系统上检查一下吗?似乎 python 解释器崩溃了。 @IbraimGaniev 刚刚在另一台计算机上运行了相同的代码,但结果相同 已解决。由于这是一个回归问题,我们应该使用 XGBRegressor() 而不是 XGBClassifier()。之前在使用 R,所以没有意识到 Python 中的区别。 【参考方案1】:就我而言,原因在于 colsample_by_tree。当特征总数小于 10 时为 0.1。
失败的原因是一个断言,当树试图在具有 n 个样本和 0 个特征的数据集上学习时。
【讨论】:
以上是关于Python Xgboost GridSearchCV 被杀,如何修复?的主要内容,如果未能解决你的问题,请参考以下文章
如果我使用 GridsearchCV,如何在 Xgboost 中使用 model.evals_result()?
使用 python 中的 hypopt 包在 GridSearch 函数中指定评分指标