Skip to main content
QUICK REVIEW

[论文解读] The biglasso Package: A Memory- and Computation-Efficient Solver for Lasso Model Fitting with Big Data in R

Yaohui Zeng, Patrick Breheny|arXiv (Cornell University)|Jan 20, 2017
Machine Learning and Data Classification参考文献 12被引用 43
一句话总结

该论文介绍了 biglasso R 包,这是一种针对大规模数据的内存和计算高效求解器,通过利用内存映射文件实现内存外计算,并引入新型混合安全-强特征筛选规则,可在数据量超过可用内存时仍能拟合套索模型。该方法在仅配备 16 GB 内存的笔记本电脑上成功分析了 31 GB 的全基因组关联研究数据,实现比 glmnet 等现有包快 1.5 至 4 倍的性能提升。

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 31 GB real 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.

研究动机与目标

  • 解决现有 R 包(如 glmnet 和 ncvreg)在处理超过可用内存的超大规模、多 GB 数据集时的局限性。
  • 在 R 中开发一种可扩展的、内存外的套索求解器,能够处理超过主内存容量的数据集。
  • 通过优化数据处理和特征筛选,降低内存和计算开销。
  • 实现在标准硬件(如笔记本电脑)上无需高端计算资源即可进行实际的大数据分析。

提出的方法

  • 利用内存映射文件将大型数据集存储在磁盘上,并在计算过程中仅将必要部分加载到内存中,实现无缝的内存外处理。
  • 采用路径追踪坐标下降算法并结合热启动,该方法在求解套索问题方面以高效率著称。
  • 提出一种新型混合筛选规则 SSR-BEDPP,结合安全规则与强规则,更早地剔除无关特征,从而加速收敛。
  • 通过避免冗余数据副本实现内存高效的处理方式,与 glmnet 相比内存使用量至少减少 2 倍。
  • 利用 C++ 实现性能关键的计算部分,并通过 OpenMP 实现多 CPU 核心的共享内存并行计算。
  • 利用 bigmemory 包管理大型矩阵,将其作为持久的磁盘后端对象,可像内存中的 R 对象一样访问。

实验结果

研究问题

  • RQ1是否可以使用标准 R 包在超过可用内存的数据集上高效地拟合套索模型?
  • RQ2所提出的混合筛选规则(SSR-BEDPP)在速度和准确性方面与现有规则(如 SSR 和 SEDPP)相比表现如何?
  • RQ3内存映射文件 I/O 和内存外计算在多大程度上能减少内存使用量,同时保持计算效率?
  • RQ4biglasso 包在真实世界的大数据(如 31 GB 全基因组关联研究)上的可扩展性如何?
  • RQ5该包是否能在不牺牲模型准确性的前提下,实现相对于现有 R 包(如 glmnet 和 ncvreg)的显著性能提升?

主要发现

  • biglasso 包成功在仅 16 GB 内存的笔记本电脑上使用 31 GB 数据集拟合了套索模型,证明了真正的内存外计算能力。
  • 通过使用新型 SSR-BEDPP 筛选规则,与现有包(如 glmnet)相比,性能提升了 1.5 至 4 倍。
  • 当 λ_min/λ_max = 0.5 且使用 4 个核心时,SSR-BEDPP 规则将总计算时间从 286 分钟(SSR)减少至 103 分钟。
  • 由于消除了冗余数据副本并实现了高效的内存管理,biglasso 的内存占用量至少比 glmnet 减少 2 倍。
  • 在使用 4 个核心的情况下,31 GB GWAS 数据的解路径计算耗时 94 分钟(线性回归)和 146 分钟(逻辑回归)。
  • 在 λ = 0.06 时,模型选中了 23 个变量,系数估计值和变量选择结果均被准确恢复。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。