Các chỉ số khả giải thích

Explainable AI trong Python

Fouad Trad

Machine Learning Engineer

Độ nhất quán

  • Đánh giá độ ổn định của giải thích khi mô hình huấn luyện trên các tập con khác nhau
  • Độ nhất quán thấp → giải thích không vững

Hình minh họa dữ liệu chia thành hai tập con: tập 1 và tập 2.

Explainable AI trong Python

Độ nhất quán

  • Đánh giá độ ổn định của giải thích khi mô hình huấn luyện trên các tập con khác nhau
  • Độ nhất quán thấp → giải thích không vững

Mỗi tập con được dùng để huấn luyện một mô hình.

Explainable AI trong Python

Độ nhất quán

  • Đánh giá độ ổn định của giải thích khi mô hình huấn luyện trên các tập con khác nhau
  • Độ nhất quán thấp → giải thích không vững

Mỗi lần mô hình huấn luyện trên một tập con, ta rút ra độ quan trọng đặc trưng và tính tương đồng cosin giữa chúng.

Explainable AI trong Python

Độ tương đồng cosin để đo tính nhất quán

 

 

 

Hình minh họa các giá trị then chốt của Độ nhất quán và ý nghĩa: 1 = giải thích rất nhất quán.

Explainable AI trong Python

Độ tương đồng cosin để đo tính nhất quán

 

 

 

Hình minh họa các giá trị then chốt của Độ nhất quán và ý nghĩa: 1 = giải thích rất nhất quán, 0 = không nhất quán.

Explainable AI trong Python

Độ tương đồng cosin để đo tính nhất quán

 

 

 

Hình minh họa các giá trị then chốt của Độ nhất quán và ý nghĩa: 1 = giải thích rất nhất quán, 0 = không nhất quán, -1 = giải thích đối nghịch.

Explainable AI trong Python

Bộ dữ liệu tuyển sinh

Điểm GRE Điểm TOEFL Xếp hạng Trường SOP LOR CGPA Xác suất Trúng tuyển
337 118 4 4.5 4.5 9.65 0.92
324 107 4 4 4.5 8.87 0.76
316 104 3 3 3.5 8 0.72
322 110 3 3.5 2.5 8.67 0.8
314 103 2 2 3 8.21 0.45

 

  • X1, y1: phần 1 của dữ liệu
  • X2, y2: phần 2 của dữ liệu
  • model1, model2: các mô hình rừng ngẫu nhiên hồi quy
Explainable AI trong Python

Tính toán độ nhất quán

from sklearn.metrics.pairwise import cosine_similarity

explainer1 = shap.TreeExplainer(model1) explainer2 = shap.TreeExplainer(model2)
shap_values1 = explainer1.shap_values(X1) shap_values2 = explainer2.shap_values(X2)
feature_importance1 = np.mean(np.abs(shap_values1), axis=0) feature_importance2 = np.mean(np.abs(shap_values2), axis=0)
consistency = cosine_similarity([feature_importance1], [feature_importance2]) print("Consistency between SHAP values:", consistency)
Consistency between SHAP values: [[0.99706516]]
Explainable AI trong Python

Độ trung thực (Faithfulness)

  • Đánh giá liệu đặc trưng quan trọng có ảnh hưởng dự đoán của mô hình không
  • Độ trung thực thấp → gây hiểu sai về lý do của mô hình
  • Hữu ích trong các ứng dụng nhạy cảm

Hình cho thấy mô hình tạo dự đoán gốc cho một mẫu đầu vào.

Explainable AI trong Python

Độ trung thực (Faithfulness)

  • Đánh giá liệu đặc trưng quan trọng có ảnh hưởng dự đoán của mô hình không
  • Độ trung thực thấp → gây hiểu sai về lý do của mô hình
  • Hữu ích trong các ứng dụng nhạy cảm

SHAP hoặc LIME được dùng để giải thích cục bộ dự đoán gốc này.

Explainable AI trong Python

Độ trung thực (Faithfulness)

  • Đánh giá liệu đặc trưng quan trọng có ảnh hưởng dự đoán của mô hình không
  • Độ trung thực thấp → gây hiểu sai về lý do của mô hình
  • Hữu ích trong các ứng dụng nhạy cảm

Một mẫu đã chỉnh sửa được đưa vào mô hình để tạo dự đoán mới.

Explainable AI trong Python

Độ trung thực (Faithfulness)

  • Đánh giá liệu đặc trưng quan trọng có ảnh hưởng dự đoán của mô hình không
  • Độ trung thực thấp → gây hiểu sai về lý do của mô hình
  • Hữu ích trong các ứng dụng nhạy cảm

Công thức tính độ trung thực: trị tuyệt đối của chênh lệch giữa dự đoán mới và dự đoán gốc.

Explainable AI trong Python

Tính toán độ trung thực

X_instance = X_test.iloc[[0]]

original_prediction = model.predict_proba(X_instance)[0, 1] print(f"Original prediction: {original_prediction}")
Original prediction: 0.43

Hình cho thấy giải thích mức độ quan trọng của đặc trưng từ LIME cho mẫu đã chọn.

Explainable AI trong Python

Tính toán độ trung thực

X_instance['GRE Score'] = 310  


new_prediction = model.predict_proba(X_instance)[0, 1] print(f"Prediction after perturbing {important_feature}: {new_prediction}")
faithfulness_score = np.abs(original_prediction - new_prediction) print(f"Local Faithfulness Score: {faithfulness_score}")
Prediction after perturbing GRE Score: 0.77

Local Faithfulness Score: 0.34
Explainable AI trong Python

Ayo berlatih!

Explainable AI trong Python

Preparing Video For Download...