Uncertainty Quantification 360 (UQ360) adalah toolkit sumber terbuka dengan paket Python untuk memberikan praktisi ilmu data dan pengembang akses ke algoritme canggih, untuk menyederhanakan proses memperkirakan, mengevaluasi, meningkatkan, dan mengomunikasikan ketidakpastian model pembelajaran mesin sebagai praktik umum untuk transparansi AI. Pengalaman interaktif UQ360 memberikan pengenalan lembut tentang konsep dan kemampuan dengan menelusuri contoh kasus penggunaan. Tutorial dan buku catatan contoh menawarkan pengenalan yang lebih mendalam dan berorientasi pada data scientist. API lengkap juga tersedia.
Kami telah mengembangkan paket dengan mempertimbangkan ekstensibilitas. Perpustakaan ini masih dalam pengembangan. Kami mendorong kontribusi algoritma, metrik, dan aplikasi estimasi ketidakpastian Anda. Untuk memulai sebagai kontributor, silakan bergabung dengan saluran #uq360-users atau #uq360-developers di Komunitas AIF360 di Slack dengan meminta undangan di sini.
Penggunaan meta-model untuk menambah gradien sklearn meningkatkan regressor dengan interval prediksi. Lihat contoh detailnya di sini.
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 )
Skor probabilitas cakupan interval prediksi (PICP) digunakan di sini sebagai metrik untuk memilih model melalui validasi silang. Lihat contoh detailnya di sini.
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 )
Konfigurasi yang Didukung:
sistem operasi | versi piton |
---|---|
macOS | 3.7 |
Ubuntu | 3.7 |
jendela | 3.7 |
Manajer lingkungan virtual sangat disarankan untuk memastikan dependensi dapat diinstal dengan aman. Jika Anda kesulitan menginstal toolkit, coba ini terlebih dahulu.
Conda direkomendasikan untuk semua konfigurasi meskipun Virtualenv umumnya dapat dipertukarkan untuk tujuan kita. Miniconda sudah cukup (lihat perbedaan Anaconda dan Miniconda jika penasaran) dan dapat diinstal dari sini jika Anda belum memilikinya.
Kemudian, untuk membuat lingkungan Python 3.7 baru, jalankan:
conda create --name uq360 python=3.7
conda activate uq360
Shell sekarang akan terlihat seperti (uq360) $
. Untuk menonaktifkan lingkungan, jalankan:
(uq360)$ conda deactivate
Prompt akan kembali ke $
atau (base)$
.
Catatan: Conda versi lama mungkin menggunakan source activate uq360
dan source deactivate
( activate uq360
dan deactivate
di Windows).
Kloning versi terbaru dari repositori ini:
(uq360)$ git clone https://github.ibm.com/UQ360/UQ360
Jika Anda ingin menjalankan contoh dan buku catatan tutorial, unduh kumpulan data sekarang dan letakkan di folder masing-masing seperti yang dijelaskan di uq360/data/README.md.
Kemudian, navigasikan ke direktori root proyek yang berisi file setup.py
dan jalankan:
(uq360)$ pip install -e .
Jika Anda ingin segera mulai menggunakan toolkit UQ360 tanpa mengkloning repositori ini, Anda dapat menginstal paket uq360 pypi sebagai berikut.
(your environment)$ pip install uq360
Jika Anda mengikuti pendekatan ini, Anda mungkin perlu mengunduh buku catatan di folder contoh secara terpisah.
Direktori examples
berisi beragam koleksi notebook jupyter yang menggunakan UQ360 dalam berbagai cara. Contoh dan buku catatan tutorial mengilustrasikan kode kerja menggunakan toolkit. Tutorial memberikan diskusi tambahan yang memandu pengguna melalui berbagai langkah buku catatan. Lihat detail tentang tutorial dan contoh di sini.
Deskripsi teknis UQ360 tersedia di makalah ini. Di bawah ini adalah entri bibtex untuk makalah ini.
@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 dibangun dengan bantuan beberapa paket open source. Semua ini tercantum di setup.py dan beberapa di antaranya termasuk:
Silakan lihat kedua file LISENSI yang ada di direktori root untuk informasi lisensi.