Получение прогнозируемых классов от r glmnet объекта
-
27-10-2019 - |
Вопрос
Я пытаюсь создать простые многоклассовые модели логистической регрессии, используя GLMNet в R. Однако, когда я пытаюсь предсказать тестовые данные и получить таблицу на случай непредвиденных обстоятельств, я получаю ошибку. Пример сеанса воспроизведена ниже.
> mat = matrix(1:100,nrow=10)
> test = matrix(1:50,nrow=5)
> classes <- as.factor(11:20)
> model <- glmnet(mat, classes, family="multinomial", alpha=1)
> pred <- predict(model, test)
> table(pred, as.factor(11:15))
Error in table(pred, as.factor(11:15)) :
all arguments must have the same length
Любая помощь будет оценена. R Нуб здесь.
Спасибо.
Решение
А predict
Метод для glmnet
Объект требует, чтобы вы указали значение для аргумента s
, что указывает, какие значения параметра регуляризации, для которых вы хотите прогнозировать.
(glmnet
Подходит к модели для нескольких значений этого параметра регуляризации одновременно.)
Так что, если вы не указаете значение для s
, predict.glmnet
Возвращает прогнозы для все ценности. Если вы хотите всего лишь один набор прогнозов, вам нужно либо установить значение для s
Когда вы звоните predict
, или вам нужно извлечь соответствующий столбец после факта.