我使用最小-最大归一化对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网格相同吗?
有人可以帮助我解决这个问题吗?