Пакет Caret - путь коэффициента регрессии-хребта - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь воссоздать путь коэффициента регрессии гребня, используя пакет Caret, как показано на рисунке 6.15 в книге прикладного прогнозного моделирования Куна и Джонсона.Целевой вывод предоставляется.

Applied Predictive Modeling Fig 6.15

Данные получены с помощью следующего кода:

require(tidyverse)
require(caret)
require(AppliedPredictiveModeling)
require(elasticnet)

data(solubility)

set.seed(100)
indx <- createFolds(solTrainY, returnTrain = TRUE)
ctrl <- trainControl(method = "cv", index = indx)

ridgeGrid <- data.frame(lambda = seq(0, .1, length = 15))

set.seed(100)
cvresult <- train(x = solTrainXtrans, 
                  y = solTrainY, 
                  method = "ridge", 
                  tuneGrid = ridgeGrid, 
                  trControl = ctrl, 
                  preProc = c("center", "scale"))

Редактировать : следующеемоя попытка;Я понимаю, что мне не нужна окончательная модель, однако функция predict.enet в противном случае выдает мне ошибку:

coeffs <- predict.enet(cvresult$finalModel, type = "coefficients", mode = "fraction")

as.data.frame(unclass(coeffs$coefficients)) %>%
mutate(Fraction = coeffs$fraction) %>%
gather(Variable, Coefficient, -Fraction) %>%
mutate(Col = ifelse(Variable %in% c("NumNonHAtoms", "NumNonHBonds", "NumMultBonds"), Variable, "Other")) %>%
ggplot(aes(Fraction, Coefficient, group=Variable, colour = Col)) +
geom_line()

Ни закомментированный код (медленно), ни ggplot не отображаются в соответствии с книгой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...