分类模型train.glmnet与cv.glmnet?

分类模型train.glmnet与cv.glmnet?,r,r-caret,cross-validation,glmnet,R,R Caret,Cross Validation,Glmnet,我如何在train.glmnet上获得与cv.glmnet相同的答案?我正在进行分类,并使用family=“二项式”。我做了一些测试,但没有达到同样的敏感性和特异性。差别很大,即使我从cv.glmnet中给出lambda列表,但我仍然得到相同的答案 下面是一个简单的例子: set.seed(2) training <- twoClassSim(50, linearVars = 2) testing <- twoClassSim(500, linearVars = 2) trainX

我如何在train.glmnet上获得与cv.glmnet相同的答案?我正在进行分类,并使用family=“二项式”。我做了一些测试,但没有达到同样的敏感性和特异性。差别很大,即使我从cv.glmnet中给出lambda列表,但我仍然得到相同的答案

下面是一个简单的例子:

set.seed(2)
training <- twoClassSim(50, linearVars = 2)
testing <- twoClassSim(500, linearVars = 2)
trainX <- training[, -ncol(training)]
testX <- testing[, -ncol(testing)]
trainY <- training$Class
cctrl1 <- trainControl(method="cv", number=3, returnResamp="all",
                       classProbs=TRUE, summaryFunction=twoClassSummary)

set.seed(849)
X <- model.matrix(trainY ~ .,data=data.frame(cbind(trainX,trainY)))
cvob1=cv.glmnet(X,trainY,family="binomial",alpha=1, type.measure="auc", nfolds = 3)
test_class_cv_model <- train(trainX, trainY, 
                         method = "glmnet", 
                         trControl = cctrl1,
                         metric = "ROC",
                         preProc = c("center", "scale"),
                         tuneGrid = expand.grid(.alpha = 1
                                                ,.lambda = seq(0.001,0.1,by = 0.001)
                                                #,.lambda = 0.017))
# lambda     ROC        Sens       Spec
# 0.017   0.7222222  0.6833333  0.6333333
# 0.017   0.7833333  0.7333333  0.7333333
# 0.017   0.8027778  0.7666667  0.6833333
# 0.017   0.6861111  0.6333333  0.65

test_class_cv_model_cv <- train(trainX, trainY,
                            method = "glmnet", 
                            trControl = cctrl1,
                            metric = "ROC",
                            preProc = c("center", "scale"),
                            tuneGrid = expand.grid(.alpha = 1,
                                                   .lambda = cvob1$lambda))
#     lambda        ROC        Sens       Spec                           
#  0.0010414124  0.8142361  0.7638889  0.5694444
#  0.0066942753  0.8527778  0.6833333  0.7166667
#  0.0224365508  0.7305556  0.6833333  0.6833333
#  0.0169724279  0.7972222  0.7333333  0.6500000
#  0.0031803231  0.6841564  0.6342593  0.6342593
#  0.0624310353  0.8111111  0.7166667  0.7333333
#  0.0073469589  0.7250000  0.7666667  0.6833333
set.seed(2)

培训请参阅我对这个问题的回答: