Uncertainty Quantification 360 (UQ360) 是一个带有 Python 包的开源工具包,为数据科学从业者和开发人员提供最先进的算法,以简化估计、评估、改进和交流不确定性的过程。机器学习模型作为人工智能透明度的常见做法。 UQ360 交互式体验通过示例用例简要介绍了概念和功能。教程和示例笔记本提供了更深入、面向数据科学家的介绍。完整的 API 也可用。
我们开发该软件包时考虑到了可扩展性。该库仍在开发中。我们鼓励您贡献不确定性估计算法、指标和应用程序。要开始成为贡献者,请在此处请求邀请,加入 Slack 上 AIF360 社区的 #uq360-users 或 #uq360-developers 频道。
使用元模型通过预测区间来增强 sklearn 的梯度增强回归器。请参阅此处的详细示例。
from sklearn . ensemble import GradientBoostingRegressor
from sklearn . datasets import make_regression
from sklearn . model_selection import train_test_split
from uq360 . algorithms . blackbox_metamodel import MetamodelRegression
# Create train, calibration and test splits.
X , y = make_regression ( random_state = 0 )
X_train , X_test , y_train , y_test = train_test_split ( X , y , random_state = 0 )
X_train , X_calibration , y_train , y_calibration = train_test_split ( X_train , y_train , random_state = 0 )
# Train the base model that provides the mean estimates.
gbr_reg = GradientBoostingRegressor ( random_state = 0 )
gbr_reg . fit ( X_train , y_train )
# Train the meta-model that can augment the mean prediction with prediction intervals.
uq_model = MetamodelRegression ( base_model = gbr_reg )
uq_model . fit ( X_calibration , y_calibration , base_is_prefitted = True )
# Obtain mean estimates and prediction interval on the test data.
y_hat , y_hat_lb , y_hat_ub = uq_model . predict ( X_test )
这里使用预测区间覆盖概率得分(PICP)得分作为通过交叉验证选择模型的指标。请参阅此处的详细示例。
from sklearn . datasets import make_regression
from sklearn . model_selection import train_test_split
from sklearn . model_selection import GridSearchCV
from uq360 . utils . misc import make_sklearn_compatible_scorer
from uq360 . algorithms . quantile_regression import QuantileRegression
# Create a sklearn scorer using UQ360 PICP metric.
sklearn_picp = make_sklearn_compatible_scorer (
task_type = "regression" ,
metric = "picp" , greater_is_better = True )
# Hyper-parameters configuration using GridSearchCV.
base_config = { "alpha" : 0.95 , "n_estimators" : 20 , "max_depth" : 3 ,
"learning_rate" : 0.01 , "min_samples_leaf" : 10 ,
"min_samples_split" : 10 }
configs = { "config" : []}
for num_estimators in [ 1 , 2 , 5 , 10 , 20 , 30 , 40 , 50 ]:
config = base_config . copy ()
config [ "n_estimators" ] = num_estimators
configs [ "config" ]. append ( config )
# Create train test split.
X , y = make_regression ( random_state = 0 )
X_train , X_test , y_train , y_test = train_test_split ( X , y , random_state = 0 )
# Initialize QuantileRegression UQ360 model and wrap it in GridSearchCV with PICP as the scoring function.
uq_model = GridSearchCV (
QuantileRegression ( config = base_config ), configs , scoring = sklearn_picp )
# Fit the model on the training set.
uq_model . fit ( X_train , y_train )
# Obtain the prediction intervals for the test set.
y_hat , y_hat_lb , y_hat_ub = uq_model . predict ( X_test )
支持的配置:
操作系统 | Python版本 |
---|---|
macOS | 3.7 |
乌班图 | 3.7 |
视窗 | 3.7 |
强烈建议使用虚拟环境管理器来确保安全安装依赖项。如果您在安装工具包时遇到问题,请先尝试此操作。
尽管 Virtualenv 通常可以互换用于我们的目的,但建议将 Conda 用于所有配置。 Miniconda 就足够了(如果您好奇,请参阅 Anaconda 和 Miniconda 之间的区别),如果您还没有安装,可以从这里安装。
然后,要创建新的 Python 3.7 环境,请运行:
conda create --name uq360 python=3.7
conda activate uq360
shell 现在应该看起来像(uq360) $
。要停用环境,请运行:
(uq360)$ conda deactivate
提示符将返回$
或(base)$
。
注意:旧版本的 conda 可能使用source activate uq360
和source deactivate
(在 Windows 上activate uq360
并deactivate
)。
克隆此存储库的最新版本:
(uq360)$ git clone https://github.ibm.com/UQ360/UQ360
如果您想运行示例和教程笔记本,请立即下载数据集并将它们放置在各自的文件夹中,如 uq360/data/README.md 中所述。
然后,导航到包含setup.py
文件的项目的根目录并运行:
(uq360)$ pip install -e .
如果您想快速开始使用 UQ360 工具包而不克隆此存储库,那么您可以按如下方式安装 uq360 pypi 软件包。
(your environment)$ pip install uq360
如果您采用这种方法,您可能需要单独下载示例文件夹中的笔记本。
examples
目录包含以各种方式使用 UQ360 的各种 jupyter 笔记本集合。示例和教程笔记本都说明了使用该工具包的工作代码。教程提供了额外的讨论,引导用户完成笔记本的各个步骤。请参阅此处有关教程和示例的详细信息。
本文提供了 UQ360 的技术说明。以下是本文的 bibtex 条目。
@misc{uq360-june-2021,
title={Uncertainty Quantification 360: A Holistic Toolkit for Quantifying
and Communicating the Uncertainty of AI},
author={Soumya Ghosh and Q. Vera Liao and Karthikeyan Natesan Ramamurthy
and Jiri Navratil and Prasanna Sattigeri
and Kush R. Varshney and Yunfeng Zhang},
year={2021},
eprint={2106.01410},
archivePrefix={arXiv},
primaryClass={cs.AI}
}
UQ360 是在多个开源软件包的帮助下构建的。所有这些都列在 setup.py 中,其中一些包括:
请查看根目录中存在的许可证文件以获取许可证信息。