Как реализовать регрессию Logisti c с помощью лассо или риджа? - PullRequest
0 голосов
/ 01 марта 2020

Я должен реализовать логистическую регрессию c и упорядочить ее с помощью лассо или риджа, а затем рассчитать RSS, выбирая модель, которая будет сжиматься до 10 функций или меньше. Я попробовал, используя пакет gl mnet

x <- Train_set %>% dplyr::select(-Diag) %>%  as.matrix()

y <- Train_set$Diag  %>%  as.matrix()

Test_matrix <- model.matrix(Diag ~.,Test_set)[,-1]

Lasso <- cv.glmnet(x,y,alpha =1,family = "binomial")

Видя, что желаемой моделью была та, которую я выбрал на первом этапе. Чтобы получить мой прогноз, я использовал:

Lasso_1std <- glmnet(x,y alpha = 1, family = "binomial",lambda =Lasso$lambda.1se)

lasso_pred <- Lasso_1std %>% predict(newx  = Test_matrix)
#.....RSS_lasso




(Output_lasso <- data.frame(Test_set$Diag,lasso_pred))

#..........................RSS

(RSS_lasso <-(Output_lasso$Test_set.Diag - Output_lasso$s0)^2 %>% sum )

Я не знаю, правильно ли я делаю это, потому что я получаю 250 как RSS. Еще один вопрос: есть ли способ сделать то же самое с помощью caret :: train.

...