Uncertainty Quantification 360 (UQ360) は、Python パッケージを備えたオープンソース ツールキットで、データ サイエンスの専門家や開発者に最先端のアルゴリズムへのアクセスを提供し、不確実性の推定、評価、改善、伝達のプロセスを合理化します。 AI の透明性の一般的な実践としての機械学習モデル。 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 )
サポートされている構成:
OS | Pythonのバージョン |
---|---|
macOS | 3.7 |
Ubuntu | 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
(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 にリストされており、そのうちのいくつかは次のとおりです。
ライセンス情報については、ルート ディレクトリにある両方の LICENSE ファイルを参照してください。