Unsupervised मॉडेल समझना

Python में Explainable AI

Fouad Trad

Machine Learning Engineer

Clustering

बिना पहले से दिए लेबल के मिलते-जुलते डेटा पॉइंट्स को समूहित करें

2 फीचर्स वाले डेटा को 3 क्लस्टर में बाँटा गया है, हर एक का एक सेंटरॉइड है.

Python में Explainable AI

Silhouette score

  • क्लस्टरिंग की गुणवत्ता नापता है
  • रेंज: -1 से 1
    • 1 → क्लस्टर अच्छी तरह अलग-अलग

अच्छी तरह अलग-अलग क्लस्टर.

Python में Explainable AI

Silhouette score

  • क्लस्टरिंग की गुणवत्ता नापता है
  • रेंज: -1 से 1
    • 1 → क्लस्टर अच्छी तरह अलग-अलग
    • -1 → पॉइंट्स गलत असाइन हुए

स्पष्ट अलगाव बिना वाले क्लस्टर.

Python में Explainable AI

फीचर का क्लस्टर गुणवत्ता पर प्रभाव

2 फीचर्स वाले डेटासेट को क्लस्टरिंग एल्गोरिदम में देकर मिला क्लस्टरिंग परिणाम.

Python में Explainable AI

फीचर का क्लस्टर गुणवत्ता पर प्रभाव

एक फीचर हटाकर मॉडल को फिर से ट्रेन करने के बाद का क्लस्टरिंग परिणाम.

Python में Explainable AI

फीचर का क्लस्टर गुणवत्ता पर प्रभाव

हटाए गए फीचर के प्रभाव को, दोनों फीचर्स होने पर और फीचर हटाने पर मिले silhouette scores के अंतर से निकालने का सूत्र.

  • $\text{Impact(}f) > 0$ → $f$ का सकारात्मक योगदान
  • $\text{Impact(}f) < 0$ → $f$ शोर बढ़ाता है
Python में Explainable AI

Student Performance डेटासेट

age health status absences G1 G2 G3
18 3 4 0 11 11
17 3 2 9 11 11
15 3 6 12 13 12
15 5 0 14 14 14
16 5 0 11 13 13

 

X: फीचर्स वाली array

Python में Explainable AI

क्लस्टर गुणवत्ता पर फीचर impact निकालना

from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score


kmeans = KMeans(n_clusters=2).fit(X)
original_score = silhouette_score(X, kmeans.labels_)
for i in range(X.shape[1]):
X_reduced = np.delete(X, i, axis=1)
kmeans.fit(X_reduced)
new_score = silhouette_score(X_reduced, kmeans.labels_)
impact = original_score - new_score print(f'Feature {column_names[i]}: Impact = {impact}')
Python में Explainable AI

क्लस्टर गुणवत्ता पर फीचर impact निकालना

Feature age: Impact = 0.05199181662741281
Feature health status: Impact = 0.06046737420227638
Feature absences: Impact = 0.031290940582026694
Feature G1: Impact = -0.025746421940652353
Feature G2: Impact = -0.02578292339364119
Feature G3: Impact = -0.03163419458330158
Python में Explainable AI

Adjusted Rand Index (ARI)

  • मापता है कि क्लस्टर असाइनमेंट कितनी अच्छी तरह मेल खाते हैं

दिए गए डेटासेट पर दो समान क्लस्टर असाइनमेंट.

  • अधिकतम ARI = 1 → बिल्कुल सटीक क्लस्टर मेल
Python में Explainable AI

Adjusted Rand Index (ARI)

  • मापता है कि क्लस्टर असाइनमेंट कितनी अच्छी तरह मेल खाते हैं

उसी डेटासेट पर दो अलग क्लस्टर असाइनमेंट.

  • अधिकतम ARI = 1 → बिल्कुल सटीक क्लस्टर मेल
  • कम ARI → क्लस्टरिंग में अधिक अंतर
Python में Explainable AI

क्लस्टर असाइनमेंट के लिए फीचर महत्व

   

  • फीचर्स एक-एक करके हटाएँ
  • $\text{Importance}(f) = 1 - \text{ARI (original clusters, modifed clusters)}$
  • कम $\text(ARI)$ → अधिक $\text(1 - ARI)$ → महत्वपूर्ण फीचर
Python में Explainable AI

क्लस्टर असाइनमेंट के लिए फीचर महत्व

from sklearn.metrics import adjusted_rand_score

kmeans = KMeans(n_clusters=2).fit(X) original_clusters = kmeans.predict(X)
for i in range(X.shape[1]):
X_reduced = np.delete(X, i, axis=1)
reduced_clusters = kmeans.fit_predict(X_reduced)
importance = 1 - adjusted_rand_score(original_clusters, reduced_clusters) print(f'{df.columns[i]}: {importance}')
age: 0.0
health status: 0.9995376368119572
absences: 0.0
G1: 0.0
G2: 0.6204069909514572
G3: 0.6204069909514572
Python में Explainable AI

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

Python में Explainable AI

Preparing Video For Download...