MimicWrapper クラス
Explain モデル パッケージを使用するために必要な関数呼び出しの数を減らすラッパー Explainer。
MimicWrapper を初期化します。
<<2d ndarray :p aram explainable_modelを受け入れる: ブラック ボックス モデルの説明に使用される初期化されていないサロゲート モデル。
学生モデルとも呼ばれます。
- 継承
-
azureml._logging.chained_identity.ChainedIdentityMimicWrapper
コンストラクター
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
|
Explainer の初期化に使用されるデータセット ID または通常のデータセット (例: x_train)。 規定値: None
|
run
|
この説明を関連付ける必要がある実行。 規定値: None
|
features
|
特徴名のリスト。 規定値: None
|
classes
|
文字列のリストとしてのクラス名。 クラス名の順序は、モデル出力の順序と一致している必要があります。 分類子を説明する場合にのみ必要です。 規定値: None
|
model_task
|
モデルが分類モデルか回帰モデルかを指定する省略可能なパラメーター。 ほとんどの場合、モデルの型は出力の形状に基づいて推測できます。分類器には 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。 動作する変換の例を次に示します。
1 対多として解釈できないためにエラーが発生する変換の例:
interpret-community パッケージでは、列のシーケンスを取得するときに my_own_transformer が多対多または 1 対多のマッピングを提供するかどうかを判別できないため、最後の例は機能しません。 生の説明を生成するには、'transformations' または 'feature_maps' のパラメーターを 1 つだけ指定する必要があります。 両方を指定すると、構成例外が発生します。 規定値: None
|
feature_maps
|
生の特徴から生成された特徴への特徴マップのリスト。 このパラメーターは、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
必須
|
explainer の初期化に使用されるデータセット ID または通常のデータセット (例: x_train)。 |
run
必須
|
この説明を関連付ける必要がある実行。 |
features
必須
|
特徴名のリスト。 |
classes
必須
|
文字列のリストとしてのクラス名。 クラス名の順序は、モデル出力の順序と一致している必要があります。 分類子を説明する場合にのみ必要です。 |
model_task
必須
|
モデルが分類モデルか回帰モデルかを指定する省略可能なパラメーター。 ほとんどの場合、モデルの型は出力の形状に基づいて推測できます。分類器には 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。 動作する変換の例を次に示します。
1 対多として解釈できないためにエラーが発生する変換の例:
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
|
説明の生成に使用されるデータセット ID または通常のデータセット。 規定値: None
|
top_k
|
取得して実行履歴に格納されるデータの量を、可能な場合は上位 k 個の特徴に制限します。 規定値: None
|
upload
|
True の場合、説明は格納して視覚化するために自動的に実行履歴にアップロードされます。 初期化時に実行が渡されなかった場合は、実行が作成されます。 規定値: True
|
upload_datasets
|
True に設定し、データセットの ID を渡さない場合、評価データセットは Azure Storage にアップロードされます。 これにより、Web ビューで使用できる視覚化が向上します。 規定値: False
|
tag
必須
|
アップロード後に他の説明と区別するために説明に付加する文字列。 |
get_raw
|
True の場合、初期化時に 規定値: False
|
raw_feature_names
|
生の特徴名のリスト。コンストラクターのエンジニアリングされた特徴名を置き換えます。 規定値: None
|
experiment_name
|
規定値: explain_model
|
raw_eval_dataset
|
生の説明のためにアップロードされる生の eval データ。 規定値: None
|
true_ys
|
評価例の true ラベル。 規定値: None
|
戻り値
型 | 説明 |
---|---|
説明オブジェクト。 |