2015-11-27 3 views
7

Я пытаюсь параметрической настройка с помощью пакета каретки в R, но получитьпараметров настройки XGboost В R

Error in train.default(x = as.matrix(df_train %>% select(-c(Response, : 
    The tuning parameter grid should have columns nrounds, lambda, alpha 

всякий раз, когда я пытаюсь обучить модель, даже если колонки nrounds, лямбда, и альфа есть ,

library(caret) 
library(xgboost) 
library(readr) 
library(dplyr) 
library(tidyr) 

xgb_grid_1 <- expand.grid(
    nrounds= 2400, 
    eta=c(0.01,0.001,0.0001), 
    lambda = 1, 
    alpha =0 
) 

xgb_trcontrol <- trainControl(
    method="cv", 
    number = 5, 
    verboseIter = TRUE, 
    returnData=FALSE, 
    returnResamp = "all", 
    allowParallel = TRUE, 

) 

xgb_train_1 <- train(
    x = as.matrix(df_train %>% select(-c(Response, Id))), 
    y= df_train$Response, 
trControl = xgb_trcontrol, 
tuneGrid = xgb_grid_1, 
method="xgbLinear" 
) 
+0

Это уже ответ здесь. Это может быть дублирующий вопрос. http://stats.stackexchange.com/questions/171043/how-to-tune-hyperparameters-of-xgboost-trees –

ответ

6

Проблема в вашем xgb_grid_1. Если вы удалите строку eta, она будет работать.

Стандартные параметры настройки с помощью xgboost и каретки «nrounds», «lambda» и «alpha». Не эта. используйте функцию modelLookup, чтобы узнать, какие параметры модели доступны. Если вы также хотите использовать eta, вам придется создать свою собственную модель каретки, чтобы использовать этот дополнительный параметр в настройке.

modelLookup("xgbLinear") 
     model parameter     label forReg forClass probModel 
1 xgbLinear nrounds # Boosting Iterations TRUE  TRUE  TRUE 
2 xgbLinear lambda  L2 Regularization TRUE  TRUE  TRUE 
3 xgbLinear  alpha  L2 Regularization TRUE  TRUE  TRUE 
+0

Стоит отметить, что в xgboost параметр eta предназначен только для увеличения деревьев, поэтому, если ваш метод «xgbLinear», , не должно быть eta-параметра. – aginensky

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