关于在 R 中使用 Caret 包在 LASSO 中进行预处理
Regarding preprocessing in LASSO using Caret package in R
我在没有预处理和有预处理的情况下建立了相同的 LASSO 逻辑回归模型。我使用了 5 折交叉验证。
但是我得到了相同的最佳调整参数值。
我的代码如下,
无预处理
require(ISLR)
require(caret)
set.seed(123)
fitControl <- trainControl(method = "cv",number = 5,savePredictions = T)
mod_fitg <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume,
data=Smarket, method = "glmnet",
trControl = fitControl,
tuneGrid=expand.grid(
.alpha=1,
.lambda=10^seq(-5, 5, length =100)),
family="binomial")
mod_fitg$bestTune
> mod_fitg$bestTune
alpha lambda
25 1 0.002656088
有预处理
set.seed(123)
fitControl <- trainControl(method = "cv",number = 5,savePredictions = T)
mod_fitgc <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume,
data=Smarket, method = "glmnet",
trControl = fitControl,
tuneGrid=expand.grid(
.alpha=1,
.lambda=10^seq(-5, 5, length =100)),
family="binomial",preProcess = c("center", "scale"))
mod_fitgc$bestTune
> mod_fitgc$bestTune
alpha lambda
25 1 0.002656088
有没有可能知道我在这里有没有做错?
我是否正确使用了 caret 包?
我使用 caret 包安装了其他模型,如 SVM 或 KNN。对于那些模型,我在预处理后得到了不同的结果。
谢谢
你的代码没问题。您有点回答了您的问题 I fitted other models like SVM or KNN using caret package. For those models i got different results after pre processing
。这里有一些参考 material 可能会回答您的问题。
我在没有预处理和有预处理的情况下建立了相同的 LASSO 逻辑回归模型。我使用了 5 折交叉验证。
但是我得到了相同的最佳调整参数值。
我的代码如下,
无预处理
require(ISLR)
require(caret)
set.seed(123)
fitControl <- trainControl(method = "cv",number = 5,savePredictions = T)
mod_fitg <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume,
data=Smarket, method = "glmnet",
trControl = fitControl,
tuneGrid=expand.grid(
.alpha=1,
.lambda=10^seq(-5, 5, length =100)),
family="binomial")
mod_fitg$bestTune
> mod_fitg$bestTune
alpha lambda
25 1 0.002656088
有预处理
set.seed(123)
fitControl <- trainControl(method = "cv",number = 5,savePredictions = T)
mod_fitgc <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume,
data=Smarket, method = "glmnet",
trControl = fitControl,
tuneGrid=expand.grid(
.alpha=1,
.lambda=10^seq(-5, 5, length =100)),
family="binomial",preProcess = c("center", "scale"))
mod_fitgc$bestTune
> mod_fitgc$bestTune
alpha lambda
25 1 0.002656088
有没有可能知道我在这里有没有做错?
我是否正确使用了 caret 包?
我使用 caret 包安装了其他模型,如 SVM 或 KNN。对于那些模型,我在预处理后得到了不同的结果。
谢谢
你的代码没问题。您有点回答了您的问题 I fitted other models like SVM or KNN using caret package. For those models i got different results after pre processing
。这里有一些参考 material 可能会回答您的问题。