2016-10-14 4 views
1

Я новичок в xgboost на Python, и сегодня я пытался следовать учебнику здесь: https://jessesw.com/XG-Boost/.Python Xgboost GridSearchCV убит, как исправить?

Затем я попробовал xgboost, используя свои данные, он отлично работает без использования gridsearch. Затем я последовал за учебником, чтобы сделать 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 "[email protected]" 

Любые советы будут оценены!

+0

Не могли бы вы проверить его на другой системе? Кажется, сбой интерпретатора python. –

+0

@IbraimGaniev просто запустил тот же код на другом компьютере, но результат тот же – snowneji

+0

Решенный. Поскольку это проблема регрессии, мы должны использовать XGBRegressor() вместо XGBClassifier(). Раньше использовал R, поэтому не понимал разницы в Python. – snowneji

ответ

0

В моем случае причина была в colsample_by_tree. Это было 0,1, когда общее количество признаков было меньше 10.

И причиной неудачи было утверждение, когда дерево пытается узнать на наборе данных с n образцами и 0 функциями.

Смежные вопросы