cv.glmnet
ожидает матрицу предикторов, а не фрейм данных.Как правило, вы можете получить это с помощью
X <- model.matrix(<formula>, data=<data>)
, но в вашем случае вы, вероятно, можете достичь этого с помощью
X <- as.matrix(t2[,-c(1,2,7,12)])
, так как у вас нет никаких факторных переменных или другихпроблемы, которые могут усложнить ситуацию.
Поскольку этот ответ получает множество обращений: пакет glmnetUtils предоставляет интерфейс на основе формул для glmnet, аналогичный тому, который используется для большинства функций моделирования R,Он включает методы для glmnet
и cv.glmnet
, а также новую функцию cva.glmnet
для перекрестной проверки как для альфы, так и для лямбды.
Вышеуказанные значения станут
cv.glmnet(X2 ~ ., data=t2[-1], family="multinomial")
NAобрабатываются автоматически, поэтому вам не нужно исключать столбцы с пропущенными значениями.