Bagikan melalui


MimicWrapper Kelas

Penjelas wrapper yang mengurangi jumlah panggilan fungsi yang diperlukan untuk menggunakan paket model penjelasan.

Inisialisasi MimicWrapper.

'<<yang menerima :p aram ndarray 2d explainable_model: Model pengganti yang tidak diinisialisasi digunakan untuk menjelaskan model kotak hitam.

Juga dikenal sebagai model siswa.

Warisan
azureml._logging.chained_identity.ChainedIdentity
MimicWrapper

Konstruktor

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)

Parameter

Nama Deskripsi
workspace
Diperlukan

Objek ruang kerja tempat Model serta Himpunan Data didefinisikan.

model
Diperlukan
str atau <xref:<xref:model that implements sklearn.predict>()> atau <xref:sklearn.predict_proba>() atau <xref:<xref:pipeline function that accepts a 2d ndarray>>

ID model dari model yang didaftarkan ke MMS atau model pembelajaran mesin biasa atau alur untuk dijelaskan. Jika model ditentukan, maka model tersebut harus mengimplementasikan sklearn.predict() atau sklearn.predict_proba(). Jika alur ditentukan, maka alur tersebut harus menyertakan fungsi yang menerima ndarray 2d.

explainable_model
Diperlukan

Model pengganti yang batal diinisialisasi dipakai untuk menjelaskan model kotak hitam. Juga dikenal sebagai model siswa.

explainer_kwargs

Argumen kata kunci apa pun yang sesuai dengan penjelas yang dipilih tidak tercakup di sini. Argumen tersebut akan diteruskan sebagai kwargs ketika penjelas yang mendasarinya diinisialisasi.

nilai default: None
init_dataset
str atau array atau DataFrame atau csr_matrix

ID himpunan data atau himpunan data reguler yang digunakan untuk menginisialisasi penjelas (contohnya, x_train).

nilai default: None
run
Run

Eksekusi penjelasan ini harus dikaitkan.

nilai default: None
features

Daftar nama fitur.

nilai default: None
classes

Nama kelas sebagai daftar untai (karakter). Urutan nama kelas harus sesuai dengan output model. Hanya diperlukan jika menjelaskan pengklasifikasi saja.

nilai default: None
model_task
str

Parameter opsional untuk menentukan apakah model tersebut adalah model klasifikasi atau regresi. Dalam kebanyakan kasus, jenis model bisa disimpulkan berdasarkan bentuk output, di mana pengklasifikasi memiliki metode predict_proba dan menghasilkan array 2 dimensi, sedangkan regresor memiliki metode prediksi serta menghasilkan array 1 dimensi.

nilai default: ModelTask.Unknown
explain_subset

Daftar indeks fitur. Jika ditentukan, Azure hanya memilih subset fitur dalam himpunan data evaluasi untuk penjelasan, yang akan mempercepat proses penjelasan saat jumlah fitur besar serta Anda sudah mengetahui set fitur menarik. Subset bisa jadi fitur k teratas dari ringkasan model. Parameter ini tidak didukung saat transformasi diatur.

nilai default: None
transformations

Sklearn.compose.ColumnTransformer atau daftar tuple yang menjelaskan nama kolom serta transformator. Ketika transformasi diberikan, penjelasan adalah fitur sebelum transformasi. Format untuk daftar transformasi sama dengan yang ada di sini: https://github.com/scikit-learn-contrib/sklearn-pandas.

Jika Anda memakai transformasi yang tidak ada dalam daftar transformasi sklearn.preprocessing yang didukung oleh paket interpret-community, parameter ini tidak dapat mengambil daftar lebih dari satu kolom sebagai input untuk transformasi. Anda bisa menggunakan transformasi sklearn.preprocessing berikut dengan daftar kolom karena ini sudah satu ke banyak atau satu ke satu: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Contoh untuk transformasi yang bekerja:


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

Contoh transformasi yang akan menimbulkan kesalahan karena tidak bisa diartikan sebagai satu ke banyak:


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

Contoh terakhir tidak akan berfungsi karena paket interpret-community tidak bisa menentukan apakah my_own_transformer memberikan pemetaan banyak ke banyak atau satu ke banyak saat mengambil urutan kolom.

Hanya satu parameter dari 'transformasi' atau 'feature_maps' yang harus ditentukan untuk menghasilkan penjelasan mentah. Menentukan keduanya akan menghasilkan pengecualian konfigurasi.

nilai default: None
feature_maps

Daftar peta fitur dari fitur mentah hingga yang dihasilkan. Parameter ini bisa berupa daftar array numpy atau matriks sparse di mana setiap entri array (raw_index, generate_index) adalah bobot untuk setiap pasangan fitur mentah yang dihasilkan. Entri lainnya diatur ke nol. Untuk urutan transformasi [t1, t2, ..., tn] menghasilkan fitur yang dihasilkan dari fitur mentah, daftar peta fitur sesuai dengan peta mentah ke peta yang dihasilkan dalam urutan yang sama seperti t1, t2, dll. Jika peta fitur mentah hingga yang dihasilkan secara keseluruhan dari t1 ke tn tersedia, hanya peta fitur dalam daftar elemen tunggal yang bisa diteruskan.

Hanya satu parameter dari 'transformasi' atau 'feature_maps' yang harus ditentukan untuk menghasilkan penjelasan mentah. Menentukan keduanya akan menghasilkan pengecualian konfigurasi.

nilai default: None
allow_all_transformations

Apakah akan mengizinkan transformasi banyak ke banyak serta banyak ke satu.

nilai default: None
workspace
Diperlukan

Objek ruang kerja tempat Model serta Himpunan Data didefinisikan.

model
Diperlukan
str atau <xref:<xref:model that implements sklearn.predict>()> atau <xref:sklearn.predict_proba>() atau <xref:<xref:pipeline function>>

ID model dari model yang didaftarkan ke MMS atau model pembelajaran mesin biasa atau alur untuk dijelaskan. Jika model ditentukan, maka model tersebut harus mengimplementasikan sklearn.predict() atau sklearn.predict_proba(). Jika alur ditentukan, maka alur tersebut harus menyertakan fungsi yang menerima ndarray 2d.

explainer_kwargs
Diperlukan

Argumen kata kunci apa pun yang sesuai dengan penjelas yang dipilih tidak tercakup di sini. Argumen tersebut akan diteruskan sebagai kwargs ketika penjelas yang mendasarinya diinisialisasi.

init_dataset
Diperlukan
str atau array atau DataFrame atau csr_matrix

ID himpunan data atau himpunan data reguler yang digunakan untuk menginisialisasi penjelas (misalnya x_train).

run
Diperlukan
Run

Eksekusi penjelasan ini harus dikaitkan.

features
Diperlukan

Daftar nama fitur.

classes
Diperlukan

Nama kelas sebagai daftar untai (karakter). Urutan nama kelas harus sesuai dengan output model. Hanya diperlukan jika menjelaskan pengklasifikasi saja.

model_task
Diperlukan
str

Parameter opsional untuk menentukan apakah model tersebut adalah model klasifikasi atau regresi. Dalam kebanyakan kasus, jenis model bisa disimpulkan berdasarkan bentuk output, di mana pengklasifikasi memiliki metode predict_proba dan menghasilkan array 2 dimensi, sedangkan regresor memiliki metode prediksi serta menghasilkan array 1 dimensi.

explain_subset
Diperlukan

Daftar indeks fitur. Jika ditentukan, hanya memilih subset fitur dalam himpunan data evaluasi untuk penjelasan, yang akan mempercepat proses penjelasan ketika jumlah fitur besar dan pengguna sudah mengetahui serangkaian fitur yang menarik. Subset bisa jadi fitur k teratas dari ringkasan model. Argumen ini tidak didukung ketika transformasi diatur.

transformations
Diperlukan

Sklearn.compose.ColumnTransformer atau daftar tuple yang menjelaskan nama kolom serta transformator. Ketika transformasi diberikan, penjelasan adalah fitur sebelum transformasi. Format untuk daftar transformasi sama dengan yang ada di sini: https://github.com/scikit-learn-contrib/sklearn-pandas.

Jika Anda memakai transformasi yang tidak ada dalam daftar transformasi sklearn.preprocessing yang didukung oleh paket interpret-community, parameter ini tidak dapat mengambil daftar lebih dari satu kolom sebagai input untuk transformasi. Anda bisa menggunakan transformasi sklearn.preprocessing berikut dengan daftar kolom karena ini sudah satu ke banyak atau satu ke satu: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Contoh untuk transformasi yang bekerja:


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

Contoh transformasi yang akan menimbulkan kesalahan karena tidak bisa diartikan sebagai satu ke banyak:


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

Contoh terakhir tidak akan berfungsi karena paket interpret-community tidak bisa menentukan apakah my_own_transformer memberikan pemetaan banyak ke banyak atau satu ke banyak saat mengambil urutan kolom.

Hanya satu parameter dari 'transformasi' atau 'feature_maps' yang harus ditentukan untuk menghasilkan penjelasan mentah. Menentukan keduanya akan menghasilkan pengecualian konfigurasi.

feature_maps
Diperlukan
list[array] atau list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>

Daftar peta fitur dari fitur mentah hingga yang dihasilkan. Parameter ini bisa berupa daftar array numpy atau matriks sparse di mana setiap entri array (raw_index, generate_index) adalah bobot untuk setiap pasangan fitur mentah yang dihasilkan. Entri lainnya diatur ke nol. Untuk urutan transformasi [t1, t2, ..., tn] menghasilkan fitur yang dihasilkan dari fitur mentah, daftar peta fitur sesuai dengan peta mentah ke peta yang dihasilkan dalam urutan yang sama seperti t1, t2, dll. Jika peta fitur mentah hingga yang dihasilkan secara keseluruhan dari t1 ke tn tersedia, hanya peta fitur dalam daftar elemen tunggal yang bisa diteruskan.

Hanya satu parameter dari 'transformasi' atau 'feature_maps' yang harus ditentukan untuk menghasilkan penjelasan mentah. Menentukan keduanya akan menghasilkan pengecualian konfigurasi.

Keterangan

MimicWrapper bisa digunakan untuk menjelaskan model pembelajaran mesin, dan sangat efektif dalam hubungannya dengan AutoML. Misalnya, menggunakan fungsi automl_setup_model_explanations dalam modul <xref:azureml.train.automl.runtime.automl_explain_utilities>, Anda bisa menggunakan MimicWrapper untuk menghitung serta memvisualisasikan pentingnya fitur. Untuk informasi selengkapnya, lihat Interpretabilitas: penjelasan model dalam pembelajaran mesin otomatis.

Dalam contoh berikut, MimicWrapper dipakai dalam masalah klasifikasi.


   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)

Untuk informasi selengkapnya tentang contoh ini, lihat buku catatan ini.

Metode

explain

Jelaskan perilaku model serta unggah penjelasan tersebut secara opsional untuk penyimpanan dan visualisasi.

explain

Jelaskan perilaku model serta unggah penjelasan tersebut secara opsional untuk penyimpanan dan visualisasi.

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)

Parameter

Nama Deskripsi
explanation_types
Diperlukan

Daftar string yang mewakili jenis penjelasan yang diinginkan. Saat ini, 'global' serta 'lokal' didukung. Keduanya dapat diteruskan sekaligus; namun hanya satu penjelasan saja yang akan dikembalikan.

eval_dataset
str atau array atau DataFrame atau csr_matrix

ID himpunan data atau himpunan data biasa yang digunakan untuk menghasilkan penjelasan.

nilai default: None
top_k
int

Batasi jumlah data yang dikembalikan serta disimpan dalam Riwayat Eksekusi ke fitur k teratas, jika memungkinkan.

nilai default: None
upload

Jika True, penjelasannya otomatis diunggah ke Riwayat Eksekusi untuk penyimpanan serta visualisasi. Jika eksekusi tidak diteruskan pada inisialisasi, maka eksekusi akan dibuat.

nilai default: True
upload_datasets

Jika diatur ke True dan tidak ada ID himpunan data yang diteruskan, maka himpunan data evaluasi akan diunggah ke penyimpanan Azure. Ini akan meningkatkan visualisasi yang tersedia di tampilan web.

nilai default: False
tag
Diperlukan
str

String untuk dilampirkan pada penjelasan untuk membedakannya dari yang lain setelah diunggah.

get_raw

Jika True dan parameter feature_maps diteruskan selama inisialisasi, maka penjelasan yang dikembalikan adalah untuk fitur mentah. Jika False atau tidak ditentukan, maka penjelasannya adalah untuk data persis seperti yang diteruskan.

nilai default: False
raw_feature_names

Daftar nama fitur mentah, menggantikan nama fitur rekayasa dari konstruktor.

nilai default: None
experiment_name
str

Nama yang diinginkan untuk memberikan penjelasan apabila upload True tetapi tidak ada proses yang diteruskan selama inisialisasi

nilai default: explain_model
raw_eval_dataset
str atau array atau DataFrame atau csr_matrix

Data evaluasi mentah yang akan diunggah untuk penjelasan mentah.

nilai default: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

Label yang benar untuk contoh evaluasi.

nilai default: None

Mengembalikan

Jenis Deskripsi

Objek penjelasan.

Atribut

explainer

Dapatkan penjelas yang digunakan secara internal oleh wrapper.

Mengembalikan

Jenis Deskripsi

Penjelas yang digunakan secara internal oleh wrapper.