Uncertainty Toolbox: a Python toolbox for predictive uncertainty quantification, calibration, metrics, and visualization
不确定性工具箱
**不确定性工具箱**
一个用于预测性不确定性量化、校准、评估指标与可视化的Python库。 同时包括:术语词典和相关论文及参考资料合集(docs/paper_list.md)。
许多机器学习方法会返回带有某种形式不确定性的预测,如分布或置信区间。这就引出了一些问题:如何决定最佳的预测不确定性是什么?什么是“最佳”或“理想”的不确定性?我们的不确定性是否准确并且**校准良好**?
不确定性工具箱提供了标准指标来量化和比较预测性不确定性估计值,提供这些指标的直觉,生成这些指标和不确定性的可视化,并实现简单的“再校准”程序以改进这些不确定性。目前该库专注于回归任务。
工具箱内容
不确定性工具箱包含:
安装
不确定性工具箱需要Python 3.6+。仅安装包本身,可以运行:
pip install uncertainty-toolbox
要完整安装,包括示例、测试和最新更新,运行:
git clone https://github.com/uncertainty-toolbox/uncertainty-toolbox.git
cd uncertainty-toolbox
pip install -e . -r requirements/requirements_dev.txt
请注意,上述命令要求pip版本至少为21.3。
验证正确安装,可以通过运行测试套件:
source shell/run_all_tests.sh
快速开始
import uncertainty_toolbox as uct
# 加载包含100个预测值、不确定性、真实值的示例数据集
predictions, predictions_std, y, x = uct.data.synthetic_sine_heteroscedastic(100)
# 计算所有不确定性指标
metrics = uct.metrics.get_all_metrics(predictions, predictions_std, y)
此示例计算了预测值向量(predictions)及其关联不确定性(predictions_std,标准差向量)的指标,相对于一组相应的实际值y。
Colab笔记本: 您还可以查看这个Colab笔记本,它演示了不确定性工具箱的一个使用案例。
指标
不确定性工具箱提供了多个指标来量化和比较预测不确定性估计值。例如,get_all_metrics函数会返回:
- 平均校准:平均绝对校准误差,校准误差平方根,错位面积。
- 对抗性群体校准:对抗性群体平均绝对校准误差,对抗性群体校准误差平方根。
- 锐度:期望标准偏差。
- 适当评分规则:负对数似然,连续排名概率得分,检查分数,间隔得分。
- 准确性:平均绝对误差,均方根误差,中位绝对误差,决定系数,相关系数。
可视化
以下是一些由不确定性工具箱提供的可视化示例。参见此示例代码以重现这些图表。
过度自信(不确定性过小)
低估(不确定性过大)
校准良好
对于以上三种情况,以下是几个校准指标:
| 平均绝对校准误差 (MACE) | 校准误差平方根 (RMSCE) | 错位面积 (MA) | |
|---|---|---|---|
| 过度自信 | 0.19429 | 0.21753 | 0.19625 |
| 低估 | 0.20692 | 0.23003 | 0.20901 |
| 校准良好 | 0.00862 | 0.01040 | 0.00865 |
再校准
以下是不确定性工具箱提供的再校准过程的结果,该过程可转换一组预测不确定性以改善平均校准。算法基于等距回归,如Kuleshov等人所提议的。
参见此示例代码以重现这些图表。
重新校准过度自信的预测
| 平均绝对校准误差 (MACE) | 校准误差平方根 (RMSCE) | 错位面积 (MA) | |
|---|---|---|---|
| 再校准前 | 0.19429 | 0.21753 | 0.19625 |
| 再校准后 | 0.01124 | 0.02591 | 0.01117 |
重新校准低估的预测
| 平均绝对校准误差 (MACE) | 校准误差平方根 (RMSCE) | 错位面积 (MA) | |
|---|---|---|---|
| 再校准前 | 0.20692 | 0.23003 | 0.20901 |
| 再校准后 | 0.00157 | 0.00205 | 0.00132 |
贡献
我们非常欢迎并感谢社区的贡献!请参考我们的贡献指南,了解如何参与进来。
引用
如果你觉得这个工具箱对你有所帮助,请引用以下论文:
@article{chung2021uncertainty,
title={Uncertainty Toolbox: 一个开源库,用于评估、可视化和改进不确定性量化},
author={Chung, Youngseog 和 Char, Ian 及 Guo, Han 和 Schneider, Jeff 和 Neiswanger, Willie},
journal={arXiv preprint arXiv:2109.10254},
year={2021}
}
此外,以下是推动该工具箱开发的相关论文:
@article{chung2020beyond,
title={超越Pinball损失:用于校准不确定性量化的分位数方法},
author={Chung, Youngseog 和 Neiswanger, Willie 及 Char, Ian 和 Schneider, Jeff},
journal={arXiv preprint arXiv:2011.09588},
year={2020}
}
@article{tran2020methods,
title={材料属性预测的不确定性量化比较方法},
author={Tran, Kevin 和 Neiswanger, Willie 及 Yoon, Junwoong 和 Zhang, Qingyang 及 Xing, Eric 和 Ulissi, Zachary W},
journal={Machine Learning: Science and Technology},
volume={1},
number={2},
pages={025006},
year={2020},
publisher={IOP Publishing}
}
致谢
Uncertainty Toolbox的发展得到了以下机构的支持。
项目介绍
不确定性工具箱:一款用于预测不确定性量化、校准、度量及可视化的Python工具集。【此简介由AI生成】
下载使用量
项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新