I'm trying to use SuperLearner and it doesn't matter what algorithms I add to the library, it will only provides a discrete winner with coefficient 1. Is there an option to prevent that from happening?
Code:
library(SuperLearner)
Call:
SuperLearner(Y = msicudatatrain$IsDeceased, X = x, family = binomial(),
SL.library = c("SL.mean", "SL.glmnet",
"SL.ksvm", "SL.rpart"), verbose = TRUE)
Risk Coef
SL.mean_All 1.684285e-01 0
SL.glmnet_All 4.483909e-07 0
SL.ksvm_All 1.750231e-03 0
SL.rpart_All 0.000000e+00 1
now excluding rpart, same situation happens...
Call:
SuperLearner(Y = msicudatatrain$IsDeceased, X = x, family = binomial(), SL.library = c("SL.mean", "SL.glmnet",
"SL.ksvm"), verbose = TRUE)
Risk Coef
SL.mean_All 1.683833e-01 0
SL.glmnet_All 4.482701e-07 1
SL.ksvm_All 1.989397e-03 0
If I try a continuous Y variable (in this case, hospital length of stays), it also give a discrete winner, which seems counter intuitive.
Call:
SuperLearner(Y = msicudatatrain$ICU_LOS_Clinical, X = x, family = gaussian(),
SL.library = c("SL.mean", "SL.glmnet",
"SL.ksvm", "SL.randomForest", "SL.rpart"), verbose = TRUE)
Risk Coef
SL.mean_All 51.59664196 0
SL.glmnet_All 0.05281076 1
SL.ksvm_All 2.69611753 0
SL.randomForest_All 2.00135683 0
SL.rpart_All 1.38172213 0
What should I do?