SHAP (SHapley Additive exPlanations) এবং LIME (Local Interpretable Model-agnostic Explanations) দুটি জনপ্রিয় টুল যা মডেল এক্সপ্লেনেশন বা ব্যাখ্যা করার জন্য ব্যবহৃত হয়। মেশিন লার্নিং মডেলের ব্যাখ্যা (explainability) একটি গুরুত্বপূর্ণ দিক, কারণ এটি মডেলের সিদ্ধান্ত গ্রহণ প্রক্রিয়া ব্যবহারকারীদের কাছে স্পষ্ট করে তুলে এবং মডেলটি কীভাবে এবং কেন নির্দিষ্ট সিদ্ধান্ত নিয়েছে তা বুঝতে সাহায্য করে।
এই টুলগুলির সাহায্যে, আপনি ব্ল্যাক-বক্স মডেলগুলির (যেমন ডিপ লার্নিং, গ্রেডিয়েন্ট বুস্টিং) আউটপুট ব্যাখ্যা করতে পারেন।
১. SHAP (SHapley Additive exPlanations)
SHAP হল একটি শক্তিশালী টুল যা মডেলের প্রতিটি বৈশিষ্ট্যের (feature) জন্য শাপলি মান ব্যবহার করে ব্যাখ্যা প্রদান করে। শাপলি মান মূলত গেম থিওরি থেকে এসেছে এবং এটি মডেল প্রতিটি বৈশিষ্ট্যের ভূমিকা (contribution) গণনা করে। SHAP মূলত global এবং local ব্যাখ্যার জন্য ব্যবহৃত হয়।
১.১. SHAP ইনস্টলেশন
pip install shap
১.২. SHAP ব্যবহার করে মডেল ব্যাখ্যা
SHAP ব্যবহার করতে হলে প্রথমে একটি মডেল তৈরি করতে হবে। এখানে আমরা একটি সহজ উদাহরণ দিয়ে দেখব:
import shap
import xgboost as xgb
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# ডেটা লোড করা
boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
y = boston.target
# ডেটা ট্রেন এবং টেস্টে বিভক্ত
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# XGBoost মডেল তৈরি
model = xgb.XGBRegressor()
model.fit(X_train, y_train)
# SHAP ভ্যালু গণনা
explainer = shap.Explainer(model, X_train)
shap_values = explainer(X_test)
# SHAP Summary Plot
shap.summary_plot(shap_values, X_test)
এখানে:
shap.Explainer(): মডেল এবং ট্রেনিং ডেটা প্রদান করে SHAP ব্যাখ্যাকারী তৈরি করা হয়।shap.summary_plot(): এই ফাংশনটি SHAP ভ্যালু প্রদর্শন করার জন্য ব্যবহৃত হয় এবং এটি বৈশিষ্ট্যগুলির গুরুত্ব এবং প্রভাব তুলে ধরে।
SHAP এর বৈশিষ্ট্য:
- Global Explanations: SHAP এর মাধ্যমে আপনি সমস্ত বৈশিষ্ট্যের পারফরম্যান্স এবং তাদের গুরুত্ব দেখতে পারবেন।
- Local Explanations: SHAP স্থানীয় ব্যাখ্যা প্রদান করে, যেমন একটি নির্দিষ্ট ডেটা পয়েন্টের জন্য কোন বৈশিষ্ট্য কোনভাবে সিদ্ধান্তকে প্রভাবিত করেছে।
২. LIME (Local Interpretable Model-agnostic Explanations)
LIME হল একটি মডেল-অগনস্টিক ব্যাখ্যা টুল যা যেকোনো মেশিন লার্নিং মডেলের জন্য স্থানীয় ব্যাখ্যা তৈরি করতে ব্যবহৃত হয়। LIME মডেলের কাছে একটি "black-box" মডেল হিসাবে কাজ করে এবং তার আউটপুটের জন্য একটি সহজ, ব্যাখ্যাযোগ্য মডেল তৈরি করে, যেমন লিনিয়ার রিগ্রেশন।
২.১. LIME ইনস্টলেশন
pip install lime
২.২. LIME ব্যবহার করে মডেল ব্যাখ্যা
এখানে একটি LIME উদাহরণ যা Random Forest মডেলের জন্য ব্যাখ্যা তৈরি করবে:
import lime
import lime.lime_tabular
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# ডেটা লোড করা
boston = load_boston()
X = boston.data
y = boston.target
# ডেটা ট্রেন এবং টেস্টে বিভক্ত
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# মডেল তৈরি
rf_model = RandomForestRegressor()
rf_model.fit(X_train, y_train)
# LIME এর জন্য ব্যাখ্যাকারী তৈরি
explainer = lime.lime_tabular.LimeTabularExplainer(
training_data=X_train,
mode="regression",
feature_names=boston.feature_names,
training_labels=y_train,
discretize_continuous=True
)
# LIME ব্যাখ্যা তৈরি
i = 0 # প্রথম টেস্ট ডেটার জন্য ব্যাখ্যা তৈরি
exp = explainer.explain_instance(X_test[i], rf_model.predict)
# ব্যাখ্যা প্রদর্শন
exp.show_in_notebook(show_table=True, show_all=False)
এখানে:
LimeTabularExplainer(): LIME ব্যাখ্যাকারী তৈরি করার জন্য ব্যবহৃত হয়।explain_instance(): একটি নির্দিষ্ট ডেটা পয়েন্টের জন্য ব্যাখ্যা তৈরি করা হয়।show_in_notebook(): ব্যাখ্যা প্রদর্শন করা হয়।
LIME এর বৈশিষ্ট্য:
- Local Explanations: LIME শুধুমাত্র একটি ডেটা পয়েন্টের জন্য ব্যাখ্যা প্রদান করে, এটি স্থানীয় ব্যাখ্যা।
- Model-agnostic: LIME কোনো নির্দিষ্ট মডেলের জন্য নয়, এটি যেকোনো মডেলের জন্য কাজ করতে পারে।
- Interpretability: LIME দ্বারা তৈরি মডেল সাধারণত সহজ এবং ব্যাখ্যা করা সহজ।
৩. SHAP এবং LIME এর তুলনা
| বৈশিষ্ট্য | SHAP | LIME |
|---|---|---|
| ধরণ | Global এবং Local Explanations | Local Explanations |
| মডেল অগনস্টিক | হ্যাঁ, তবে SHAP অনেক মডেল বিশেষভাবে তৈরি করা হয়েছে। | হ্যাঁ, LIME যে কোনো মডেলের সাথে কাজ করে। |
| ব্যবহার | ব্ল্যাক-বক্স মডেলগুলির জন্য প্রভাব বিশ্লেষণ | স্থানীয় ব্যাখ্যা তৈরি করার জন্য সহজ। |
| পারফরম্যান্স | অধিক জটিল, গণনা বেশি | কম জটিল এবং দ্রুত, তবে আরো টিউনিং প্রয়োজন |
| ব্যাখ্যার গুণগত মান | যথাযথ এবং বিশদ | কিছুটা কম সঠিক হতে পারে |
সারাংশ
- SHAP এবং LIME উভয়ই মডেল এক্সপ্লেনেশন টুল যা ব্যবহারকারীদের মডেলের আউটপুট বুঝতে সাহায্য করে।
- SHAP গেম থিওরি ভিত্তিক পদ্ধতি ব্যবহার করে এবং এটি global এবং local ব্যাখ্যা প্রদান করতে সক্ষম।
- LIME স্থানীয় ব্যাখ্যা তৈরি করে এবং এটি মডেল-অগনস্টিক, অর্থাৎ এটি কোনো মডেলের জন্য কাজ করতে পারে।
- উভয় টুলেরই সুবিধা এবং সীমাবদ্ধতা রয়েছে এবং ব্যবহারের প্রেক্ষিতে আপনি যে টুলটি বেছে নিবেন তা নির্ভর করবে মডেল এবং ব্যাখ্যার প্রয়োজনীয়তার ওপর।
SHAP এবং LIME উভয়ই মডেল ব্যাখ্যা এবং সঠিক সিদ্ধান্ত গ্রহণ প্রক্রিয়া সহজতর করার জন্য অত্যন্ত উপকারী টুল।
Read more