वहाँ का उपयोग कर की तुलना में भ्रम का एक बहुत हो रहा है glmnet
के भीतर caret
एक इष्टतम लैम्ब्डा के लिए खोज करने के लिए और का उपयोग कर cv.glmnet
एक ही काम करने के लिए।
कई सवाल किए गए, उदाहरण के लिए:
वर्गीकरण मॉडल train.glmnet बनाम cv.glmnet?
कैरट के साथ ग्लमेनेट का उपयोग करने का उचित तरीका क्या है?
`कैरट` का उपयोग करके` ग्लमनेट` को क्रॉस-वैरिफाई करना
लेकिन कोई उत्तर नहीं दिया गया है, जो प्रश्न की पुनरुत्पादकता के कारण हो सकता है। पहले प्रश्न के बाद, मैं एक समान उदाहरण देता हूं, लेकिन एक ही प्रश्न है: अनुमानित लंबोदर इतने अलग क्यों हैं?
library(caret)
library(glmnet)
set.seed(849)
training <- twoClassSim(50, linearVars = 2)
set.seed(849)
testing <- twoClassSim(500, linearVars = 2)
trainX <- training[, -ncol(training)]
testX <- testing[, -ncol(testing)]
trainY <- training$Class
# Using glmnet to directly perform CV
set.seed(849)
cvob1=cv.glmnet(x=as.matrix(trainX),y=trainY,family="binomial",alpha=1, type.measure="auc", nfolds = 3,lambda = seq(0.001,0.1,by = 0.001),standardize=FALSE)
cbind(cvob1$lambda,cvob1$cvm)
# best parameter
cvob1$lambda.mi
# best coefficient
coef(cvob1, s = "lambda.min")
# Using caret to perform CV
cctrl1 <- trainControl(method="cv", number=3, returnResamp="all",classProbs=TRUE,summaryFunction=twoClassSummary)
set.seed(849)
test_class_cv_model <- train(trainX, trainY, method = "glmnet", trControl = cctrl1,metric = "ROC",
tuneGrid = expand.grid(alpha = 1,lambda = seq(0.001,0.1,by = 0.001)))
test_class_cv_model
# best parameter
test_class_cv_model$bestTune
# best coefficient
coef(test_class_cv_model$finalModel, test_class_cv_model$bestTune$lambda)
सारांशित करने के लिए, निम्न लंबोदर इस प्रकार हैं:
0.055 का उपयोग करके
cv.glmnet()
0.001 का उपयोग करके
train()
मुझे पता है कि का उपयोग कर standardize=FALSE
में cv.glmnet()
उचित नहीं है, लेकिन मैं वास्तव में एक ही आवश्यक शर्तें का उपयोग कर दोनों तरीकों की तुलना करना चाहते हैं। मुख्य विस्फोट के रूप में, मुझे लगता है कि प्रत्येक तह के लिए नमूना दृष्टिकोण एक मुद्दा हो सकता है - लेकिन मैं एक ही बीज का उपयोग करता हूं और परिणाम काफी अलग हैं।
इसलिए मैं वास्तव में इस बात पर अड़ा हुआ हूं कि दोनों दृष्टिकोण इतने अलग क्यों हैं, जबकि उन्हें काफी समान होना चाहिए? - मुझे उम्मीद है कि समुदाय को कुछ विचार है कि यहां क्या मुद्दा है