【问题标题】:Python Xgboost GridSearchCV killed, how to fix?Python Xgboost GridSearchCV 被杀,如何修复?
【发布时间】: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 中的区别。

标签: python machine-learning scikit-learn xgboost grid-search


【解决方案1】:

就我而言,原因在于 colsample_by_tree。当特征总数小于 10 时为 0.1。

失败的原因是一个断言,当树试图在具有 n 个样本和 0 个特征的数据集上学习时。

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 2017-05-31
    • 2017-08-17
    • 1970-01-01
    • 2020-09-22
    • 2018-10-22
    • 2021-05-11
    • 2017-09-18
    • 2020-02-18
    相关资源
    最近更新 更多