다음을 통해 공유


MimicWrapper 클래스

Explain 모델 패키지를 사용하는 데 필요한 함수 호출 수를 줄이는 래퍼 설명자입니다.

MimicWrapper를 초기화합니다.

'<<2d ndarray :p aram explainable_model 허용합니다. 블랙박스 모델을 설명하는 데 사용되는 초기화되지 않은 서로게이트 모델입니다.

학생 모델이라고도 합니다.

상속
azureml._logging.chained_identity.ChainedIdentity
MimicWrapper

생성자

MimicWrapper(workspace, model, explainable_model, explainer_kwargs=None, init_dataset=None, run=None, features=None, classes=None, model_task=ModelTask.Unknown, explain_subset=None, transformations=None, feature_maps=None, allow_all_transformations=None)

매개 변수

Name Description
workspace
필수

모델 및 데이터 세트가 정의된 작업 영역 개체입니다.

model
필수
str 또는 <xref:<xref:model that implements sklearn.predict>()> 또는 <xref:sklearn.predict_proba>() 또는 <xref:<xref:pipeline function that accepts a 2d ndarray>>

MMS에 등록된 모델 또는 일반 기계 학습 모델이나 설명할 파이프라인의 모델 ID입니다. 모델이 지정되면 sklearn.predict() 또는 sklearn.predict_proba()를 구현해야 합니다. 파이프라인이 지정되면 2d ndarray를 허용하는 함수를 포함해야 합니다.

explainable_model
필수

블랙 박스 모델을 설명하는 데 사용되는 초기화되지 않은 서로게이트 모델입니다. 학생 모델이라고도 합니다.

explainer_kwargs

여기에서 다루지 않은 선택된 설명자와 함께 사용되는 모든 키워드 인수입니다. 기본 설명자가 초기화될 때 kwargs로 전달됩니다.

기본값: None
init_dataset
str 또는 array 또는 DataFrame 또는 csr_matrix

설명자를 초기화하는 데 사용되는 데이터 세트 ID 또는 일반 데이터 세트(예: x_train)입니다.

기본값: None
run
Run

이 설명이 연결되어야 하는 실행입니다.

기본값: None
features

기능 이름 목록입니다.

기본값: None
classes

문자열 목록과 같은 클래스 이름입니다. 클래스 이름의 순서는 모델 출력의 순서와 일치해야 합니다. 분류자를 설명하는 경우에만 필요합니다.

기본값: None
model_task
str

모델이 분류 또는 회귀 모델인지 여부를 지정하는 선택적 매개 변수입니다. 대부분의 경우 모델의 형식은 출력의 모양을 기반으로 유추할 수 있습니다. 여기서 분류자는 predict_proba 메서드를 사용하여 2차원 배열을 출력하는 반면 회귀 변수는 예측 메서드를 사용하여 1차원 배열을 출력합니다.

기본값: ModelTask.Unknown
explain_subset

기능 인덱스 목록입니다. 지정된 경우 Azure는 설명을 위해 평가 데이터 세트의 기능 하위 집합만 선택하므로 기능 수가 많고 흥미로운 기능 집합을 이미 알고 있는 경우 설명 프로세스의 속도가 빨라집니다. 하위 집합은 모델 요약의 상위 k개 기능일 수 있습니다. 이 매개 변수는 변환이 설정된 경우 지원되지 않습니다.

기본값: None
transformations

sklearn.compose.ColumnTransformer 또는 열 이름과 변환기를 설명하는 튜플 목록입니다. 변형이 제공되면 변형 전의 기능에 대한 설명이 제공됩니다. 변환 목록의 형식은 https://github.com/scikit-learn-contrib/sklearn-pandas의 형식과 동일합니다.

interpret-community 패키지에서 지원하는 sklearn.preprocessing 변환 목록에 없는 변환을 사용하는 경우 이 매개 변수는 변환에 대한 입력으로 둘 이상의 열 목록을 사용할 수 없습니다. . 열 목록은 이미 일대다 또는 일대일이므로 다음 sklearn.preprocessing 변환을 사용할 수 있습니다. Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

작동하는 변환의 예제:


   [
       (["col1", "col2"], sklearn_one_hot_encoder),
       (["col3"], None) #col3 passes as is
   ]
   [
       (["col1"], my_own_transformer),
       (["col2"], my_own_transformer),
   ]

일대다로 해석될 수 없기 때문에 오류를 발생시키는 변환의 예제:


   [
       (["col1", "col2"], my_own_transformer)
   ]

interpret-community 패키지는 일련의 열을 사용할 때 my_own_transformer가 다대다 또는 일대다 매핑을 제공하는지 여부를 결정할 수 없기 때문에 마지막 예제는 작동하지 않습니다.

원시 설명을 생성하려면 '변환' 또는 'feature_maps'의 매개 변수 하나만 지정해야 합니다. 둘 다 지정하면 구성 예외가 발생합니다.

기본값: None
feature_maps

원시에서 생성된 기능까지의 기능 맵 목록입니다. 이 매개 변수는 numpy 배열 목록 또는 각 배열 항목(raw_index, generated_index)이 생성된 원시 기능 쌍 각각에 대한 가중치인 스파스 행렬의 목록일 수 있습니다. 다른 항목은 0으로 설정됩니다. 원시 기능에서 생성된 기능을 생성하는 일련의 변환 [t1, t2, ..., tn]의 경우 기능 맵 목록은 t1, t2 등과 같은 시퀀스로 원시에서 생성된 맵에 해당합니다. 전체 원시 t1에서 tn까지 생성된 기능 맵을 사용할 수 있는 경우 단일 요소 목록의 해당 기능 맵만 전달할 수 있습니다.

원시 설명을 생성하려면 '변환' 또는 'feature_maps'의 매개 변수 하나만 지정해야 합니다. 둘 다 지정하면 구성 예외가 발생합니다.

기본값: None
allow_all_transformations

다대다 및 다대일 변환을 허용할지 여부를 나타냅니다.

기본값: None
workspace
필수

모델 및 데이터 세트가 정의된 작업 영역 개체입니다.

model
필수
str 또는 <xref:<xref:model that implements sklearn.predict>()> 또는 <xref:sklearn.predict_proba>() 또는 <xref:<xref:pipeline function>>

MMS에 등록된 모델 또는 일반 기계 학습 모델이나 설명할 파이프라인의 모델 ID입니다. 모델이 지정되면 sklearn.predict() 또는 sklearn.predict_proba()를 구현해야 합니다. 파이프라인이 지정되면 2d ndarray를 허용하는 함수를 포함해야 합니다.

explainer_kwargs
필수

여기에서 다루지 않은 선택된 설명자와 함께 사용되는 모든 키워드 인수입니다. 기본 설명자가 초기화될 때 kwargs로 전달됩니다.

init_dataset
필수
str 또는 array 또는 DataFrame 또는 csr_matrix

설명자를 초기화하는 데 사용되는 데이터 세트 ID 또는 일반 데이터 세트입니다(예: x_train).

run
필수
Run

이 설명이 연결되어야 하는 실행입니다.

features
필수

기능 이름 목록입니다.

classes
필수

문자열 목록과 같은 클래스 이름입니다. 클래스 이름의 순서는 모델 출력의 순서와 일치해야 합니다. 분류자를 설명하는 경우에만 필요합니다.

model_task
필수
str

모델이 분류 또는 회귀 모델인지 여부를 지정하는 선택적 매개 변수입니다. 대부분의 경우 모델의 형식은 출력의 모양을 기반으로 유추할 수 있습니다. 여기서 분류자는 predict_proba 메서드를 사용하여 2차원 배열을 출력하는 반면 회귀 변수는 예측 메서드를 사용하여 1차원 배열을 출력합니다.

explain_subset
필수

기능 인덱스 목록입니다. 지정된 경우 설명을 위해 평가 데이터 세트의 기능 하위 집합만 선택하면 기능 수가 많고 사용자가 관심 있는 기능 집합을 이미 알고 있는 경우 설명 프로세스가 빨라집니다. 하위 집합은 모델 요약의 상위 k개 기능일 수 있습니다. 변환이 설정된 경우 이 인수는 지원되지 않습니다.

transformations
필수

sklearn.compose.ColumnTransformer 또는 열 이름과 변환기를 설명하는 튜플 목록입니다. 변형이 제공되면 변형 전의 기능에 대한 설명이 제공됩니다. 변환 목록의 형식은 https://github.com/scikit-learn-contrib/sklearn-pandas의 형식과 동일합니다.

interpret-community 패키지에서 지원하는 sklearn.preprocessing 변환 목록에 없는 변환을 사용하는 경우 이 매개 변수는 변환에 대한 입력으로 둘 이상의 열 목록을 사용할 수 없습니다. . 열 목록은 이미 일대다 또는 일대일이므로 다음 sklearn.preprocessing 변환을 사용할 수 있습니다. Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

작동하는 변환의 예제:


   [
       (["col1", "col2"], sklearn_one_hot_encoder),
       (["col3"], None) #col3 passes as is
   ]
   [
       (["col1"], my_own_transformer),
       (["col2"], my_own_transformer),
   ]

일대다로 해석될 수 없기 때문에 오류를 발생시키는 변환의 예제:


   [
       (["col1", "col2"], my_own_transformer)
   ]

interpret-community 패키지는 일련의 열을 사용할 때 my_own_transformer가 다대다 또는 일대다 매핑을 제공하는지 여부를 결정할 수 없기 때문에 마지막 예제는 작동하지 않습니다.

원시 설명을 생성하려면 '변환' 또는 'feature_maps'의 매개 변수 하나만 지정해야 합니다. 둘 다 지정하면 구성 예외가 발생합니다.

feature_maps
필수
list[array] 또는 list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>

원시에서 생성된 기능까지의 기능 맵 목록입니다. 이 매개 변수는 numpy 배열 목록 또는 각 배열 항목(raw_index, generated_index)이 생성된 원시 기능 쌍 각각에 대한 가중치인 스파스 행렬의 목록일 수 있습니다. 다른 항목은 0으로 설정됩니다. 원시 기능에서 생성된 기능을 생성하는 일련의 변환 [t1, t2, ..., tn]의 경우 기능 맵 목록은 t1, t2 등과 같은 시퀀스로 원시에서 생성된 맵에 해당합니다. 전체 원시 t1에서 tn까지 생성된 기능 맵을 사용할 수 있는 경우 단일 요소 목록의 해당 기능 맵만 전달할 수 있습니다.

원시 설명을 생성하려면 '변환' 또는 'feature_maps'의 매개 변수 하나만 지정해야 합니다. 둘 다 지정하면 구성 예외가 발생합니다.

설명

MimicWrapper는 기계 학습 모델을 설명하는 데 사용할 수 있으며 AutoML과 함께 특히 효과적입니다. 예를 들어 <xref:azureml.train.automl.runtime.automl_explain_utilities> 모듈에서 automl_setup_model_explanations 함수를 사용하면 MimicWrapper를 사용하여 기능 중요도를 계산하고 시각화할 수 있습니다. 자세한 내용은 해석 가능성: 자동화된 Machine Learning의 모델 설명을 참조하세요.

다음 예에서 MimicWrapper는 분류 문제에 사용됩니다.


   from azureml.interpret.mimic_wrapper import MimicWrapper
   explainer = MimicWrapper(ws, automl_explainer_setup_obj.automl_estimator,
                explainable_model=automl_explainer_setup_obj.surrogate_model,
                init_dataset=automl_explainer_setup_obj.X_transform, run=automl_run,
                features=automl_explainer_setup_obj.engineered_feature_names,
                feature_maps=[automl_explainer_setup_obj.feature_map],
                classes=automl_explainer_setup_obj.classes,
                explainer_kwargs=automl_explainer_setup_obj.surrogate_model_params)

이 예에 대한 자세한 내용은 이 Notebook을 참조하세요.

메서드

explain

모델의 동작을 설명하고 선택적으로 스토리지 및 시각화를 위해 해당 설명을 업로드합니다.

explain

모델의 동작을 설명하고 선택적으로 스토리지 및 시각화를 위해 해당 설명을 업로드합니다.

explain(explanation_types, eval_dataset=None, top_k=None, upload=True, upload_datasets=False, tag='', get_raw=False, raw_feature_names=None, experiment_name='explain_model', raw_eval_dataset=None, true_ys=None)

매개 변수

Name Description
explanation_types
필수

원하는 설명 형식을 나타내는 문자열 목록입니다. 현재 'global' 및 'local'이 지원됩니다. 둘 다 한 번에 전달할 수 있습니다. 하나의 설명만 반환됩니다.

eval_dataset
str 또는 array 또는 DataFrame 또는 csr_matrix

설명을 생성하는 데 사용되는 데이터 세트 ID 또는 일반 데이터 세트입니다.

기본값: None
top_k
int

가능한 경우 상위 k개 기능에 대해 실행 기록에 반환 및 저장되는 데이터의 양으로 제한합니다.

기본값: None
upload

True이면 스토리지 및 시각화를 위해 설명이 자동으로 실행 기록에 업로드됩니다. 초기화 시 실행이 전달되지 않은 경우 실행이 만들어집니다.

기본값: True
upload_datasets

True로 설정하고 데이터 세트 ID가 전달되지 않으면 평가 데이터 세트가 Azure Storage에 업로드됩니다. 이렇게 하면 웹 보기에서 사용할 수 있는 시각화가 개선됩니다.

기본값: False
tag
필수
str

업로드 후 다른 설명과 구별하기 위해 설명에 첨부할 문자열입니다.

get_raw

초기화 중에 True이고 매개 변수 feature_maps가 전달된 경우 반환된 설명은 원시 기능에 대한 것입니다. False이거나 지정되지 않은 경우 데이터가 전달되는 것과 정확히 일치합니다.

기본값: False
raw_feature_names

생성자의 엔지니어링된 기능 이름을 대체하는 원시 기능 이름 목록입니다.

기본값: None
experiment_name
str

upload가 True이지만 초기화 중에 실행이 전달되지 않은 경우 설명할 원하는 이름입니다.

기본값: explain_model
raw_eval_dataset
str 또는 array 또는 DataFrame 또는 csr_matrix

원시 설명을 위해 업로드할 원시 평가 데이터입니다.

기본값: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

평가 예에 대한 실제 레이블입니다.

기본값: None

반환

형식 Description

설명 개체입니다.

특성

explainer

래퍼에서 내부적으로 사용 중인 설명자를 가져옵니다.

반환

형식 Description

래퍼에서 내부적으로 사용 중인 설명자입니다.