Competitive Adaptive Reweighted Sampling (CARS) Algorithm
The carsAlgo implements Competitive Adaptive Reweighted Sampling (CARS) algorithm for variable selection from high-dimensional dataset using in Partial Least Squares (PLS) regression models. CARS algorithm iteratively applies the Monte Carlo sub-sampling and exponential variable elimination techniques to identify/select the most informative variables/features subjected to minimal cross-validated RMSE score. The implementation of CARS algorithm is inspired from the work of Li et al. (2009) doi:10.1016/j.aca.2009.06.046. This algorithm is widely applied in near-infrared (NIR), mid-infrared (MIR), hyperspectral chemometrics areas, etc.
You can install the development version of cars like so:
install.packages(c("pls", "ggplot2", "stats"))
# Install cars from local source
install.packages("path/to/carsAlgo_0.5.0.tar.gz", repos = NULL, type = "source")
or
remotes::install_github("mah-iasri/carsAlgo")This is a basic example of how cars can be used:
library(carsAlgo)
set.seed(1)
X <- matrix(rnorm(100 * 200), nrow = 100)
y <- X[, 5] * 2 + X[, 50] * -1.5 + rnorm(100, sd = 0.5)
cars_obj <- CARSAlgorithm(max_iter = 15, N = 30, cv_folds = 5)
result <- fit(cars_obj, X, y, max_components = 8,
plot_path = file.path(tempdir(), "cars_rmsecv_curve.jpg")))
cat("Best RMSECV :", result$best_rmsecv, "\n")
cat("Selected features:", result$best_features, "\n")Li, H., Liang, Y., Xu, Q., & Cao, D. (2009). Key wavelengths screening using competitive adaptive reweighted sampling method for multivariate calibration. Analytica Chimica Acta, 648(1), 77–84. https://doi.org/10.1016/j.aca.2009.06.046
Haque, M.A., Ghosh, A., Karamakar, S., Sachan, H. and Kumari, S. (2026). carsAlgo. R Package. CRAN