The R Journal: article published in 2020, volume 12:2

The biglasso Package: A Memory- and Computation-Efficient Solver for Lasso Model Fitting with Big Data in R PDF download
Yaohui Zeng and Patrick Breheny , The R Journal (2020) 12:2, pages 6-19.

Abstract Penalized regression models such as the lasso have been extensively applied to analyzing high-dimensional data sets. However, due to memory limitations, existing R packages like glmnet and ncvreg are not capable of fitting lasso-type models for ultrahigh-dimensional, multi-gigabyte data sets that are increasingly seen in many areas such as genetics, genomics, biomedical imaging, and high-frequency finance. In this research, we implement an R package called biglasso that tackles this challenge. biglasso utilizes memory-mapped files to store the massive data on the disk, only reading data into memory when necessary during model fitting, and is thus able to handle out-of core computation seamlessly. Moreover, it’s equipped with newly proposed, more efficient feature screening rules, which substantially accelerate the computation. Benchmarking experiments show that our biglasso package, as compared to existing popular ones like glmnet, is much more memory and computation-efficient. We further analyze a 36 GB simulated GWAS data set on a laptop with only 16 GB RAM to demonstrate the out-of-core computation capability of biglasso in analyzing massive data sets that cannot be accommodated by existing R packages.

Received: 2018-12-07; online 2021-01-14, supplementary material, (418 B)
CRAN packages: glmnet, ncvreg, biglasso, picasso, bigmemory, parallel
CRAN Task Views implied by cited CRAN packages: MachineLearning, HighPerformanceComputing, Survival


CC BY 4.0
This article and supplementary materials are licensed under a Creative Commons Attribution 4.0 International license.

@article{RJ-2021-001,
  author = {Yaohui Zeng and Patrick Breheny},
  title = {{The biglasso Package: A Memory- and Computation-Efficient
          Solver for Lasso Model Fitting with Big Data in R}},
  year = {2021},
  journal = {{The R Journal}},
  doi = {10.32614/RJ-2021-001},
  url = {https://doi.org/10.32614/RJ-2021-001},
  pages = {6--19},
  volume = {12},
  number = {2}
}