SHAP kernel explainer

Python में Explainable AI

Fouad Trad

Machine Learning Engineer

SHAP kernel explainer

 

  • किसी भी मॉडल के लिए SHAP मान निकालता है

    • K-nearest neighbors
    • Neural networks
    • Tree-आधारित मॉडल
  • टाइप-विशिष्ट explainers से धीमा

छवि दिखाती है कि SHAP explainers दो भागों में हैं: जनरल explainers जो किसी भी मॉडल पर लगते हैं, और टाइप-विशिष्ट explainers जो खास मॉडल टाइप के लिए ऑप्टिमाइज़्ड हैं.

Python में Explainable AI

Heart disease

age sex chest_pain_type blood_pressure ecg_results thalassemia target
52 1 0 125 1 3 0
53 1 0 140 0 3 0
70 1 0 145 1 3 0
61 1 0 148 1 3 0
62 0 0 138 1 2 0

 

mlp_clf: multilayer perceptron जो heart disease का जोखिम प्रेडिक्ट करता है

Python में Explainable AI

Insurance charges

age gender bmi children smoker charges
19 0 27.900 0 1 16884.92
18 1 33.770 1 0 1725.55
28 1 33.000 3 0 4449.46
33 1 22.705 0 0 21984.47
32 1 28.880 0 0 3866.85

 

mlp_reg: multilayer perceptron जो insurance charges प्रेडिक्ट करता है

Python में Explainable AI

Kernel explainers बनाना

MLPRegressor
import shap


explainer = shap.KernelExplainer( # Model's prediction function, # Representative summary of dataset )
MLPClassifier
import shap


explainer = shap.KernelExplainer( # Model's prediction function, # Representative summary of dataset )
Python में Explainable AI

Kernel explainers बनाना

MLPRegressor
import shap

explainer = shap.KernelExplainer(
  mlp_reg.predict, 
  # Representative summary of dataset
)


MLPClassifier
import shap

explainer = shap.KernelExplainer(
  mlp_clf.predict_proba, 
  # Representative summary of dataset
)


Python में Explainable AI

Kernel explainers बनाना

MLPRegressor
import shap

explainer = shap.KernelExplainer(
  mlp_reg.predict, 
  shap.kmeans(X, 10)
)


shap_values_reg = explainer.shap_values(X)
MLPClassifier
import shap

explainer = shap.KernelExplainer(
  mlp_clf.predict_proba, 
  shap.kmeans(X, 10)
)


shap_values_cls = explainer.shap_values(X)
Python में Explainable AI

Feature importance

MLPRegressor
mean_reg = np.abs(shap_values_reg).mean(axis=0)

plt.bar(X.columns, mean_reg)

छवि: रिग्रेशन टास्क में फीचर importance का बार प्लॉट, जहाँ smoking और age चार्जेस प्रेडिक्ट करने में सबसे प्रभावी दिखते हैं.

MLPClassifier
mean_cls = np.abs(shap_values_cls[:,:,1]).mean(axis=0)

plt.bar(X.columns, mean_cls)

छवि: क्लासिफिकेशन टास्क में फीचर importance का बार प्लॉट, जहाँ chest pain type और thalassemia सबसे प्रभावी फैक्टर दिखते हैं.

Python में Explainable AI

मॉडल-विशिष्ट तरीकों से तुलना

Linear regression
plt.bar(X.columns, np.abs(lin_reg.coef_))

छवि: लीनियर रिग्रेशन मॉडल से फीचर importance का बार प्लॉट, जहाँ smoking और age चार्जेस प्रेडिक्ट करने में सबसे प्रभावी दिखते हैं.

Logistic regression
plt.bar(X.columns, np.abs(log_reg.coef_[0]))

छवि: क्लासिफिकेशन टास्क में फीचर importance का बार प्लॉट, जहाँ chest pain type सबसे प्रभावी फ़ैक्टर दिखता है.

Python में Explainable AI

अभ्यास करते हैं!

Python में Explainable AI

Preparing Video For Download...