机器学习中的模型合并(model combination)可以通过合并多个模型达到提升性能与稳定性的目的。模型合并往往被认为是集成学习(ensemble learning)的一个子领域,但其实也可以被单独拿出来讨论,作为一项实用的性能提升的手段。在绝大部分的机器学习/数据挖掘竞赛中(比如 Kaggle),最终获胜的方案都是多个模型的合成体。除此之外,模型合并也常被用于减少数据和模型中的随机性,提高模型的稳定性,详情可以参考:「大部分机器学习算法具有随机性,只需多次实验求平均值即可吗?」
为了方便大家对机器学习模型进行合并,我最近开发了一个新的 Python 工具库「combo」,起这个名字是因为 combo 代表“点套餐” ,与我们的目的不谋而合 🙂 combo 有以下特点:
- 包括多种合并方法,从最简单的平均到在 Kaggle 中常见的 Stacking,再到更复杂的 Dynamic Classifier Selection(动态分类器选择)。
- 支持多种不同的场景,包括分类器合并,原始结果(raw score)合并,聚类合并(对聚类结果进行合并),异常检测器(outlier detector)合并。未来或许会支持更多不同的场景。
- 简单易用且一致的API,只需要几行代码就可以完成模型融合,方便评估大量算法。
- 全面的文档,详细的示例。每个模型都搭配相对应的支持文件,方便学习与使用。
- 使用 JIT 和并行化(parallelization)进行优化,加速算法运行及扩展性(scalability),可以处理大量数据。
- 支持 Python 3.5+及主流操作系统:WIN,macOS 和 Linux,使用 CI 工具保证代码稳定性。
