Scikit-learn 1.9 发布:引入回调机制、GPU 加速与数值稳定性全面升级
Scikit-learn 1.9 版本已于近日正式发布,由核心贡献者 Gael Varoquaux 领衔推出。本次更新不仅修复了现有 Estimator 的性能与稳定性问题,更在架构层面引入了Callback 机制,并大幅增强了数值计算能力与GPU 支持,标志着该库在处理复杂、大规模数据时的成熟度迈上新台阶。
核心突破:实验性 Callback 机制
本次发布最大的亮点之一是引入了Callback 机制(目前处于实验阶段)。这一机制允许开发者在训练过程中实时介入,监控收敛进度、显示进度条,甚至实现基于指标的早停(Early Stopping)。
- 功能特性:支持嵌套追踪进度,即使在并行计算环境下也能准确记录各项指标。
- 当前支持:Logistic Regression (LBFGS 求解器)、各类 SearchCV 对象、Pipeline 及 StandardScaler。
- 未来展望:后续版本将逐步扩展至更多 Estimator,为社区贡献者提供了广阔的优化空间。
数值稳定性与缺失值处理
针对用户常遇到的“火前忘后”(fire-and-forget)痛点,1.9 版本在数值鲁棒性上进行了深度加固:
- 缺失值原生支持:
RandomForestRegressor在最小化绝对误差准则时,原生支持缺失值;树模型单调约束也支持缺失值处理。 - 样本权重优化:修复了
HistGradientBoosting、RandomForest和ExtraTree在复杂管道中样本权重拟合的统计正确性问题。 - 内存效率提升:逻辑回归(Logistic Regression)现可原生使用
float32数据类型,显著降低内存压力。 - 稀疏数据适配:多任务线性模型现支持稀疏输入 X 及样本权重。
计算加速与 GPU 支持
随着 scipy 逐渐淡化对稀疏矩阵(sparse matrices)的依赖,Scikit-learn 1.9 完成了从矩阵到稀疏数组(sparse arrays)的迁移,行为更符合现代数组 API。
- GPU 加速:新增对 GPU 后端的支持,涵盖逻辑回归、泊松回归(LBFGS 求解器)及 Nystroem 核近似等关键模块。
- 性能优化:
RidgeCV和RidgeClassifierCV引入了特征筛选,大幅加速稀疏平方损失回归器的拟合速度;Spectral embedding计算速度进一步提升。
开发者价值总结
Scikit-learn 1.9 通过Callback 机制解决了训练过程黑盒问题,通过缺失值与数值优化降低了数据预处理门槛,并通过GPU 支持释放了高性能计算潜力。对于追求生产级稳定性的开发者而言,这是一个兼顾易用性与极致性能的重要里程碑。
"Scikit-learn 1.9 是一次真正的整合与巩固,我们在完成选项与数据类型的组合方面迈出了坚实的一步。" —— Gael Varoquaux, Scikit-learn 核心贡献者