Bölüm 6 · Modeli ölçmek ve açıklamak · Ders 27
SHAP: tahmini özelliklere paylaştırmak
Pil ömrü tahmininde her özelliğin adil payı
Veri. Bir teslimat robotunun modeli, görevden önce pil ömrünü dakika olarak tahmin ediyor. Dört girdi var: yük (0–10 kg), hız (0,2–2 m/s), ortam sıcaklığı (−5–40 °C) ve yol eğimi (%0–15). 200 eski görev arka planı oluşturuyor. 9 numaralı görevde (8,1 kg yük, 1,6 m/s, 4 °C, %5 eğim) model "pil 65,6 dakika dayanır" diyor; ortalama bir görevden yarım saat kısa. Operatör bunun nedenini görmek istiyor.
import numpy as npfrom math import factorial as factrng = np.random.default_rng(6)lo, hi = [0, 0.2, -5, 0], [10, 2.0, 40, 15] # yük, hız, sıcaklık, eğimbg = rng.uniform(lo, hi, (200, 4)) # 200 eski görevdef f(z): # pil ömrü (dakika)load, speed, temp, slope = zreturn (160 - 3 * load - 20 * speed- .08 * (temp - 20) ** 2 - 1.5 * slope- .25 * load * slope) # etkileşimx, mu = np.array([8.1, 1.6, 4, 5]), bg.mean(0) # görev 9def v(S): # koalisyon değerikeep = [S >> j & 1 for j in range(4)]return f(np.where(keep, x, mu)) # eksik = ortalamaphi = np.zeros(4)for S in range(16): # 16 koalisyonk = bin(S).count("1")for i in range(4):if not S >> i & 1:w = fact(k) * fact(3 - k) / fact(4)phi[i] += w * (v(S | 1 << i) - v(S)) # eklemenin getirisiprint("taban", v(0), "katkılar", phi.round(1)) # base, contributionsprint(v(0) + phi.sum(), "=", f(x)) # toplam = tahmin
Sahnedeki her sayı, aynı algoritmanın tarayıcında yapılan gerçek çalıştırmasından gelir (sabit tohum, her seferinde aynı sonuç). Python kodunu kendi bilgisayarında çalıştırırsan rastgele başlangıçlar farklı olacağı için sayılar biraz değişebilir.
Veri seti
Tüm veri setleri →Bu dersin kodu verisini kendi içinde üretir; indirilecek dosya yok. Kodu yine de aşağıda tarayıcında çalıştırabilirsin.
Kodu tarayıcıda çalıştırPython · NumPy · matplotlib · Pyodide
Python ve NumPy bu sayfada, tarayıcında çalışır (Pyodide). Kodu değiştirip yeniden çalıştırabilirsin; dersin veri setleri çalışma klasöründe hazır. Kod matplotlib kullanırsa grafikler çıktının altında görünür, yazdığı dosyalar (ör. egitim_gecmisi.csv) indirilebilir.
Çıktı
Çıktı burada görünecek.Nasıl çalışır
- Taban değer: hiçbir özellik bilinmiyorken tahmin, yani dört özelliğin de arka plan ortalamasında olduğu durum.
- Bir koalisyon, bilinen özelliklerin kümesidir; eksikler ortalamayla doldurulur. 4 özellik için 2⁴ = 16 koalisyon var.
- Bir özelliğin SHAP değeri, onu her koalisyona eklemenin getirdiği değişimin ağırlıklı ortalamasıdır; ağırlık |S|!(n−|S|−1)!/n!.
- Katkılar tam toplanır: taban + katkılar = tahmin. Doğrusal modelde katkı tam olarak w·(x − ortalama).
- Şunu dene: örnek numarasını değiştir; şelale yeniden kurulur. Modeli 1 (doğrusal) yap: yük–eğim etkileşimi kalkar.
Neden önemli
SHAP, kara kutu modelleri açıklamanın en yaygın yoludur: kredi kararlarından tıbbi tahminlere, arıza tahmininden otonom araç kayıtlarına kadar. Robotikte bir modelin neden "pil yetmez" ya da "motor arızalanacak" dediğini mühendise gösterir. Gerçek kütüphaneler çok özellikte tüm koalisyonları denemez; yaklaşık hesaplar.
ESOF 323, 11. hafta: robotlarda derin öğrenme →