Skip to main content
QUICK REVIEW

[论文解读] pystacked: Stacking generalization and machine learning in Stata

Achim Ahrens, Christian Hansen|arXiv (Cornell University)|Aug 23, 2022
Probability and Statistical Research被引用 3
一句话总结

pystacked 是一个 Stata 命令,使用 Python 的 scikit-learn 实现堆叠泛化——即组合多个机器学习模型。它通过使用交叉验证生成元特征,并拟合最终的加权平均模型,支持回归和二分类任务,从而实现优越的预测性能,如在垃圾邮件分类任务中 AUC 达到 0.997。

ABSTRACT

The pystacked command implements stacked generalization (Wolpert, 1992, Neural Networks 5: 241–259) for regression and binary classification via Python’s scikit-learn. Stacking combines multiple supervised machine learners— the “base” or “level-0” learners—into one learner. The currently supported base learners include regularized regression, random forest, gradient boosted trees, support vector machines, and feed-forward neural nets (multilayer perceptron). pystacked can also be used as a “regular” machine learning program to fit one base learner and thus provides an easy-to-use application programming interface for scikit-learn’s machine learning algorithms.

研究动机与目标

  • 为 Stata 用户提供一个无缝接口,用于堆叠泛化这一强大的集成方法,以提升预测准确性。
  • 通过集成 scikit-learn 的多样化算法(包括正则化回归、随机森林、梯度提升、支持向量机和神经网络),扩展 Stata 的机器学习能力。
  • 通过统一的、用户友好的 API,同时支持堆叠泛化和单个学习器的独立训练。
  • 通过与 DDML(双重去偏机器学习)集成,支持交叉匹配和稳健预测模型,促进因果推断应用。
  • 通过支持稀疏矩阵、自定义管道和并行计算,提升可重复性和可用性,实现在 Stata 原生环境中的高效运行。

提出的方法

  • 使用交叉验证从多个基础学习器生成样本外预测("元特征"),以防止堆叠过程中过拟合。
  • 使用最终层级学习器(通常为约束最小二乘法)基于基础模型的交叉验证预测结果作为输入特征,预测真实结果。
  • 对堆叠权重施加非负且总和为一的约束,以确保其解释性,即作为基础模型的加权平均。
  • 通过 scikit-learn 管道支持模型特定的预处理(例如,对逻辑回归进行多项式扩展)。
  • 通过 njobs() 选项支持并行计算,加快梯度提升和神经网络等计算密集型模型的训练速度。
  • 提供两种语法变体:灵活模块化的语法和简化命令行格式,便于使用。

实验结果

研究问题

  • RQ1在 Stata 中使用堆叠泛化是否能显著提升回归和分类任务中个体机器学习模型的预测性能?
  • RQ2pystacked 与 scikit-learn 的集成如何相较于现有工具增强 Stata 的机器学习生态系统?
  • RQ3在真实世界数据集(如垃圾邮件分类任务)中,堆叠相较于个体基础学习器在多大程度上降低了预测误差?
  • RQ4pystacked 如何通过与 DDML 和交叉匹配的兼容性支持高级应用场景(如因果推断)?
  • RQ5在组合多个学习器时,模型多样性、计算成本和预测准确性之间的实际权衡是什么?

主要发现

  • 在垃圾邮件分类任务中,堆叠模型实现了 0.9969 的样本外 AUC,显著优于逻辑回归(AUC 0.9133)和单个梯度提升模型(AUC 分别为 0.9973 和 0.9562)。
  • 使用 600 棵树的梯度提升模型获得了最高的堆叠权重(0.482),表明其对最终预测贡献最大,其次是使用 1000 棵树的另一梯度提升模型(权重 0.345)。
  • 最终堆叠模型在测试集上达到 94.9% 的准确率(在 1133 个保留观测中正确预测 678 个真正例和 397 个真负例),而逻辑回归仅为 71.2%。
  • 混淆矩阵显示,堆叠模型在保留集中仅有 29 个假正例和 29 个假负例,而逻辑回归分别为 294 和 32 个。
  • pystacked 无需手动组合模型,成功将多种模型(包括不同架构的神经网络)整合为单一高性能集成模型。
  • 该程序对稀疏矩阵、自定义管道和并行计算(通过 njobs)的支持,使得在大型数据集上高效训练和部署成为可能。

更好的研究,从现在开始

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

无需绑定信用卡

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