Являются ли переменные коэффициенты в исходной шкале из модели gl mnet обученными с использованием каретки в r? - PullRequest
1 голос
/ 29 марта 2020

Я использовал пакет Caret для обучения модели gl mnet. Я стандартизировал предсказатели. Кажется, что gl mnet автоматически стандартизирует предсказатели для меня. Так что, использую ли я preProcess или нет, это не влияет на мой результат.

library(caret)
fit<- caret::train (price~carat+depth+cut,
              data=diamonds[1:200,],
              method= 'glmnet',
              preProcess=c('center', 'scale'),
                metric = "Rsquared")

Мне нужно знать влияние предиктора на мою целевую переменную. Я могу получить переменные коэффициенты из кода ниже.

coef(fit$finalModel, fit$bestTune$lambda)

Мой вопрос: являются ли эти переменные коэффициенты из выходных данных в исходной или стандартизированной шкале? Спасибо.

1 Ответ

0 голосов
/ 31 марта 2020

Переменные коэффициенты в исходной шкале. Вы можете посмотреть на них, если они представлены в масштабированных предикторах, вряд ли вы увидите 1000+ для 1 коэффициента (значит, вам нужно увеличить 1000 * sd !!) и -17 для другого.

coef(fit$finalModel, fit$bestTune$lambda)
7 x 1 sparse Matrix of class "dgCMatrix"
                     1
(Intercept) 1717.36000
carat       1092.16045
depth        -17.86985
cut.L         51.31784
cut.Q          .      
cut.C          .      
cut^4          .   

Один из способов убедиться в этом - проверить установленные значения:

preProcValues <- preProcess(diamonds[1:200,], method = c("center", "scale"))

pred_scaled = predict(fit,predict(preProcValues,diamonds[1:200,]))
identical(pred_scaled,fitted(fit))
[1] FALSE
pred_orig = predict(fit,diamonds[1:200,])
identical(pred_orig,fitted(fit))
[1] TRUE
...