XGBoost - разреженная матрица, использующая контраст.args для обработки факторных переменных - PullRequest
0 голосов
/ 31 марта 2019

Я использую 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.Как я понимаю, первый метод не создает пустышки для каждого уровня фактора, так что это повлияет на мой результат?

...