9.6 SHAP (SHapley Additive exPlanations)
Last updated
Last updated
SHAP (SHapley Additive exPlanations) Lundberg ve Lee (2017)69 tarafından ortaya konmuş ve bireysel tahminleri açıklamak için kullanılan bir yöntemdir. SHAP, oyun teorisi temelli optimal Shapley değerlerine dayanır.
SHAP’in kendi bölümü olmasının ve Shapley değerlerinin alt bölümü olmamasının iki nedeni vardır. Birincisi, SHAP yazarları, Yerel vekil (surrogate) modellerden esinlenen, çekirdek tabanlı (kernel-based) alternatif bir Shapley değeri tahmin yaklaşımı olan KernelSHAP’i önermişlerdir. Ayrıca ağaç tabanlı modeller için TreeSHAP adında verimli bir tahmin yaklaşımı önermişlerdir. İkincisi, SHAP, Shapley değerlerinin birleştirilmesine (aggregation) dayanan pek çok küresel (global) yorumlama yöntemi sunmaktadır. Bu bölüm, hem yeni tahmin yaklaşımlarını hem de küresel yorumlama yöntemlerini açıklar.
Shapley değerleri ve yerel modeller (LIME) ile ilgili bölümleri önce okumanızı öneririm.
SHAP’in amacı, bir örnek x’in tahminini açıklamak için, tahmin üzerindeki her bir özelliğin katkısını hesaplamaktır. SHAP açıklama yöntemi, koalisyonel (işbirlikçi) oyun teorisinden Shapley değerlerini hesaplar. Bir veri örneğinin özellik değerleri, bir koalisyondaki oyuncular gibi davranır. Shapley değerleri, “ödemenin” (yani tahminin) özellikler arasında adil şekilde nasıl dağıtılacağını söyler. Bir oyuncu, tablo verisi için tek bir özelliğin değeri olabilir. Bir oyuncu aynı zamanda bir grup özellik değeri de olabilir. Örneğin, bir resmi açıklamak için pikseller süperpiksel gruplarına ayrılabilir ve tahmin bu süperpikseller arasında paylaştırılabilir. SHAP’in getirdiği yeniliklerden biri, Shapley değeri açıklamasının, katkısal (additive) bir özellik atıf yöntemi olan doğrusal bir model şeklinde ifade edilmesidir. Bu bakış açısı, LIME ile Shapley değerlerini birbirine bağlar. SHAP, açıklamayı şu şekilde belirtir:
Burada g açıklama modelidir, koalisyon vektörüdür, M maksimum koalisyon boyutudur ve özellik j için Shapley değerleri olan özelliğe atıf değeridir. Benim “koalisyon vektörü” olarak adlandırdığım şey, SHAP makalesinde “basitleştirilmiş özellikler” olarak geçmektedir. Sanırım bu isim, özellikle görüntü verisi için, görüntülerin piksel düzeyinde değil süperpiksel seviyesinde temsil edilmesi nedeniyle seçildi. Ben, z vektörlerini koalisyonları tanımlayan vektörler olarak düşünmenin yararlı olduğuna inanıyorum: Koalisyon vektöründe 1 olan bir giriş, ilgili özellik değerinin “mevcut” (present) olduğunu, 0 ise “yok” (absent) olduğunu ifade eder. Shapley değerlerini biliyorsanız bu size tanıdık gelebilir. Shapley değerlerini hesaplamak için, bazı özellik değerlerinin “oyunda” (mevcut), bazılarının ise “olmayan” (yok) olduğunu simüle ederiz. Koalisyonları doğrusal bir modelle temsil etmek, ’lerin hesabı için bir hiledir (trick). x (ilgi duyulan örnek) için, koalisyon vektörü x′, tüm bileşenleri 1 olan bir vektördür; yani tüm özellik değerleri “mevcuttur”. Formül şu şekilde basitleşir:
Bu formülü, Shapley değeri bölümünde benzer bir gösterimle bulabilirsiniz. Gerçek tahminle ilgili daha fazla bilgi daha sonra gelecek. Öncelikle, ’lerin tahmin edilmesi detaylarına girmeden önce ’lerin özelliklerinden bahsedelim.
Shapley değerleri, Efficiency, Symmetry, Dummy ve Additivity özelliklerini karşılayan tek çözümdür. SHAP de bu özellikleri karşılar, çünkü Shapley değerlerini hesaplar. SHAP makalesinde SHAP özellikleri ile Shapley özellikleri arasında bazı farklılıklar görebilirsiniz. SHAP üç arzu edilen özelliği şu şekilde tanımlıyor:
1) Yerel Tutarlılık (Local Accuracy)
2) Eksiklik (Missingness)
3) Tutarlılık (Consistency)
koşulu sağlanıyorsa, o zaman
Consistency (tutarlılık) özelliği, bir model değişip bir özellik değerinin marjinal katkısı artarsa veya aynı kalırsa, Shapley değerinin de artması veya aynı kalması gerektiğini söyler. Lundberg ve Lee’nin Ek bölümünde anlatıldığı gibi Consistency’den, Shapley özellikleri olan Linearity, Dummy ve Symmetry de türemektedir.
9.6.2 KernelSHAP
KernelSHAP, bir örnek x için, her özellik değerinin tahmine yaptığı katkıyı (Shapley değeri olarak) tahmin eder. KernelSHAP beş adımdan oluşur:
Ağırlıklı doğrusal model uydurulur (fit).
Marjinal dağılımdan örneklemek, mevcut ve olmayan (absent) özellikler arasındaki bağımlılık yapısını yok saymak demektir. Bu nedenle, KernelSHAP, tüm permütasyon tabanlı yorumlama yöntemleriyle aynı sorundan muzdariptir. Tahmin, olası olmayan örneklere çok fazla ağırlık verebilir. Sonuçlar güvensiz hâle gelebilir. Fakat marjinal dağılımdan örnek almak gerekir. Bunun çözümü, koşullu dağılımdan örnek almaktır; ancak bu, değer fonksiyonunu ve dolayısıyla Shapley değerlerinin çözüm olduğu oyunu değiştirir. Sonuç olarak, Shapley değerleri de farklı bir anlama sahip olur: Örneğin, model tarafından hiç kullanılmamış bir özellik, koşullu örnekleme kullanıldığında sıfırdan farklı bir Shapley değerine sahip olabilir. Marjinal oyunda, bu özellik değeri her zaman 0 Shapley değeri alırdı, çünkü aksi hâlde Dummy aksiyomunu ihlal etmiş olur.
Görüntüler (images) için, aşağıdaki şekil olası bir dönüştürme fonksiyonunu (mapping function) tarif eder:
LIME’dan büyük fark, regresyon modelindeki örneklerin ağırlıklandırılmasıdır. LIME, örnekleri orijinal örneğe yakınlıklarına göre ağırlıklandırır. Koalisyon vektöründe ne kadar çok 0 varsa, LIME’daki ağırlık o kadar küçülür. SHAP ise örneklenen örnekleri, koalisyonun Shapley değeri tahmininde alacağı ağırlığa göre ağırlıklandırır. Küçük koalisyonlar (az sayıda 1) ve büyük koalisyonlar (çok sayıda 1) en büyük ağırlıkları alır. Bunun arkasındaki sezgi şudur: Bireysel özellikler hakkında en çok şeyi, onların etkilerini izole bir biçimde inceleyebildiğimizde öğreniriz. Eğer bir koalisyon tek bir özelliği içeriyorsa, o özelliğin tahmin üzerindeki yalnız ana etkisini öğrenebiliriz. Eğer bir koalisyon tüm özellikleri içerip bir özelliği hariç tutuyorsa, o özelliğin toplam etkisini (ana etki artı özellik etkileşimleri) öğrenebiliriz. Eğer bir koalisyon özelliklerin yarısını içeriyorsa, tek bir özelliğin katkısı hakkında çok az şey öğreniriz, çünkü özelliklerin yarısına sahip pek çok farklı koalisyon mümkündür. Shapley uyumlu bir ağırlıklandırmaya ulaşmak için, Lundberg ve ark. SHAP çekirdeğini (SHAP kernel) önermektedir:
Koalisyon örneklemesini biraz daha akıllıca yapabiliriz: En küçük ve en büyük koalisyonlar, ağırlığın büyük kısmını kaplar. Rastgele örnekleme yerine, ayrılan örnekleme bütçesinin (K) bir kısmını, bu yüksek ağırlıklı koalisyonlara ayırarak (1 özellikli ve M−1 özellikli koalisyonlar) Shapley değer tahminini iyileştirebiliriz. Toplamda bu, 2×M adet koalisyon demektir. Eğer yeterince bütçe kalırsa (K−2M kadar), o zaman 2 özellikli ve M−2 özellikli koalisyonları da dahil edebiliriz. Geriye kalan koalisyon boyutlarından ise, yeniden ayarlanmış ağırlıklarla örnekleme yaparız.
Artık veri, hedef ve ağırlıklara sahibiz; ağırlıklı doğrusal regresyon modelimizi kurmak için ihtiyacımız olan her şeye sahibiz:
g doğrusal modelini aşağıdaki L kayıp fonksiyonunu optimize edecek şekilde eğitiyoruz.
Doğrusal regresyon çerçevesinde olduğumuzdan, regresyon için standart araçları da kullanabiliriz. Örneğin, modeli seyrekleştirmek (sparse) için düzenlileştirme (regularization) terimleri ekleyebiliriz. Eğer kayıp fonksiyonu L'ye bir L1 ceza eklersek, seyrek açıklamalar üretebiliriz. (Fakat ortaya çıkan katsayıların hâlâ “geçerli” Shapley değerleri olup olmayacağı konusunda çok emin değilim.)
9.6.3 TreeSHAP
Lundberg ve arkadaşları (2018), ağaç tabanlı makine öğrenimi modelleri (karar ağaçları, rastgele ormanlar ve gradyan artırmalı ağaçlar gibi) için bir SHAP çeşidi olan TreeSHAP’i önerdiler. TreeSHAP, KernelSHAP’e hızlı, modele özgü bir alternatif olarak tanıtıldı, ancak sezgisel olmayan (unintuitive) özellik katkı değerleri üretebildiği ortaya çıktı.
Şimdi, SHAP açıklamalarının uygulamadaki haline göz atalım.
Rahim ağzı kanseri riskini tahmin etmek için 100 ağaçlı bir rastgele orman (random forest) sınıflandırıcısı eğittim. Bireysel tahminleri açıklamak için SHAP’i kullanacağız. Rastgele orman, bir ağaç topluluğu olduğundan daha yavaş olan KernelSHAP yöntemi yerine hızlı TreeSHAP tahmin yöntemini kullanabiliriz. Ancak, koşullu dağılıma (conditional distribution) güvenmek yerine, bu örnek marjinal dağılımı kullanır. Bu durum paket içerisinde anlatılır, ancak orijinal makalede yer almaz. Python TreeSHAP işlevi, marjinal dağılımla kullanıldığında daha yavaş çalışsa da, yine de KernelSHAP’ten daha hızlıdır, çünkü verideki satırlarla doğrusal bir şekilde ölçeklenir.
Burada marjinal dağılım kullandığımızdan, yorumlama Shapley değeri bölümündekiyle aynıdır. Ancak, Python shap
paketiyle birlikte farklı bir görselleştirme de gelir: Shapley değerleri gibi özellik katkılarını “kuvvetler” (forces) olarak görselleştirebilirsiniz. Her bir özellik değeri, tahmini ya artıran ya da azaltan bir kuvvettir. Tahmin, temel değerden (baseline) başlar. Shapley değerleri için temel (baseline) tüm tahminlerin ortalamasıdır. Grafikte, her Shapley değeri, tahmini artırmak (pozitif değer) veya azaltmak (negatif değer) yönünde iten bir ok (arrow) olarak gösterilir. Bu kuvvetler, veri örneğinin gerçek tahmininde birbirini dengeler.
Aşağıdaki şekil, rahim ağzı kanseri veri setinden iki kadın için SHAP açıklama “kuvvet grafikleri”ni (force plots) göstermektedir:
Bu örnekler, bireysel tahminler için yapılan açıklamalardı.
Shapley değerleri, küresel (global) açıklamalara dönüştürülebilir. Tüm örnekler için SHAP çalıştırırsak, bir Shapley değerleri matrisi elde ederiz. Bu matriste, her veri örneği için bir satır ve her özellik için bir sütun bulunur. Bu matristeki Shapley değerlerini analiz ederek tüm modeli yorumlayabiliriz.
Öncelikle SHAP özellik öneminden (SHAP feature importance) başlayalım.
SHAP özellik öneminin arkasındaki fikir basittir: Büyük mutlak Shapley değerlerine sahip özellikler önemlidir. Küresel önemi (global importance) istediğimiz için, verideki her özellik için ortalama mutlak Shapley değerini alırız.
Sonrasında, özellikleri azalan öneme göre sıralar ve çizime dökeriz. Aşağıdaki şekilde, serviks kanseri tahmini için önceden eğitilen rastgele ormanın SHAP özellik önemini görüyoruz.
SHAP özellik önemi, permütasyon özelliği önemine (permutation feature importance) bir alternatiftir. İki önem ölçüsü arasında büyük bir fark vardır: Permütasyon özelliği önemi, model performansındaki azalmaya dayanır. SHAP ise özellik katkılarının büyüklüğüne dayanır.
Özellik önemi grafiği kullanışlıdır, ancak önemin ötesinde bir bilgi içermez. Daha bilgilendirici bir grafik için sıradaki özet grafiğe (summary plot) bakacağız.
Özet grafiği (summary plot), özellik önemini (feature importance) özellik etkileriyle (feature effects) birleştirir. Özet grafikteki her nokta, bir özellik ve bir örnek için Shapley değerini temsil eder. y-eksenindeki konum, özelliğe göre, x-eksenindeki konum ise Shapley değerine göre belirlenir. Renk, özelliğin değerinin düşükten yükseğe nasıl değiştiğini gösterir. Birbiriyle çakışan noktalar y-ekseninde bir miktar kaydırılır (jitter), bu sayede her özellik için Shapley değerlerinin dağılımını görmüş oluruz. Özellikler, önem sırasına göre (importance) sıralanır.
Özet grafikte, bir özelliğin değeri ile tahmine etkisi arasındaki ilişki hakkında ilk ipuçlarını görürüz. Ancak ilişkinin tam şeklini görmek için SHAP bağımlılık grafiklerine (dependence plots) bakmamız gerekir.
SHAP özelliği bağımlılığı (feature dependence) muhtemelen en basit küresel yorumlama grafiğidir: 1) Bir özellik seçin. 2) Her veri örneği için, x-ekseninde özellik değeri ve y-ekseninde o özelliğin Shapley değeri olacak şekilde bir nokta çizin. 3) Bitti.
Aşağıdaki şekil, hormonal kontraseptif kullanma süresi (years on hormonal contraceptives) özelliği için SHAP özellik bağımlılığını göstermektedir:
SHAP bağımlılık grafikleri (dependence plots), kısmi bağımlılık grafikleri (partial dependence plots - PDP) ve birikimli yerel etkiler (accumulated local effects - ALE) için bir alternatiftir. PDP ve ALE, ortalama etkileri gösterirken, SHAP bağımlılığı y-ekseninde varyansı da gösterir. Özellikle etkileşimlerin (interactions) söz konusu olduğu durumlarda, SHAP bağımlılık grafiği y-ekseninde çok daha dağınık (dispersed) olacaktır. Bağımlılık grafiği, bu özellik etkileşimlerini vurgulayarak iyileştirilebilir.
Etkileşim (interaction) etkisi, bireysel özellik etkileri hesaba katıldıktan sonra ortaya çıkan eklemlenmiş özellik etkisidir. Oyun teorisindeki Shapley etkileşim indeksi (Shapley interaction index) şu şekilde tanımlanır:
Bu formül, özelliklerin ana (main) etkilerini çıkartarak, bireysel etkiler hesaba katıldıktan sonra ortaya çıkan “saf” etkileşim etkisini elde etmemizi sağlar. Shapley değeri hesabında olduğu gibi, tüm olası özellik koalisyonları (S) üzerinden ortalama alırız. Tüm özellikler için SHAP etkileşim değerlerini (interaction values) hesapladığımızda, her örnek (instance) için M x M boyutlarında bir matris elde ederiz (M, özellik sayısıdır).
Bu etkileşim indeksini nasıl kullanabiliriz? Örneğin, SHAP özellik bağımlılığı (dependence plot) grafiğini en güçlü etkileşimi otomatik olarak renklendirecek şekilde kullanabiliriz.
9.6.9 Shapley Değerlerini Kümeleme (Clustering) Shapley değerlerinin yardımıyla verilerinizi kümeleyebilirsiniz. Kümelemenin amacı, benzer örneklerden oluşan gruplar bulmaktır. Genellikle kümeleme, özelliklere (feature) dayalıdır. Özellikler sıklıkla farklı ölçeklerde bulunur. Örneğin, boy uzunluğu metre cinsinden ölçülebilir, renk yoğunluğu 0 ila 100 arasında ve bazı sensör çıktıları -1 ile 1 arasında olabilir. Bu kadar farklı ve karşılaştırılamaz özelliklere sahip örnekler arasındaki uzaklıkları hesaplamak zordur.
SHAP kümelemesi, her örneğin Shapley değerlerini kümeleyerek çalışır. Bu, örneklerin “açıklama benzerliği” temelinde kümeleneceği anlamına gelir. Tüm SHAP değerleri aynı birime sahiptir – tahmin (prediction) uzayının birimi. Herhangi bir kümeleme yöntemini kullanabilirsiniz. Aşağıdaki örnekte, örnekleri sıralamak için hiyerarşik birleştirici (agglomerative) kümeleme kullanılmıştır.
Grafik, birçok “force plot”tan oluşur ve her biri bir örneğin tahminini açıklar. Bu “force plot”ları dikey olarak döndürür ve kümeleme benzerliğine göre yan yana yerleştiririz.
SHAP, Shapley değerlerini hesapladığından, Shapley değerlerinin tüm avantajları geçerlidir: SHAP, oyun teorisine dayanan sağlam bir kuramsal temele sahiptir. Tahmin, özellik değerleri arasında adil bir şekilde dağıtılır. Tahmin, ortalama tahminle karşılaştırılarak karşıt (contrastive) açıklamalar elde edilir.
SHAP, LIME ile Shapley değerlerini birleştirir. Bu, her iki yöntemi de daha iyi anlamayı kolaylaştırır. Aynı zamanda açıklanabilir makine öğrenimi alanını birleştirmeye de katkıda bulunur.
SHAP’in ağaç tabanlı modeller için hızlı bir uygulaması vardır. Bence Shapley değerlerinin popülerlik kazanmasındaki en büyük etken bu olmuştur; çünkü Shapley değerlerinin benimsenmesindeki en büyük engel, hesaplamanın yavaş olmasıdır.
Hızlı hesaplama, küresel (global) model yorumlamaları için gereken çok sayıda Shapley değerini hesaplamayı mümkün kılar. Küresel yorumlama yöntemleri, özellik önemi (feature importance), özellik bağımlılığı (feature dependence), etkileşim (interaction), kümeleme (clustering) ve özet grafiklerini (summary plots) içerir. SHAP ile, küresel yorumlamalar yerel açıklamalarla uyumludur, çünkü Shapley değerleri bu küresel yorumlamaların “temel yapıtaşı”dır. Yerel açıklamalar için LIME’ı, küresel açıklamalar için kısmi bağımlılık grafikleri (partial dependence plots) ve permütasyonlu özellik önemini (permutation feature importance) kullandığınızda, ortak bir dayanak noktası eksik kalır.
KernelSHAP yavaştır. Birçok örnek için Shapley değeri hesaplamak istediğinizde KernelSHAP’i kullanmak pratik değildir. Tüm küresel SHAP yöntemleri (örneğin SHAP özellik önemi) de çok sayıda örnek için Shapley değerlerinin hesaplanmasını gerektirir.
KernelSHAP, özellik bağımlılığını (feature dependence) yok sayar. Çoğu diğer permütasyon tabanlı yorumlama yönteminde de bu sorun vardır. Özellik değerlerini, rastgele seçilmiş örneklerin değerleriyle değiştirirken genellikle marjinal dağılımdan örnek almak daha kolaydır. Ancak özellikler bağımlı (örneğin korelasyonlu) ise, bu da olası olmayan veri noktalarına fazla ağırlık vermeye yol açar. TreeSHAP, koşullu tahmini (conditional expected prediction) açıkça modelleyerek bu sorunu çözer.
TreeSHAP, sezgisel olmayan (unintuitive) özellik katkıları üretebilir. TreeSHAP, olası olmayan veri noktalarına ekstrapolasyon yapma sorununu çözer, ancak bunu değer fonksiyonunu değiştirerek ve dolayısıyla oyunu biraz değiştirerek yapar. TreeSHAP, koşullu beklenen tahmine (conditional expected prediction) dayandığı için değer fonksiyonunu değiştirir. Değer fonksiyonundaki bu değişim nedeniyle, tahmini etkilemeyen özellikler, TreeSHAP değeri olarak sıfırdan farklı bir değer alabilir.
Shapley değerlerinin dezavantajları SHAP için de geçerlidir: Shapley değerleri yanlış anlaşılabilir ve (TreeSHAP hariç) yeni bir veri örneği için hesaplamak isterseniz veri erişimi gerekir.
Kasıtlı olarak yanıltıcı yorumlamalar oluşturmak, SHAP ile de mümkündür ve önyargıları gizleyebilir. Eğer açıklamaları üreten veri bilimci sizseniz, bu gerçek bir sorun değildir (hatta yanıltıcı açıklamalar üretmek isteyen “kötü” bir veri bilimciyseniz avantajınızadır). SHAP açıklamasının alıcıları içinse bu bir dezavantajdır: Açıklamanın doğruluğundan emin olamazlar.
SHAP, yazarları tarafından “shap” adlı Python paketinde uygulanmıştır. Bu uygulama, Python için yazılmış scikit-learn makine öğrenimi kütüphanesindeki ağaç tabanlı modellerle (tree-based) çalışır. Bu bölümdeki örnekler için de “shap” paketi kullanılmıştır. SHAP, ayrıca xgboost ve LightGBM gibi ağaç artırma çerçevelerine (tree boosting frameworks) entegre edilmiştir. R dilinde “shapper” ve “fastshap” paketleri mevcuttur. SHAP, R’daki xgboost paketine de eklenmiştir.
Lundberg, Scott M., and Su-In Lee. “A unified approach to interpreting model predictions.” Advances in Neural Information Processing Systems (2017).↩︎
Lundberg, Scott M., Gabriel G. Erion, and Su-In Lee. “Consistent individualized feature attribution for tree ensembles.” arXiv preprint arXiv:1802.03888 (2018).↩︎
Sundararajan, Mukund, and Amir Najmi. “The many Shapley values for model explanation.” arXiv preprint arXiv:1908.08474 (2019).↩︎
Janzing, Dominik, Lenon Minorics, and Patrick Blöbaum. “Feature relevance quantification in explainable AI: A causal problem.” International Conference on Artificial Intelligence and Statistics. PMLR (2020).↩︎
Slack, Dylan, Sophie Hilgard, Emily Jia, Sameer Singh, and Himabindu Lakkaraju. “Fooling lime and shap: Adversarial attacks on post hoc explanation methods.” In Proceedings of the AAAI/ACM Conference on AI, Ethics, and Society, pp. 180-186 (2020).↩︎
olarak tanımlayıp, tüm 'leri 1 olarak ayarlarsanız, bu Shapley değerlerinin Efficiency (etkinlik) özelliğidir; yalnızca farklı bir isimle ve koalisyon vektörünü kullanarak ifade edilir.
Missingness, “eksik” bir özelliğin atamasının sıfır olması gerektiğini söyler. Burada , 0 değerinin bir özellik değerinin “yok” (absent) olduğunu ifade ettiği koalisyonları belirtir. Koalisyon gösteriminde, açıklanacak örneğin tüm özellik değerlerinin =1 olması gerekir. Bir 0 değeri, ilgi duyulan örnekte söz konusu özelliğin eksik olduğu anlamına gelir. Bu özellik, “normal” Shapley değerlerinin özellikleri arasında değildir. Peki SHAP için neden buna ihtiyaç var? Lundberg, bunu “küçük bir defter tutma (book-keeping) özelliği” olarak adlandırıyor. Eksik bir özellik, teoride Shapley değerlerinin yerel doğruluk (local accuracy) özelliğini ihlal etmeden, keyfi bir Shapley değerine sahip olabilir; çünkü 0 =0 ile çarpıldığında yine sıfır etki yapar. Missingness özelliği, eksik özelliklerin Shapley değerinin 0 olmasını zorunlu kılar. Pratikte bu, sadece sabit kalan (constant) özellikler için anlamlıdır.
ve olsun.
Herhangi iki model 𝑓 ve 𝑓 ′ için, eğer tüm değerleri için
Koalisyonlar örneklenir. (1 = koalisyonda özellik mevcut, 0 = özellik yok).
Her için önce orijinal özellik uzayına dönüştürülür, sonra model uygulanarak tahmin alınır:
Her için SHAP çekirdeği (SHAP kernel) ile bir ağırlık (weight) hesaplanır.
Doğrusal modelin katsayıları olan Shapley değerleri döndürülür.
Rastgele bir koalisyon oluşturmak için, 0 ve 1 üretmek amacıyla para atışı (coin flips) gibi bir süreç kullanabilirsiniz. Örneğin, (1,0,1,0) vektörü, ilk ve üçüncü özelliklerin bulunduğu bir koalisyonu ifade eder. Seçilen KKK koalisyon, regresyon modeli için veri kümesini oluşturur. Regresyon modelinin hedefi (target), bir koalisyon için modelin yaptığı tahmindir. (“Dur bir saniye,” diyorsunuz. “Model, bu ikili koalisyon verileriyle eğitilmedi ki ve bunlar için tahminde bulunamaz.”) Özellik değerlerinden oluşan koalisyonları geçerli veri örneklerine dönüştürmek için, şeklinde bir fonksiyona ihtiyacımız var; burada, . fonksiyonu, 1 değerlerini açıklanmak istenen 𝑥 örneğinin karşılık gelen özelliğine eşler. Tablo verileri için, 0’ları veriden rastgele seçilen başka bir örneğin özelliğiyle eşleriz. Bu, “özellik değeri yok” (absent) ifadesiyle “veri içinden rastgele bir özelliğin değeriyle değiştirilir” ifadesini eşitlemek anlamına gelir. Tablo verilerinde, koalisyonlardan özellik değerlerine dönüşümü aşağıdaki şekilde görselleştirebiliriz:
Tablo verileri için , özellik ve (diğer özellikler) bağımsızmış gibi ele alır ve marjinal dağılım üzerinden integrali alır:
Burada, M maksimum koalisyon boyutudur ve de z′ örneğinde mevcut (1 olan) özelliklerin sayısıdır. Lundberg ve Lee, bu çekirdek ağırlığıyla (kernel weight) yapılan doğrusal regresyonun Shapley değerlerini verdiğini göstermiştir. Eğer SHAP çekirdeğini, koalisyon verisi üzerinde LIME ile kullanırsanız, LIME da Shapley değerlerini tahmin edecektir!
Burada Z, eğitim verisidir. Bu, doğrusal modeller için genellikle optimize ettiğimiz eski ve sıkıcı kareler toplamı hatasıdır. Modelin tahmini katsayıları ( 'ler), Shapley değerleridir.
TreeSHAP, değer fonksiyonunu marjinal beklenti yerine koşullu beklenti ile tanımlar. Koşullu beklentiyle ilgili sorun, f tahmin fonksiyonunu etkilemeyen özelliklerin, Sundararajan ve ark. (2019) ve Janzing ve ark. (2019)’nin gösterdiği gibi, TreeSHAP tahmininin sıfırdan farklı olmasına neden olabilmesidir. Gerçekte tahmini etkileyen başka bir özellikle korelasyonlu olduğunda böyle bir sıfır olmayan tahmin ortaya çıkabilir.
TreeSHAP ne kadar hızlıdır? Tam (exact) KernelSHAP ile karşılaştırıldığında, hesaplama karmaşıklığını ifadesinden ifadesine düşürür; burada T ağaç sayısı, L herhangi bir ağaçtaki en fazla yaprak sayısı, D ise herhangi bir ağacın azami derinliğidir.
TreeSHAP, etkiyi tahmin etmek için koşullu beklenti kullanır. Tek bir ağaç, bir örnek x ve özellik alt kümesi S için beklenen tahmini nasıl hesaplayabileceğimize dair biraz sezgi vermek istiyorum. Eğer tüm özelliklere koşullansaydık – eğer S tüm özelliklerden oluşsaydı – x’in düştüğü düğümün tahmini, beklenen tahmin olurdu. Eğer tahmini hiçbir özelliğe koşullamasaydık – S boş olsaydı – tüm terminal düğümlerin tahminlerinin ağırlıklı ortalamasını alırdık. Eğer S bazı (ama hepsi değil) özellikleri içeriyorsa, erişilemeyen (unreachable) düğümlerin tahminlerini yok sayarız. “Erişilemez” demek, ’deki değerlerle çelişen bir karar yolunun bu düğüme götürmesi anlamına gelir. Geriye kalan terminal düğümlerden, düğüm boyutları (o düğümdeki eğitim örneği sayısı) ile ağırlıklandırılmış tahminlerin ortalamasını alırız. Her bir düğüm için örnek sayısıyla ağırlıklandırılmış terminal düğümlerin ortalaması, x için S verilmişken beklenen tahmindir. Sorun, bu prosedürü özellik değerlerinin her olası alt kümesi S için uygulamamız gerekmesidir. TreeSHAP üstel yerine polinomsal zamanda hesaplar. Temel fikir, tüm olası alt kümeleri aynı anda ağaçtan aşağıya “itmek”tir. Her karar düğümü için, alt kümelerin sayısının izlenmesi gerekir. Bu, üst (parent) düğümdeki alt kümelere ve bölünme yapılan özelliğe bağlıdır. Örneğin, bir ağacın ilk bölünmesi x3 özelliğindeyse, x3’ü içeren tüm alt kümeler x’in gittiği düğüme gider. x3 içermeyen alt kümeler, azaltılmış bir ağırlıkla her iki düğüme birden gider. Ne yazık ki, farklı boyutlardaki alt kümelerin farklı ağırlıkları vardır. Algoritma, her düğümdeki alt kümelerin toplam ağırlığını takip etmek zorundadır. Bu durum algoritmayı karmaşıklaştırır. TreeSHAP’in ayrıntıları için orijinal makaleye yönlendiriyorum. Hesaplama birden çok ağaca genişletilebilir: Shapley değerlerinin Toplanabilirlik (Additivity) özelliği sayesinde, bir ağaç topluluğunun Shapley değerleri, ağaçların her birinin Shapley değerlerinin (ağırlıklı) ortalamasıdır.
Matematiksel olarak, grafikte şu noktalar bulunur: