XAI adalah perpustakaan pembelajaran mesin yang dirancang dengan kemampuan penjelasan AI di intinya. XAI berisi berbagai alat yang memungkinkan analisis dan evaluasi data dan model. Perpustakaan XAI dikelola oleh Institute for Ethical AI & ML, dan dikembangkan berdasarkan 8 prinsip untuk pembelajaran mesin yang bertanggung jawab.
Anda dapat menemukan dokumentasi di https://ethicalml.github.io/xai/index.html. Anda juga dapat memeriksa pembicaraan kami di Tensorflow London di mana idenya pertama kali dipahami - pembicaraan itu juga berisi wawasan tentang definisi dan prinsip -prinsip di perpustakaan ini.
| Video pembicaraan yang disajikan pada konferensi Pydata London 2019 yang memberikan gambaran tentang motivasi untuk kemampuan menjelaskan pembelajaran mesin serta teknik untuk memperkenalkan kemampuan menjelaskan dan mengurangi bias yang tidak diinginkan menggunakan perpustakaan XAI. | ![]() |
| Apakah Anda ingin belajar tentang alat penjelasan pembelajaran mesin yang lebih mengagumkan? Lihatlah daftar "Produksi & Operasi Pembelajaran Mesin yang luar biasa yang dibuat oleh komunitas kami yang berisi daftar alat yang luas untuk kemampuan menjelaskan, privasi, orkestrasi, dan seterusnya. | ![]() |
Jika Anda ingin melihat demo yang berfungsi penuh dalam aksi klon repo ini dan jalankan contoh notebook jupyter di folder contoh.
Kami melihat tantangan kemampuan menjelaskan lebih dari sekadar tantangan algoritmik, yang membutuhkan kombinasi praktik terbaik sains data dengan pengetahuan khusus domain. Perpustakaan XAI dirancang untuk memberdayakan insinyur pembelajaran mesin dan pakar domain yang relevan untuk menganalisis solusi ujung ke ujung dan mengidentifikasi perbedaan yang dapat mengakibatkan kinerja sub-optimal relatif terhadap tujuan yang diperlukan. Secara lebih luas, perpustakaan XAI dirancang menggunakan 3 langkah pembelajaran mesin yang dapat dijelaskan, yang melibatkan 1) analisis data, 2) evaluasi model, dan 3) pemantauan produksi.
Kami memberikan gambaran visual dari tiga langkah yang disebutkan di atas dalam diagram ini:

Paket XAI ada di PYPI. Untuk menginstal Anda dapat menjalankan:
pip install xai
Atau Anda dapat menginstal dari sumber dengan mengkloning repo dan menjalankan:
python setup.py install
Anda dapat menemukan contoh penggunaan di folder contoh.
Dengan XAI, Anda dapat mengidentifikasi ketidakseimbangan dalam data. Untuk ini, kami akan memuat dataset sensus dari perpustakaan XAI.
import xai . data
df = xai . data . load_census ()
df . head ()
ims = xai . imbalance_plot ( df , "gender" )
im = xai . imbalance_plot ( df , "gender" , "loan" )
bal_df = xai . balance ( df , "gender" , "loan" , upsample = 0.8 )
groups = xai . group_by_columns ( df , [ "gender" , "loan" ])
for group , group_df in groups :
print ( group )
print ( group_df [ "loan" ]. head (), " n " )
_ = xai . correlations ( df , include_categorical = True , plot_type = "matrix" )
_ = xai . correlations ( df , include_categorical = True )
# Balanced train-test split with minimum 300 examples of
# the cross of the target y and the column gender
x_train , y_train , x_test , y_test , train_idx , test_idx =
xai . balanced_train_test_split (
x , y , "gender" ,
min_per_group = 300 ,
max_per_group = 300 ,
categorical_cols = categorical_cols )
x_train_display = bal_df [ train_idx ]
x_test_display = bal_df [ test_idx ]
print ( "Total number of examples: " , x_test . shape [ 0 ])
df_test = x_test_display . copy ()
df_test [ "loan" ] = y_test
_ = xai . imbalance_plot ( df_test , "gender" , "loan" , categorical_cols = categorical_cols )
Kami juga dapat menganalisis interaksi antara hasil inferensi dan fitur input. Untuk ini, kami akan melatih model pembelajaran dalam satu lapisan.
model = build_model(proc_df.drop("loan", axis=1))
model.fit(f_in(x_train), y_train, epochs=50, batch_size=512)
probabilities = model.predict(f_in(x_test))
predictions = list((probabilities >= 0.5).astype(int).T[0])

def get_avg ( x , y ):
return model . evaluate ( f_in ( x ), y , verbose = 0 )[ 1 ]
imp = xai . feature_importance ( x_test , y_test , get_avg )
imp . head ()
_ = xai . metrics_plot (
y_test ,
probabilities )
_ = xai . metrics_plot (
y_test ,
probabilities ,
df = x_test_display ,
cross_cols = [ "gender" ],
categorical_cols = categorical_cols )
_ = xai . metrics_plot (
y_test ,
probabilities ,
df = x_test_display ,
cross_cols = [ "gender" , "ethnicity" ],
categorical_cols = categorical_cols )
xai . confusion_matrix_plot ( y_test , pred )
_ = xai . roc_plot ( y_test , probabilities )
protected = [ "gender" , "ethnicity" , "age" ]
_ = [ xai . roc_plot (
y_test ,
probabilities ,
df = x_test_display ,
cross_cols = [ p ],
categorical_cols = categorical_cols ) for p in protected ]
d = xai . smile_imbalance (
y_test ,
probabilities )
d = xai . smile_imbalance (
y_test ,
probabilities ,
display_breakdown = True )
d = xai . smile_imbalance (
y_test ,
probabilities ,
bins = 9 ,
threshold = 0.75 ,
manual_review = 0.375 ,
display_breakdown = False )