Create an MVPA Model
mvpa_model.Rd
Create an MVPA model based on a caret-based classification or regression model.
Usage
mvpa_model(
model,
dataset,
design,
model_type = c("classification", "regression"),
crossval = NULL,
feature_selector = NULL,
tune_grid = NULL,
tune_reps = 15,
performance = NULL,
class_metrics = TRUE
)
Arguments
- model
A caret-based classification or regression model.
- dataset
An `mvpa_dataset` instance.
- design
An `mvpa_design` instance.
- model_type
A character string indicating the problem type: "classification" or "regression".
- crossval
An optional `cross_validation` instance.
- feature_selector
An optional `feature_selector` instance.
- tune_grid
An optional parameter tuning grid as a `data.frame`.
- tune_reps
The number of replications used during parameter tuning. Only relevant if `tune_grid` is supplied.
- performance
An optional custom function for computing performance metrics.
- class_metrics
A logical flag indicating whether to compute performance metrics for each class.
Details
If `performance` is supplied, it must be a function that takes one argument and returns a named list of scalar values. The argument the function takes is a class deriving from `classification_result` appropriate for the problem at hand. See example below.
Examples
mod <- load_model("sda")
traindat <- neuroim2::NeuroVec(array(rnorm(6*6*6*100), c(6,6,6,100)), neuroim2::NeuroSpace(c(6,6,6,100)))
mask <- neuroim2::LogicalNeuroVol(array(rnorm(6*6*6)>-.2, c(6,6,6)), neuroim2::NeuroSpace(c(6,6,6)))
mvdset <- mvpa_dataset(traindat,mask=mask)
design <- data.frame(fac=rep(letters[1:4], 25), block=rep(1:10, each=10))
cval <- blocked_cross_validation(design$block)
mvdes <- mvpa_design(design, ~ fac, block_var=~block)
custom_perf <- function(result) {
c(accuracy=sum(result$observed == result$predicted)/length(result$observed))
}
mvpmod <- mvpa_model(mod, dataset=mvdset, design=mvdes, crossval=cval, performance=custom_perf)
ret <- run_searchlight(mvpmod)
#> INFO [2024-04-23 13:39:49] model is: sda
#> INFO [2024-04-23 13:39:49] running randomized searchlight with 8 radius and 4 iterations
#> INFO [2024-04-23 13:39:49] searchlight iteration: 1
#> INFO [2024-04-23 13:39:49] mvpa_iterate: compute analysis for batch 1 ...
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9919
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.8768
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9139
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9382
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9521
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9832
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> INFO [2024-04-23 13:39:50] searchlight iteration: 2
#> INFO [2024-04-23 13:39:50] mvpa_iterate: compute analysis for batch 1 ...
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9822
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.8811
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.906
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9376
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9457
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9706
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.99
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Number of variables: 123
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 123 features.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> INFO [2024-04-23 13:39:50] mvpa_iterate: compute analysis for batch 2 ...
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.6666
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.8191
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.599
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9471
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> Number of variables: 4
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.8865
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 4 features.
#> INFO [2024-04-23 13:39:50] searchlight iteration: 3
#> INFO [2024-04-23 13:39:51] mvpa_iterate: compute analysis for batch 1 ...
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9919
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.8768
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9139
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9382
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9521
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9832
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> INFO [2024-04-23 13:39:51] searchlight iteration: 4
#> INFO [2024-04-23 13:39:51] mvpa_iterate: compute analysis for batch 1 ...
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9919
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.8768
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9139
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9382
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9521
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.9832
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Number of variables: 127
#> Number of observations: 90
#> Number of classes: 4
#>
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 1
#>
#>
#> Computing inverse correlation matrix (pooled across classes)
#> Specified shrinkage intensity lambda (correlation matrix): 0
#> Prediction uses 127 features.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> Warning: Estimated correlation matrix doesn't have full rank - pseudoinverse used for inversion.
#> INFO [2024-04-23 13:39:52] number of models fit: 5
stopifnot("accuracy" %in% names(ret))