项目介绍:NannyML
NannyML 是一个开源的 Python 库,专为数据科学家设计,用于估算机器学习模型在部署后的性能(无需目标访问),检测数据漂移,并智能地将数据漂移警报与模型性能变化相关联。无论您是处理分类问题还是回归问题,该工具都适用于所有表格数据的应用场景,并提供了方便使用的界面和交互式可视化功能。
为什么选择 NannyML?
NannyML 通过提供性能监控和后期部署数据科学解决方案,帮助数据科学家快速识别和自动检测模型的静默故障,确保他们对已部署的机器学习模型保持完全的可见性和信任。这些功能可以带来以下好处:
- 解除不知模型性能如何的失眠之苦 😴
- 分析随时间变化的数据漂移和模型性能
- 发现模型性能不如预期的根本原因
- 避免警报疲劳,只有在模型性能受影响时才需要反应
- 在任何环境中轻松设置
深入探讨
1. 性能估算与监控
NannyML 提供性能估算工具,即使实际结果延迟获得或完全缺失。通过 NannyML 的 CBPE 算法,可以对分类模型进行性能估算;通过 DLE 算法,可以对回归模型进行估算。这些算法会根据推理时的预测输出估算模型性能,而非未来预测的性能。
此外,NannyML 还能在目标可用时追踪机器学习模型的实际性能。
2. 数据漂移检测
NannyML 使用基于 PCA 的数据重建技术来检测多变量特征漂移。通过观察重建误差随时间的变化,当某一段时间的误差超过阈值时,系统会记录数据漂移警报。对于单变量特征漂移,NannyML 使用多种统计测试进行检测。
3. 智能警报
由于 NannyML 能估算性能,它能过滤掉那些不影响预期性能的数据漂移警报,从而减少警报疲劳。除去将数据漂移问题与性能降低关联,还可通过 NannyML 的 Ranker 根据其他标准来优先处理警报。
开始使用
要开始使用 NannyML,可以通过 PyPI 或 Conda 进行安装,也可以使用 Docker 运行。
pip install nannyml
或
conda install -c conda-forge nannyml
对于数据库连接或结果导出到数据库的情况,可以安装数据库的额外依赖:
pip install nannyml[db]
快速上手
以下是一个简单的例子,展示了如何使用 NannyML 进行性能估计和数据漂移检测:
import nannyml as nml
import pandas as pd
# 加载示例数据
reference_df, analysis_df, _ = nml.load_us_census_ma_employment_data()
# 初始化估算器并进行拟合和估算
estimator = nml.CBPE(
problem_type='classification_binary',
y_pred_proba='predicted_probability',
y_pred='prediction',
y_true='employed',
metrics=['roc_auc'],
chunk_size=5000
)
estimator = estimator.fit(reference_df)
estimated_performance = estimator.estimate(analysis_df)
# 显示结果
figure = estimated_performance.plot()
figure.show()
文档和社区
NannyML 拥有丰富的文档资源帮助用户深入了解和使用本项目。用户也可加入社区 Slack 频道,与其他用户讨论和交流心得。NannyML 开发团队欢迎所有形式的贡献,有兴趣的用户可以在项目的 GitHub 页面上提交新功能建议或报告问题。
许可证
NannyML 按照 Apache 2.0 开放源代码许可证进行分发。所有贡献将根据该许可证进行分发。
通过以上介绍,您可以看到 NannyML 是如何帮助数据科学家变得更加高效和从容应对模型在现实环境中带来的挑战。