Find problems when using glmnet in caret package. The original glmnet works for the same input data. Random Forest works for the same data in caret.
Example code
library(caret)
library(glmnet)
data(iris)
head(iris)
x = iris[,1:3]
y = iris[, 4]
fit = glmnet(as.matrix(x), y)
print(fit)
#plot(fit, xvar = "lambda", label = TRUE)
rfFit <- caret::train( x=x, y=y, method = 'rf', verbose = TRUE)
rfFit
glmFit <- caret::train( x=x, y=y, method = 'glmnet', verbose = TRUE)
#glmFit
sessionInfo()
Output:
fit = glmnet(as.matrix(x), y)
str(fit, max.level = 1)
List of 12
$ a0 : Named num [1:75] 1.199 1.061 0.934 0.819 0.714 ...
..- attr(*, "names")= chr [1:75] "s0" "s1" "s2" "s3" ...
$ beta :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
$ df : int [1:75] 0 1 1 1 1 1 1 1 1 1 ...
$ dim : int [1:2] 3 75
$ lambda : num [1:75] 0.731 0.666 0.607 0.553 0.504 ...
$ dev.ratio: num [1:75] 0 0.157 0.288 0.397 0.487 ...
$ nulldev : num 86.6
$ npasses : int 493
$ jerr : int 0
$ offset : logi FALSE
$ call : language glmnet(x = as.matrix(x), y = y)
$ nobs : int 150
- attr(*, "class")= chr [1:2] "elnet" "glmnet"
plot(fit, xvar = "lambda", label = TRUE)
rfFit <- caret::train( x=x, y=y, method = 'rf', verbose = TRUE)
note: only 2 unique complexity parameters in default grid. Truncating the grid to 2 .
rfFit
Random Forest
150 samples
3 predictors
No pre-processing
Resampling: Bootstrapped (25 reps)
Summary of sample sizes: 150, 150, 150, 150, 150, 150, ...
Resampling results across tuning parameters:
mtry RMSE Rsquared RMSE SD Rsquared SD
2 0.2042819 0.9299771 0.02026926 0.01435902
3 0.2073273 0.9285442 0.02054641 0.01473437
RMSE was used to select the optimal model using the smallest value.
The final value used for the model was mtry = 2.
glmFit <- caret::train( x=x, y=y, method = 'glmnet', verbose = TRUE)
Something is wrong; all the RMSE metric values are missing:
RMSE Rsquared
Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA
Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA
NA's :9 NA's :9
Error in train.default(x = x, y = y, method = "glmnet", verbose = TRUE) :
Stopping
In addition: There were 50 or more warnings (use warnings() to see the first 50)
sessionInfo()
R version 3.1.3 (2015-03-09)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats4 parallel stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] glmnet_2.0-2 Matrix_1.1-5 elasticnet_1.1
[4] lars_1.2 caret_6.0-64 lattice_0.20-30
[7] plyr_1.8.3 optparse_1.3.2 GenomicRanges_1.18.4
[10] GenomeInfoDb_1.2.5 IRanges_2.0.1 S4Vectors_0.4.0
[13] BiocGenerics_0.12.1 stringr_1.0.0 doMC_1.3.4
[16] iterators_1.0.8 foreach_1.4.3 mclust_5.0.2
[19] randomForest_4.6-10 ggplot2_1.0.1
loaded via a namespace (and not attached):
[1] car_2.0-25 codetools_0.2-10 colorspace_1.2-6 compiler_3.1.3
[5] digest_0.6.8 getopt_1.20.0 grid_3.1.3 gtable_0.1.2
[9] lme4_1.1-10 magrittr_1.5 MASS_7.3-39 MatrixModels_0.4-1
[13] mgcv_1.8-4 minqa_1.2.4 munsell_0.4.2 nlme_3.1-120
[17] nloptr_1.0.4 nnet_7.3-9 pbkrtest_0.4-2 proto_0.3-10
[21] quantreg_5.19 Rcpp_0.12.0 reshape2_1.4.1 scales_0.3.0
[25] SparseM_1.7 splines_3.1.3 stringi_0.5-5 tools_3.1.3
[29] XVector_0.6.0
=====================================
Any suggestion is appreciated. Thanks in advance.
Find the solution at one thread: Caret error using GBM, but not without caret.
Removing VERBOSE option fixes the problem