Я использую XGBoost для прогнозирования продаж для используемого продукта, а переменные - это доход, среднее значение и отставание по продажам, среднее значение и отставание по доходу, праздничные дни, day_of_week, месяц, week_of_month.Мне нужно создать разреженную матрицу , но я не уверен, следует ли использовать однократное кодирование или коэффициенты передачи в качестве контрастных аргументов .
Я не знаю, какой лучше использовать для XGBoost и как это может повлиять на результаты, но я читал где-то, что не требуется одно горячее кодирование.Используемые коды для разреженности выглядят примерно так:
trainMatrix <- sparse.model.matrix(~ revenue + avg_7 + lag_7 + avg_3 + avg_7_rev
+ lag_7_rev + mweek + quarter + holiday+ wday
+ month
, data = train
, contrasts.arg = c('holiday','wday', 'month',
'mweek', 'quarter')
, sparse = FALSE, sci = FALSE)
trainMatrix <- train %>%
sparse.model.matrix(~. - 1 , ., contrasts.arg = lapply(.[, sapply(., is.factor)], contrasts, contrasts = FALSE))
Я хотел бы знать, как правильно создать разреженную матрицу для XGboost.Как я понимаю, первый метод не создает пустышки для каждого уровня фактора, так что это повлияет на мой результат?