2016-09-26 11 views
1

Я использую эти два производных GBM для Caret. Я попробовал оба алгоритма в одном наборе данных, и они возвращают разную точность и выполняют в разное время. По имени я могу подумать, что сначала использовать Linear-функцию где-то, а в другом - деревья. В любом случае, я не понимаю, где он использует Linear, а не Tree. Я знаю, что алгоритмы GBM используют дерево в качестве предиктора, может быть, что первые случаи используют разные структуры, такие как обучение? Где я могу найти документацию по этой теме?Caret xgbLinear и xgbTree

Благодаря

ответ

5

Вы можете найти более подробную информацию о отдельном models на странице GitHub, где каретки размещается весь код для моделей. каретная документация находится в каталоге here.

Но вы должны быть осведомлены о различиях в параметрах, которые используются между 2 моделями:

  • xgbLinear использует: nrounds, лямбда, альфа ЭТА
  • xgbTree использует: nrounds, max_depth, ETA, гамма, colsample_bytree, min_child_weight

Эти выборы влияют на исход модели и приведет к различным предсказаниям. И поэтому также имеют другую точность. Другие параметры, доступные в xgboost, будут использоваться с настройками по умолчанию для xgboost.

Модели Caret содержат опцию dotdotdot (...). Поэтому, если вы хотите обучить gamma с xgbLinear, вы можете указать это в функции поезда. Но не в параметре сетки. То же самое касается любого другого параметра xgboost.

(очень плохо) пример:

grid = expand.grid(nrounds = c(10,20), lambda= c(0.1), alpha = c(1), eta = c(0.1)) 
train(Species ~ ., data = iris, method = "xgbLinear", tuneGrid = grid, gamma = 0.5) 

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

  • Нет связанных вопросов^_^