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 )
지원되는 구성:
운영체제 | 파이썬 버전 |
---|---|
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
이제 쉘은 (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 파일을 모두 확인하십시오.