Найдите прогнозируемые вероятности для логистики / LASSO с помощью пакета каретки в R (с использованием перекрестной проверки)

Я установил модель логистической регрессии лассо, используя пакет каретки в R. Мой код выглядит следующим образом:

require(ISLR)
require(caret)
set.seed(123)
fitControl <- trainControl(method = "cv",number = 5,savePredictions = T,classProbs=TRUE)
mod_fitg <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume,
                  data=Smarket[1:100,], method = "glmnet", 
                  trControl = fitControl,
                  tuneGrid=expand.grid(
                    .alpha=1,
                    .lambda=10^seq(-5, 5, length =2)),
                  family="binomial")

Когда я извлекаю предсказанные значения, он будет показывать только предсказанный класс (под столбцом pred) следующим образом:

mod_fitg$pred

введите здесь описание изображения

Есть ли способ извлечь предсказанные вероятности вместо предсказанного класса? Как-то мне нужно было получить предсказанные вероятности на основе перекрестной проверки.

Спасибо


person student_R123    schedule 24.09.2019    source источник


Ответы (1)


Я считаю, что ваши предсказанные вероятности указаны в столбцах Down и Up. Модель дает многим наблюдениям равные шансы и, кажется, в таких случаях полагается на Up. Однако дальше по списку есть вариации. mod_fit$pred - это фрейм данных, и вы можете просто извлечь значения напрямую:

pre_prob <- mod_fitg$pred[3:5]
pre_prob

#output- keeping index if we care about a certain observation 
    rowIndex      Down        Up
1          4 0.5000000 0.5000000
2          8 0.5000000 0.5000000
person Peter_Evan    schedule 25.09.2019