我在这里看到有关我的问题的几篇文章。我经历了那些,但仍然无法弄清楚我做错了什么。
我们将不胜感激任何帮助。
我使用glmnet软件包和caret软件包(这是glmnet软件包的包装)拟合了LASSO逻辑回归模型,并且得到了不同的结果。
这是我的代码:
使用glment软件包,
require(ISLR)
require(glmnet)
y <- Smarket$Direction
x <- model.matrix(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume, Smarket)[, -1]
lasso.mod <- cv.glmnet(x, y, alpha=1,family="binomial",nfolds = 5, type.measure="class",
lambda = seq(0.001,0.1,by = 0.001))
> lasso.mod$lambda.min
[1] 0.1
使用插入符包
require(caret)
set.seed(123)
fitControl1 <- trainControl(method = "cv",number = 5,savePredictions = T,returnResamp="all")
modelFitlassocvintm1 <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume, data=Smarket,
method = "glmnet",
trControl = fitControl1,
tuneGrid=expand.grid(
.alpha=1,
.lambda=seq(0.001,0.1,by = 0.001)),
family="binomial")
modelFitlassocvintm1$bestTune
alpha lambda
26 1 0.026
如您所见,基于5倍交叉验证,我获得了调整参数lambda
的不同值。谁能帮我弄清楚我做错了什么?
谢谢
答案 0 :(得分:1)