Die Uncertainty Quantification 360 (UQ360) ist ein Open-Source-Toolkit mit einem Python-Paket, das Datenwissenschaftlern und Entwicklern Zugang zu modernsten Algorithmen bietet, um den Prozess der Schätzung, Bewertung, Verbesserung und Kommunikation von Unsicherheiten zu optimieren Modelle des maschinellen Lernens als gängige Praktiken für KI-Transparenz. Das interaktive UQ360-Erlebnis bietet eine sanfte Einführung in die Konzepte und Funktionen anhand eines Beispielanwendungsfalls. Die Tutorials und Beispiel-Notebooks bieten eine tiefergehende, auf Datenwissenschaftler ausgerichtete Einführung. Die vollständige API ist ebenfalls verfügbar.
Wir haben das Paket unter Berücksichtigung der Erweiterbarkeit entwickelt. Diese Bibliothek befindet sich noch in der Entwicklung. Wir fördern den Beitrag Ihrer Algorithmen, Metriken und Anwendungen zur Unsicherheitsschätzung. Um als Mitwirkender zu beginnen, treten Sie bitte dem Kanal #uq360-users oder #uq360-developers der AIF360-Community auf Slack bei, indem Sie hier eine Einladung anfordern.
Verwendung von Metamodellen zur Erweiterung des Gradienten-verstärkten Regressors von sklearn mit Vorhersageintervall. Ausführliches Beispiel finden Sie hier.
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 )
Der PICP-Score (Prediction Interval Coverage Probability Score) wird hier als Metrik für die Auswahl des Modells durch Kreuzvalidierung verwendet. Ausführliches Beispiel finden Sie hier.
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 )
Unterstützte Konfigurationen:
Betriebssystem | Python-Version |
---|---|
macOS | 3.7 |
Ubuntu | 3.7 |
Windows | 3.7 |
Ein virtueller Umgebungsmanager wird dringend empfohlen, um sicherzustellen, dass Abhängigkeiten sicher installiert werden können. Wenn Sie Probleme bei der Installation des Toolkits haben, versuchen Sie es zuerst.
Conda wird für alle Konfigurationen empfohlen, obwohl Virtualenv für unsere Zwecke im Allgemeinen austauschbar ist. Miniconda ist ausreichend (sehen Sie sich den Unterschied zwischen Anaconda und Miniconda an, wenn Sie neugierig sind) und kann von hier aus installiert werden, wenn Sie es noch nicht haben.
Führen Sie dann Folgendes aus, um eine neue Python 3.7-Umgebung zu erstellen:
conda create --name uq360 python=3.7
conda activate uq360
Die Shell sollte jetzt wie folgt aussehen: (uq360) $
. Um die Umgebung zu deaktivieren, führen Sie Folgendes aus:
(uq360)$ conda deactivate
Die Eingabeaufforderung kehrt zu $
oder (base)$
zurück.
Hinweis: Ältere Versionen von Conda verwenden möglicherweise source activate uq360
und source deactivate
( activate uq360
und deactivate
unter Windows).
Klonen Sie die neueste Version dieses Repositorys:
(uq360)$ git clone https://github.ibm.com/UQ360/UQ360
Wenn Sie die Beispiele und Tutorial-Notebooks ausführen möchten, laden Sie die Datensätze jetzt herunter und platzieren Sie sie in ihren jeweiligen Ordnern, wie in uq360/data/README.md beschrieben.
Navigieren Sie dann zum Stammverzeichnis des Projekts, das die Datei setup.py
enthält, und führen Sie Folgendes aus:
(uq360)$ pip install -e .
Wenn Sie schnell mit der Verwendung des UQ360-Toolkits beginnen möchten, ohne dieses Repository zu klonen, können Sie das uq360-Pypi-Paket wie folgt installieren.
(your environment)$ pip install uq360
Wenn Sie diesen Ansatz verfolgen, müssen Sie möglicherweise die Notizbücher im Beispielordner separat herunterladen.
Das examples
enthält eine vielfältige Sammlung von Jupyter-Notebooks, die UQ360 auf verschiedene Arten verwenden. Sowohl Beispiele als auch Tutorial-Notebooks veranschaulichen funktionierenden Code mithilfe des Toolkits. Tutorials bieten zusätzliche Diskussionen, die den Benutzer durch die verschiedenen Schritte des Notebooks führen. Einzelheiten zu Tutorials und Beispielen finden Sie hier.
Eine technische Beschreibung von UQ360 finden Sie in diesem Dokument. Unten finden Sie den Bibtex-Eintrag für diesen Artikel.
@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 wird mit Hilfe mehrerer Open-Source-Pakete erstellt. Alle diese sind in setup.py aufgeführt und einige davon umfassen:
Bitte sehen Sie sich die Lizenzdatei im Stammverzeichnis an, um Lizenzinformationen zu erhalten.