关于使用R

时间:2019-08-29 14:14:09

标签: r r-caret lasso-regression

我在没有预处理和有预处理的情况下建立了相同的LASSO logistic回归模型。我使用了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

是否可以知道我在这里是否犯了任何错误?

我可以正确使用插入符号包吗?

我使用插入符号包安装了其他模型,例如SVM或KNN。对于那些模型,经过预处理,我得到了不同的结果。

谢谢

1 个答案:

答案 0 :(得分:3)

您的代码很好。您已经回答了问题I fitted other models like SVM or KNN using caret package. For those models i got different results after pre processing。这是一些可以回答您问题的参考资料。

https://stats.stackexchange.com/questions/33674/why-do-lars-and-glmnet-give-different-solutions-for-the-lasso-problem