MimicWrapper クラス

Explain モデル パッケージを使用するために必要な関数呼び出しの数を減らすラッパー Explainer。

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)

パラメーター

名前 説明
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

選択した Explainer に付随するキーワード引数は、ここでは取り上げられていません。 基になる Explainer が初期化されると、kwargs として渡されます。

既定値: None
init_dataset
str または array または DataFrame または csr_matrix

Explainer の初期化に使用されるデータセット ID または通常のデータセット (例: x_train)。

既定値: None
run
Run

この説明を関連付ける必要がある実行。

既定値: None
features

特徴名のリスト。

既定値: None
classes

文字列のリストとしてのクラス名。 クラス名の順序は、モデル出力の順序と一致している必要があります。 分類子を説明する場合にのみ必要です。

既定値: None
model_task
str

モデルが分類モデルか回帰モデルかを指定する省略可能なパラメーター。 ほとんどの場合、モデルの型は出力の形状に基づいて推測できます。分類器には predict_proba メソッドがあり、2 次元配列を出力しますが、リグレッサーには predict メソッドがあり、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 変換は、既に 1 対多または 1 対 1 であるため、列のリストで使用できます。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),
   ]

1 対多として解釈できないためにエラーが発生する変換の例:


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

interpret-community パッケージでは、列のシーケンスを取得するときに my_own_transformer が多対多または 1 対多のマッピングを提供するかどうかを判別できないため、最後の例は機能しません。

生の説明を生成するには、'transformations' または 'feature_maps' のパラメーターを 1 つだけ指定する必要があります。 両方を指定すると、構成例外が発生します。

既定値: None
feature_maps
list[array] または list[csr_matrix]

生の特徴から生成された特徴への特徴マップのリスト。 このパラメーターは、numpy 配列またはスパース行列のリストとすることができます。各配列エントリ (raw_index、generated_index) は、生および生成された各特徴ペアの重みです。 その他のエントリは 0 に設定されます。 生の特徴量から生成された特徴量を生成する一連の変換 [t1, t2, ..., tn] の場合、特徴量マップのリストは、t1、t2 などと同じ順序で生のマップから生成されたマップに対応します。t1 から tn への生から生成された特徴量マップ全体を使用できる場合は、1 つの要素リスト内のその特徴量マップだけを渡すだけですむ可能性があります。

生の説明を生成するには、'transformations' または 'feature_maps' のパラメーターを 1 つだけ指定する必要があります。 両方を指定すると、構成例外が発生します。

既定値: 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
必須

選択した Explainer に付随するキーワード引数は、ここでは取り上げられていません。 基になる Explainer が初期化されると、kwargs として渡されます。

init_dataset
必須
str または array または DataFrame または csr_matrix

explainer の初期化に使用されるデータセット ID または通常のデータセット (例: x_train)。

run
必須
Run

この説明を関連付ける必要がある実行。

features
必須

特徴名のリスト。

classes
必須

文字列のリストとしてのクラス名。 クラス名の順序は、モデル出力の順序と一致している必要があります。 分類子を説明する場合にのみ必要です。

model_task
必須
str

モデルが分類モデルか回帰モデルかを指定する省略可能なパラメーター。 ほとんどの場合、モデルの型は出力の形状に基づいて推測できます。分類器には predict_proba メソッドがあり、2 次元配列を出力しますが、リグレッサーには predict メソッドがあり、1 次元配列を出力します。

explain_subset
必須

特徴インデックスの一覧。 指定した場合は、説明のために評価データセット内の特徴のサブセットのみを選択します。これにより、特徴の数が多く、ユーザーが関心のある一連の特徴を既に認識している場合に説明プロセスが高速化されます。 サブセットは、モデルの概要から上位 k 個の特徴とすることができます。 変換が設定されている場合、この引数はサポートされません。

transformations
必須

列名とトランスフォーマーを記述する sklearn.compose.ColumnTransformer またはタプルのリスト。 変換が指定されている場合、説明は変換前の特徴に関するものです。 変換のリストの形式は、https://github.com/scikit-learn-contrib/sklearn-pandas と同じです。

interpret-community パッケージでサポートされている sklearn.preprocessing 変換のリストにない変換を使用している場合、このパラメーターは、変換の入力として複数の列のリストを取得することはできません。 次の sklearn.preprocessing 変換は、既に 1 対多または 1 対 1 であるため、列のリストで使用できます。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),
   ]

1 対多として解釈できないためにエラーが発生する変換の例:


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

interpret-community パッケージでは、列のシーケンスを取得するときに my_own_transformer が多対多または 1 対多のマッピングを提供するかどうかを判別できないため、最後の例は機能しません。

生の説明を生成するには、'transformations' または 'feature_maps' のパラメーターを 1 つだけ指定する必要があります。 両方を指定すると、構成例外が発生します。

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 への生から生成された特徴量マップ全体を使用できる場合は、1 つの要素リスト内のその特徴量マップだけを渡すだけですむ可能性があります。

生の説明を生成するには、'transformations' または 'feature_maps' のパラメーターを 1 つだけ指定する必要があります。 両方を指定すると、構成例外が発生します。

注釈

MimicWrapper は、機械学習モデルを説明するために使用することができ、AutoML と組み合わせると特に効果的です。 たとえば、<xref:azureml.train.automl.runtime.automl_explain_utilities> モジュールの automl_setup_model_explanations 関数を使用すると、MimicWrapper を使用して特徴の重要度を計算および視覚化できます。 詳細については、「解釈可能性: 自動 ML でのモデル説明」を参照してください。

次の例では、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)

この例の詳細については、こちらのノートブックを参照してください。

メソッド

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)

パラメーター

名前 説明
explanation_types
必須

必要な説明の種類を表す文字列のリスト。 現在、'global' と 'local' がサポートされています。 両方を一度に渡すことができます。1 つの説明だけが返されます。

eval_dataset
str または array または DataFrame または csr_matrix

説明の生成に使用されるデータセット ID または通常のデータセット。

既定値: None
top_k
int

取得して実行履歴に格納されるデータの量を、可能な場合は上位 k 個の特徴に制限します。

既定値: None
upload

True の場合、説明は格納して視覚化するために自動的に実行履歴にアップロードされます。 初期化時に実行が渡されなかった場合は、実行が作成されます。

既定値: True
upload_datasets

True に設定し、データセットの ID を渡さない場合、評価データセットは Azure Storage にアップロードされます。 これにより、Web ビューで使用できる視覚化が向上します。

既定値: 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

生の説明のためにアップロードされる生の eval データ。

既定値: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

評価例の true ラベル。

既定値: None

戻り値

説明

説明オブジェクト。

属性

explainer

ラッパーによって内部的に使用されている Explainer を取得します。

戻り値

説明

ラッパーによって内部的に使用されている Explainer。