Краткий ответ на ваш вопрос:
когда алгоритм соответствует остаточному (или отрицательному градиенту), использует ли он один элемент на каждом шаге (т.е. одномерная модель) или все признаки (многомерная модель)?
Алгоритм использует одну функцию, или все функции зависят от вашей настройки. В моем длинном ответе, указанном ниже, в примерах решений и линейных учащихся они используют все функции, но при желании вы также можете использовать подмножество функций. Столбцы выборки (функции) рассматриваются как уменьшающие дисперсию модели или повышающие «надежность» модели, особенно если у вас большое количество функций.
В случае с xgboost
учеником по древовидной базе вы можете выбрать colsample_bytree
образцы объектов, подходящие для каждой итерации. Для линейного базового ученика таких вариантов нет, поэтому он должен соответствовать всем функциям. Кроме того, не так уж много людей используют линейного ученика в xgboost или для повышения градиента в целом.
Длинный ответ для линейного как слабый ученик для повышения:
В большинстве случаев мы не можем использовать линейного ученика в качестве базового ученика. Причина проста: сложение нескольких линейных моделей все равно будет линейной моделью.
В продвижении нашей модели есть сумма базовых учеников:
е( х ) = ∑м = 1Mбм( х )
Mбммт ч
2b1=β0+β1xb2=θ0+θ1x
f(x)=∑m=12bm(x)=β0+β1x+θ0+θ1x=(β0+θ0)+(β1+θ1)x
которая является простой линейной моделью! Другими словами, модель ансамбля обладает «одинаковой силой» с базовым учеником!
XTXβ=XTy
Поэтому люди хотели бы использовать другие модели, кроме линейной модели, в качестве базового обучающегося. Дерево - хороший вариант, так как добавление двух деревьев не равно одному дереву. Я продемонстрирую это на простом примере: пень решения, представляющий собой дерево только с 1 разбиением.
f(x,y)=x2+y2
Теперь проверьте первые четыре итерации.
Обратите внимание, что в отличие от линейного ученика, модель в 4-й итерации не может быть достигнута за одну итерацию (один отдельный пень решения) с другими параметрами.
Итак, я объяснил, почему люди не используют линейного ученика в качестве базового ученика. Однако ничто не мешает людям делать это. Если мы используем линейную модель в качестве базового обучающегося и ограничиваем количество итераций, это равносильно решению линейной системы, но ограничивает количество итераций в процессе решения.
Тот же пример, но на трехмерном графике красная кривая - данные, а зеленая плоскость - окончательное совпадение. Вы можете легко увидеть, что конечная модель - это линейная модель, z=mean(data$label)
параллельная плоскости x, y. (Вы можете подумать, почему? Это потому, что наши данные "симметричны", поэтому любой наклон плоскости увеличит потери). Теперь проверьте, что произошло в первых 4 итерациях: подобранная модель медленно поднимается до оптимального значения (среднее значение).
Окончательный вывод, линейный ученик не широко используется, но ничто не мешает людям использовать его или внедрить в R-библиотеку. Кроме того, вы можете использовать его и ограничить количество итераций для регуляризации модели.
Связанный пост:
Повышение градиента для линейной регрессии - почему это не работает?
Является ли пень решения линейной моделью?