插入符包中的LASSO回归归一化返回奇怪的结果

时间:2019-07-17 01:12:24

标签: r regression linear-regression normalization r-caret

我使用最小-最大归一化对data进行了归一化。然后,我使用了3包中的train函数来构建LASSO回归。

caret

我得到了关注的结果

data <- read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv") 
data<-data[-(3:4)]  #remove catogrical variables

normalize <- function(x) {
  return ((x-min(x)) / (max(x) - min(x)))}
data <- as.data.frame(lapply(data, normalize))

lambda.grid <-10^seq(10,-2, length =100)
alpha.grid<- 1 #Lasso

control <- trainControl(method="LOOCV")
srchGrd = expand.grid(alpha = alpha.grid, lambda = lambda.grid)
lm_model <- train(area ~ . , data=data, trControl=control,tuneGrid=srchGrd,method = 'glmnet')

R平方始终等于1,RMSE值相同!

注意

我知道我们可以使用lambda RMSE Rsquared MAE 1.000000e-02 0.05841138 1 0.01705366 1.321941e-02 0.05841138 1 0.01705366 1.747528e-02 0.05841138 1 0.01705366 2.310130e-02 0.05841138 1 0.01705366 3.053856e-02 0.05841138 1 0.01705366 . . . 函数对数据进行归一化,但结果相同。是否有针对lambda的特定网格。因为我不想使用cv.glmnet。对于ridge和套索回归,我应该使lambda网格相同吗?

有人可以帮助我解决这个问题吗?

0 个答案:

没有答案