Я должен реализовать логистическую регрессию 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.