Uncertainty Quantification 360 (UQ360) — это набор инструментов с открытым исходным кодом, включающий пакет Python, который предоставляет практикам и разработчикам данных доступ к самым современным алгоритмам для оптимизации процесса оценки, оценки, улучшения и информирования о неопределенности. модели машинного обучения как распространенные методы обеспечения прозрачности ИИ. Интерактивный интерфейс UQ360 обеспечивает краткое введение в концепции и возможности на примере примера использования. Учебные пособия и блокноты с примерами предлагают более глубокое введение, ориентированное на специалистов по данным. Также доступен полный API.
Мы разработали пакет с учетом расширяемости. Эта библиотека все еще находится в разработке. Мы поощряем вклад ваших алгоритмов оценки неопределенности, показателей и приложений. Чтобы начать работу в качестве участника, присоединяйтесь к каналу #uq360-users или #uq360-developers сообщества AIF360 в Slack, запросив приглашение здесь.
Использование метамоделей для дополнения регрессора с градиентным усилением 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 |
Настоятельно рекомендуется использовать менеджер виртуальной среды, чтобы обеспечить безопасную установку зависимостей. Если у вас возникли проблемы с установкой набора инструментов, попробуйте сначала это.
Conda рекомендуется для всех конфигураций, хотя Virtualenv обычно взаимозаменяем для наших целей. Miniconda достаточно (если вам интересно, посмотрите разницу между Anaconda и Miniconda), и ее можно установить отсюда, если у вас ее еще нет.
Затем, чтобы создать новую среду Python 3.7, запустите:
conda create --name uq360 python=3.7
conda activate uq360
Оболочка теперь должна выглядеть как (uq360) $
. Чтобы деактивировать среду, запустите:
(uq360)$ conda deactivate
Приглашение вернется к $
или (base)$
.
Примечание. В более старых версиях conda могут использоваться source activate uq360
и source deactivate
( activate uq360
и deactivate
в Windows).
Клонируйте последнюю версию этого репозитория:
(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
содержит разнообразную коллекцию блокнотов Jupyter, которые используют UQ360 различными способами. И примеры, и учебные тетради иллюстрируют рабочий код с использованием этого набора инструментов. Учебные пособия содержат дополнительные обсуждения, которые знакомят пользователя с различными этапами работы с блокнотом. Подробности об уроках и примерах см. здесь.
Техническое описание 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, и некоторые из них включают в себя:
Пожалуйста, просмотрите оба файла LICENSE, находящиеся в корневом каталоге, для получения информации о лицензии.