Nilai SHAP untuk Penjelasan Model
shap.Explainer, TreeExplainer, plot gaya force, plot beeswarm, pemeringkatan kepentingan fitur.
Nilai SHAP untuk Penjelasan Model adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Mengapa Keterjelasan Penting
Model yang kompleks memang akurat, tetapi tidak transparan. Keterjelasan menjawab pertanyaan "mengapa model membuat prediksi ini?", yang penting untuk membangun kepercayaan, melakukan pengawakutuan, dan memenuhi peraturan. SHAP adalah salah satu metode penjelasan yang paling banyak digunakan.
Apa yang Diukur SHAP
SHAP (SHapley Additive exPlanations) memberikan setiap fitur sebuah kontribusi terhadap satu prediksi. Nilai-nilai ini didasarkan pada nilai Shapley dari teori permainan kooperatif: setiap fitur adalah "pemain", dan nilai SHAP-nya merupakan bagian adil dari prediksi relatif terhadap nilai dasar.
Aditivitas
Nilai SHAP bersifat aditif: nilai dasar (keluaran model rata-rata) ditambah jumlah semua nilai SHAP fitur sama dengan prediksi sebenarnya. Dengan demikian, setiap penjelasan menjadi pencatatan lengkap dan dapat diaudit atas keluaran tersebut.
# prediction = base_value + sum(shap_values_for_each_feature)TreeExplainer
Untuk model berbasis pohon (XGBoost, LightGBM, hutan acak), shap.TreeExplainer menghitung nilai SHAP secara tepat dan cepat dengan memanfaatkan struktur pohon.
import shap
import xgboost
model = xgboost.XGBClassifier().fit(X_train, y_train)
explainer = shap.TreeExplainer(model)Menghitung shap_values
explainer.shap_values(X_test) mengembalikan sebuah matriks: satu nilai SHAP untuk setiap fitur pada setiap baris. Nilai-nilai ini adalah kontribusi mentah yang akan Anda visualisasikan.
shap_values = explainer.shap_values(X_test)
print(shap_values.shape) # (n_samples, n_features)Diagram Titik `summary_plot`
shap.summary_plot menghasilkan diagram sebaran titik: setiap titik adalah satu sampel untuk satu fitur. Posisi menunjukkan nilai SHAP (arah dan besarnya dampak); warna menunjukkan nilai fitur. Fitur diurutkan berdasarkan kepentingan keseluruhan.
shap.summary_plot(shap_values, X_test)Membaca Diagram Sebaran Titik
Untuk membaca diagram sebaran titik:
- Fitur di bagian atas paling penting secara keseluruhan
- Titik yang jauh di kanan menaikkan prediksi; titik yang jauh di kiri menurunkannya
- Warna menunjukkan arah, misalnya nilai fitur tinggi (merah) di sebelah kanan berarti "nilai tinggi meningkatkan prediksi"
Menjelaskan Satu Prediksi
SHAP sangat bermanfaat pada tingkat individual. Untuk menjelaskan satu baris, Anda memerlukan nilai SHAP dan nilai dasar model.
idx = 0
base = explainer.expected_value
row_shap = shap_values[idx]force_plot
shap.force_plot menampilkan satu prediksi sebagai gaya yang mendorong dari nilai dasar: fitur berwarna merah mendorong keluaran menjadi lebih tinggi, sedangkan fitur berwarna biru mendorongnya menjadi lebih rendah. Hasil akhirnya berada pada prediksi akhir.
shap.force_plot(
explainer.expected_value,
shap_values[0],
X_test.iloc[0],
)waterfall_plot
shap.waterfall_plot adalah tampilan prediksi tunggal yang paling mudah dibaca. Tampilan ini dimulai dari nilai dasar dan menumpuk kontribusi setiap fitur langkah demi langkah hingga mencapai keluaran akhir, dengan urutan berdasarkan besarnya kontribusi.
shap.waterfall_plot(
shap.Explanation(
values=shap_values[0],
base_values=explainer.expected_value,
data=X_test.iloc[0],
)
)Global dan Lokal
SHAP memenuhi dua kebutuhan:
- Global:
summary_plotmenunjukkan fitur mana yang secara keseluruhan paling memengaruhi model - Lokal:
force_plotdanwaterfall_plotmenjelaskan satu prediksi tertentu
Keduanya berasal dari nilai SHAP yang sama, sehingga memberikan penjelasan yang konsisten pada berbagai skala.
Uji Singkat
Uji pengetahuan Anda tentang SHAP.
Ringkasan
Anda telah mempelajari keterjelasan model dengan SHAP:
shap.TreeExplainer(model)menghitung nilai secara tepat untuk model berbasis pohonexplainer.shap_values(X_test)mengembalikan kontribusi setiap fitur- Diagram sebaran titik
summary_plotmenunjukkan kepentingan global force_plotdanwaterfall_plotmenjelaskan satu prediksi- Nilai SHAP bersifat aditif: nilai dasar + kontribusi = prediksi
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Nilai SHAP untuk Penjelasan Model” gratis?
Ya — teks lengkap “Nilai SHAP untuk Penjelasan Model” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Nilai SHAP untuk Penjelasan Model”?
shap.Explainer, TreeExplainer, plot gaya force, plot beeswarm, pemeringkatan kepentingan fitur. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Nilai SHAP untuk Penjelasan Model” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mendeteksi Bias dalam Model Pembelajaran Mesin
- Nilai SHAP untuk Penjelasan Model
- LIME: Penjelasan Lokal yang Dapat Diinterpretasikan
- Kerangka Etika dan Tata Kelola Kecerdasan Buatan