Skip to main content
QUICK REVIEW

[论文解读] abess: A Fast Best Subset Selection Library in Python and R

Jin Zhu, Xueqin Wang|arXiv (Cornell University)|Oct 19, 2021
Statistical Methods and Inference参考文献 16被引用 7
一句话总结

abess 是一个高性能、开源的 Python 和 R 库,实现了在各类机器学习任务(包括线性回归、分类和主成分分析)中统一的最佳子集选择(BSS)框架。通过使用拼接技术并结合 C++ 加速计算,同时采用暖启动和 OpenMP 并行化等优化手段,abess 在多项式时间内实现了经认证的最优解,运行速度比 scikit-learn 的 Lasso 等竞争工具快达 20 倍。

ABSTRACT

We introduce a new library named abess that implements a unified framework of best-subset selection for solving diverse machine learning problems, e.g., linear regression, classification, and principal component analysis. Particularly, the abess certifiably gets the optimal solution within polynomial times with high probability under the linear model. Our efficient implementation allows abess to attain the solution of best-subset selection problems as fast as or even 20x faster than existing competing variable (model) selection toolboxes. Furthermore, it supports common variants like best group subset selection and $\ell_2$ regularized best-subset selection. The core of the library is programmed in C++. For ease of use, a Python library is designed for conveniently integrating with scikit-learn, and it can be installed from the Python library Index. In addition, a user-friendly R library is available at the Comprehensive R Archive Network. The source code is available at: https://github.com/abess-team/abess.

研究动机与目标

  • 开发一个统一、高效且可扩展的库,用于解决各类机器学习问题中的最佳子集选择。
  • 在多项式时间内以高概率提供线性模型下最佳子集选择的经认证最优解。
  • 支持高级变体,包括分组选择、$β$-正则化和干扰变量选择。
  • 确保与主流数据科学生态系统(如 scikit-learn 和 R 的 tidyverse)无缝集成。
  • 通过低层级优化(如稀疏矩阵支持、暖启动初始化和 OpenMP 并行化)实现高性能。

提出的方法

  • 核心算法使用拼接技术,高效探索子集空间,并在高概率下以多项式时间找到线性模型下的最优模型。
  • 该库使用 C++ 实现以提升性能,同时提供高层级的 Python 和 R 接口以增强可用性和集成能力。
  • 支持多种求解器以适应不同的学习任务,包括线性、逻辑回归、泊松回归、伽马回归、多项式、有序回归、Cox 比例风险模型、多任务回归以及稀疏主成分分析回归。
  • 该框架通过算法扩展原生支持分组结构预测变量、$β$-正则化和干扰变量选择。
  • 性能通过暖启动初始化、稀疏矩阵处理以及基于 OpenMP 的 CPU 核心并行化得到增强。
  • 该库在 Python 中与 scikit-learn 集成,在 R 中遵循 tidyverse 标准,支持与标准机器学习流水线的兼容。

实验结果

研究问题

  • RQ1在多项式时间内,是否可以在线性模型下以理论保证高效求解最佳子集选择?
  • RQ2abess 在速度和解的质量方面与 scikit-learn 和 celer 等成熟库相比表现如何?
  • RQ3abess 在保持稀疏性和准确性的同时,能够在多大程度上扩展到高维数据集?
  • RQ4abess 是否能够通过统一框架高效处理包括分类、生存分析和主成分分析在内的多样化学习任务?
  • RQ5abess 与 scikit-learn 和 R 生态系统的集成在可用性和工作流兼容性方面产生了何种影响?

主要发现

  • abess 在线性模型下以高概率在多项式时间内实现最佳子集选择的经认证最优解,该结论由 Zhu 等人(2020)证明。
  • 在癌症数据集上,abess 的运行时间(1.00 秒)比 scikit-learn 的 LassoCV(62.16 秒)快超过 20 倍,同时 AUC 性能相当(0.97)。
  • 在稀疏主成分分析任务中,abess 使用 20 个非零载荷解释了 3.88% 的方差,优于 elasticnet(2.00%),且在相同稀疏性下运行速度快 80 倍(1.05 秒 vs. 85.54 秒)。
  • Python 和 R 版本的代码覆盖率分别达到 97% 和 96%,严格遵循 PEP8 和 tidyverse 风格指南。
  • abess 通过模块化算法框架支持多种模型,包括逻辑回归、泊松回归、伽马回归、多项式回归、有序回归、Cox 比例风险模型、多任务回归和稀疏主成分分析。
  • 该库已发布于 PyPI 和 CRAN,提供完整文档,并通过 GitHub Actions 实现持续集成。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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