8.5 Permütasyon Öznitelik Önemi (Permutation Feature Importance)

Permütasyon öznitelik önemi, bir özniteliğin değerlerini karıştırdıktan sonra modelin tahmin hatasındaki artışı ölçer. Bu işlem, özniteliğin gerçek sonuç ile olan ilişkisini koparır.

8.5.1 Teori Kavram oldukça basittir: Bir özniteliğin önemini, bu özniteliği karıştırdıktan sonra modelin tahmin hatasındaki artışı hesaplayarak ölçeriz. Eğer bir özelliğin değerlerini karıştırmak model hatasını artırıyorsa, bu özellik "önemli" olarak kabul edilir, çünkü model bu öznitelikten tahmin için yararlanmıştır. Öte yandan, bir özniteliğin değerlerini karıştırmak model hatasını değiştirmiyorsa, bu öznitelik "önemsiz" olarak kabul edilir, çünkü model tahmin için bu özniteliği göz ardı etmiştir.

Permütasyon özelliği önem ölçümü, Breiman (2001) tarafından rastgele ormanlar (random forests) için tanıtılmıştır. Bu fikre dayanarak, Fisher, Rudin ve Dominici (2018), özelliğin önemini modelden bağımsız bir şekilde ölçen bir yöntem önerdi ve buna "model reliance" (model bağımlılığı) adını verdi. Ayrıca, özellik önemine ilişkin daha gelişmiş fikirler sundular; örneğin, birçok tahmin modelinin veriyi iyi tahmin edebileceğini göz önünde bulunduran model-spesifik bir versiyon. Bu makale okunmaya değer.

Fisher, Rudin ve Dominici (2018) temel alınarak permütasyon öznitelik önemi algoritması:

Girdi: Eğitilmiş model ff, öznitelik matrisi XX, hedef vektörü yy, hata ölçütü EE.

  1. Orijinal model hatasını eorig=L(y,f^(X))e_{orig}=L(y,\hat f(X)) tahmin edin (örneğin, ortalama kare hata).

  2. Her bir öznitelik j1,...,pj∈{1,...,p} için:

    • XpermX_{perm} öznitelik matrisini, verideki öznitelik j'nin değerlerini karıştırarak oluşturun. Bu işlem, öznitelik j ile gerçek sonuç y arasındaki ilişkiyi koparır.

    • Karıştırılmış veriye dayalı tahminler üzerinden hata eperm=L(Y,f^(Xperm))e_{perm}=L(Y,\hat f(X_{perm}))'yi tahmin edin.

    • Permütasyon öznitelik önemini, şu şekilde hesaplayın: oran FIj=eperm/eorigFI_j=e_{perm}/e_{orig} veya fark FIj=eperm/eorigFI_j=e_{perm}/e_{orig}

  3. Öznitelikleri, azalan öznitelik önemine (FI) göre sıralayın.

Fisher, Rudin ve Dominici (2018), makalelerinde veri setini ikiye bölmeyi ve bu iki yarının öznitelik jj’nin değerlerini değiştirmeyi önermektedir. Bu yöntem, öznitelik jj’yi karıştırmakla tamamen aynıdır, eğer dikkatlice düşünürseniz. Daha kesin bir tahmin elde etmek istiyorsanız, öznitelik jj’nin permütasyon hatasını her örneği başka bir örneğin jj öznitelik değeriyle eşleştirerek tahmin edebilirsiniz (kendi değeri hariç). Bu yöntem, permütasyon hatasını tahmin etmek için n(n−1)n(n-1) boyutunda bir veri seti oluşturur ve büyük bir hesaplama süresi gerektirir. Eğer aşırı derecede doğru tahminler elde etmek istiyorsanız, n(n−1)n(n-1)-yöntemini kullanmanızı tavsiye ederim.

8.5.2 Önem Hesaplamasını Eğitim veya Test Verisi Üzerinde mi Yapmalıyım?

Kısaca: Muhtemelen test verisini kullanmalısınız.

Eğitim veya test verisi üzerindeki önem hesaplama sorusu, öznitelik öneminin ne olduğuna dair temel bir soruya değinir. Eğitim ve test verilerine dayalı öznitelik öneminin farkını anlamanın en iyi yolu bir “aşırı” örnektir.

50 rastgele öznitelik (200 örnek) verilen bir sürekli ve rastgele hedef sonucu tahmin etmek için bir destek vektör makinesi (SVM) eğittim. Buradaki “rastgele” terimi, hedef sonucun 50 öznitelikten bağımsız olduğu anlamına gelir. Bu durum, dünkü piyango numaralarına bakarak yarının sıcaklığını tahmin etmeye benzer. Model herhangi bir ilişki “öğrenirse”, bu aşırı öğrenme (overfitting) demektir. Ve gerçekten de SVM eğitim verileri üzerinde aşırı öğrenme yapmıştır. Eğitim verileri için ortalama mutlak hata (MAE) 0.29 ve test verileri için 0.82’dir. Bu, aynı zamanda her zaman 0 olan ortalama sonucu tahmin eden en iyi modelin hatasıdır (MAE: 0.78). Yani, SVM modeli tamamen işlevsizdir.

Bu aşırı öğrenmiş SVM için 50 özniteliğin önem değerlerinin ne olmasını beklersiniz?

  • Sıfır mı, çünkü hiçbir öznitelik, görünmeyen test verilerinde performansı artırmaya katkıda bulunmuyor?

  • Yoksa önemler, öğrenilen ilişkilerin görünmeyen verilere genelleşip genelleşmediğine bakılmaksızın modelin her bir özniteliğe ne kadar bağımlı olduğunu mu yansıtmalı?

Eğitim ve test verisi üzerindeki öznitelik önemlerinin dağılımlarının nasıl farklılık gösterdiğine bir göz atalım.

Hangisinin daha istenilir bir sonuç olduğu benim için net değil. Bu yüzden her iki versiyon için de bir argüman sunmaya çalışacağım.

Test verisi için argüman

Bu oldukça basit bir durum: Eğitim verisine dayalı model hata tahminleri çöp -> öznitelik önemi, model hata tahminlerine dayanır -> eğitim verisine dayalı öznitelik önemi çöp. Gerçekten de, makine öğreniminde öğrendiğiniz ilk şeylerden biridir: Eğer model hatasını (veya performansını), modelin eğitildiği aynı veri üzerinde ölçerseniz, bu ölçüm genelde aşırı derecede iyimser olur. Bu, modelin gerçekte olduğundan çok daha iyi çalışıyormuş gibi görünmesine neden olur. Ve permütasyon öznitelik önemi model hatası ölçümlerine dayandığı için, görünmeyen test verisini kullanmalıyız. Eğitim verisine dayalı öznitelik önemi, bize yanlış bir şekilde özniteliklerin tahminler için önemli olduğunu düşündürür. Oysa gerçekte model sadece aşırı öğrenme yapmış ve öznitelikler hiç önemli olmamıştır.

Eğitim verisi için argüman

Eğitim verisini kullanmak için argümanları formüle etmek biraz daha zordur, ancak bana göre (IMHO) test verisini kullanma argümanları kadar ikna edicidir. Çöp SVM’ye tekrar bir göz atalım. Eğitim verisine göre en önemli öznitelik X42X42’dir. Şimdi X42X42 özniteliğinin kısmi bağımlılık grafiğine (PDP) bakalım. Kısmi bağımlılık grafiği, model çıktısının, özniteliğin değişimine bağlı olarak nasıl değiştiğini gösterir ve genelleme hatasına dayanmaz. PDP’nin eğitim veya test verisiyle hesaplanmış olması fark etmez.

Grafik, SVM’nin tahminlerinde X42X42 özniteliğine dayanmayı öğrendiğini açıkça gösteriyor, ancak test verisine dayalı öznitelik önemine göre (1) bu öznitelik önemli değil. Eğitim verisine dayalı önem ise 1.19 olup, modelin bu özniteliği kullanmayı öğrendiğini yansıtır. Eğitim verisine dayalı öznitelik önemi, modelin tahmin yaparken hangi özniteliklere bağlı olduğunu anlamamızı sağlar.

Eğitim verisi kullanımını savunan argümanlar arasında, test verisine karşı bir karşı argüman sunmak istiyorum. Pratikte, en iyi modeli elde etmek için tüm verinizi modeli eğitmek için kullanmak istersiniz. Bu, öznitelik önemini hesaplamak için kullanılmayan bir test verisi bırakılmadığı anlamına gelir. Aynı sorun, modelinizin genelleme hatasını tahmin etmek istediğinizde de ortaya çıkar. Eğer öznitelik önemini tahmin etmek için (iç içe geçmiş) çapraz doğrulama kullansaydınız, öznitelik öneminin tüm veriyle oluşturulmuş nihai modelde değil, farklı şekilde davranabilecek alt veri kümeleriyle oluşturulan modellerde hesaplanması sorununu yaşardınız.

Ancak, sonunda permütasyon öznitelik önemi için test verisinin kullanılmasını öneriyorum. Çünkü eğer modelin tahminlerinin bir öznitelikten ne kadar etkilendiğiyle ilgileniyorsanız, SHAP önemi gibi başka önem ölçümlerini kullanmalısınız.

Sonraki bölümde bazı örneklere bakacağız. Önem hesaplamasını eğitim verisine dayandırdım, çünkü birini seçmek zorundaydım ve eğitim verisini kullanmak birkaç satır daha az kod gerektiriyordu.

8.5.3 Örnek ve Yorumlama Sınıflandırma ve regresyon için örnekler göstereceğim.

Serviks kanseri (sınıflandırma) Serviks kanserini tahmin etmek için bir rastgele orman modeli uyarlıyoruz. Hata artışını, ROC eğrisi altındaki alanın (AUC) 1 eksiğiyle (1−AUC) ölçüyoruz. Model hata artışına 1 faktörüyle (=değişiklik yok) katkıda bulunan öznitelikler, serviks kanserini tahmin etmek için önemli değildi.

Permütasyon sonrası hata artışına 6.13 katkıda bulunan en önemli öznitelik, Hormonal.Contraceptives..years oldu.

Bike Sharing - Bisiklet paylaşımı (regresyon)

Hava durumu ve takvim bilgileri verilerek kiralanan bisiklet sayısını tahmin etmek için bir destek vektör makinesi (SVM) modeli uyarlıyoruz. Hata ölçümü olarak ortalama mutlak hatayı (MAE) kullanıyoruz.

8.5.4 Avantajlar

Güzel yorumlama: Öznitelik önemi, özniteliğin bilgisi yok edildiğinde model hatasındaki artıştır.

Sıkıştırılmış küresel içgörü: Öznitelik önemi, modelin davranışına dair oldukça sıkıştırılmış ve küresel bir içgörü sunar.

Karşılaştırılabilirlik: Hata farkı yerine hata oranı kullanmak, öznitelik önem ölçümlerinin farklı problemler arasında karşılaştırılabilir olmasını sağlar.

Tüm etkileşimleri dikkate alma: Permütasyon sırasında bir öznitelik karıştırıldığında, diğer özniteliklerle olan etkileşim etkileri de yok edilir. Bu, permütasyon öznitelik öneminin ana öznitelik etkisini ve etkileşim etkilerini bir arada dikkate aldığı anlamına gelir. Ancak, bu bir dezavantaj da olabilir; çünkü iki öznitelik arasındaki etkileşim önemi, her iki özniteliğin önem ölçümlerine dahil edilir. Bu durum, öznitelik önemlerinin toplamının performans düşüşüne eşit olmamasına neden olur; hatta toplam genellikle daha büyük olur. Yalnızca lineer bir modelde (etkileşimlerin olmadığı durumda) önemler yaklaşık olarak toplanabilir.

Modeli yeniden eğitmeye gerek yoktur: Bazı yöntemler, bir özniteliği çıkarmayı, modeli yeniden eğitmeyi ve model hatasını karşılaştırmayı önerir. Ancak, bir özniteliği sadece permütasyonla karıştırmak, önemli miktarda zaman tasarrufu sağlar. Örneğin, seyrek bir doğrusal model (Lasso) üzerinde sabit sayıda sıfır olmayan ağırlığa sahip özniteliklerle çalışıyorsanız, bir özniteliği çıkardıktan sonra modeli yeniden eğitmek farklı bir model oluşturur ve bu durum, öznitelik önemini yanlış değerlendirmenize yol açabilir.

8.5.5 Dezavantajlar

Permütasyon öznitelik önemi, model hatasına dayanır. Ancak, bazı durumlarda, model çıktısının bir öznitelikle ne kadar değiştiğini bilmek daha önemli olabilir. Örneğin, bir öznitelik manipüle edildiğinde model çıktısının ne kadar sağlam olduğunu bilmek istiyorsanız, permütasyon öznitelik öneminden ziyade model varyansını açıklayan bir yöntem kullanmanız gerekebilir.

Eğer sadece model ve etiketlenmemiş veri sağlanırsa, permütasyon öznitelik önemini hesaplamak mümkün değildir.

Permütasyon sırasında özniteliklerin karıştırılması, ölçüme rastgelelik ekler. Permütasyon tekrarlandığında sonuçlar değişebilir, ancak tekrarlamaları ortalamak hesaplama süresini artırır.

Öznitelikler arasında güçlü korelasyon olduğunda, permütasyon gerçekçi olmayan veri örnekleri üretebilir ve bu, sonuçların yorumlanmasını zorlaştırır. Örneğin, boy ve kilo gibi pozitif korelasyonlu öznitelikler karıştırıldığında, fiziksel olarak imkansız değerler ortaya çıkabilir. Bu durum, model performansının gerçekte gözlemlenmeyen değerlerle nasıl değiştiğini ölçmeye neden olur. Korelasyonlu bir özniteliği eklemek, ilişkili özniteliğin önemini azaltabilir. Örneğin, yağmur ihtimalini tahmin etmek için 8:00 AM sıcaklığını bir öznitelik olarak kullanıyoruz ve bu öznitelik en önemli olarak belirleniyor. Ancak, 9:00 AM sıcaklığını eklersek ve bu öznitelik 8:00 AM sıcaklığıyla güçlü şekilde korelasyona sahipse, model her iki öznitelikten de biraz faydalanır, bu da her birinin önemini azaltır ve yorumlamayı zorlaştırır. Bu durum, özellikle ölçüm hatalarını kontrol etmek istediğinizde sorun yaratabilir. İlk durumda sıcaklığı kontrol ederken, ikinci durumda hiçbir sıcaklık özelliğini kontrol etmeyebilirsiniz, çünkü bunlar artık önemlerini paylaşmaktadır. Bu, korelasyonlu özniteliklerin önem yorumlarını kafa karıştırıcı hale getirebilir.

8.5.6 Alternatifler

PIMP adlı bir algoritma, permütasyon öznitelik önem algoritmasını uyarlayarak önemler için p-değerleri sağlar. Kayba dayalı başka bir alternatif, özniteliği eğitim verisinden çıkarmak, modeli yeniden eğitmek ve kayıptaki artışı ölçmektir. Bir özniteliği permütasyonla karıştırmak ve kayıptaki artışı ölçmek, öznitelik önemini ölçmenin tek yolu değildir. Farklı önem ölçümleri, modele özel ve modelden bağımsız yöntemler olarak ikiye ayrılabilir. Rastgele ormanlar için Gini önemi veya regresyon modelleri için standartlaştırılmış regresyon katsayıları, modele özel önem ölçümlerine örnektir.

Modelden bağımsız permütasyon öznitelik önemine bir alternatif, varyans tabanlı ölçümlerdir. Sobol indeksleri veya fonksiyonel ANOVA gibi varyans tabanlı öznitelik önem ölçümleri, tahmin fonksiyonunda yüksek varyansa neden olan özniteliklere daha yüksek önem atar. Ayrıca SHAP önemi, varyans tabanlı bir önem ölçümüyle benzerlikler taşır. Bir özniteliği değiştirmek çıktıyı büyük ölçüde değiştiriyorsa, o öznitelik önemlidir. Bu önem tanımı, permütasyon öznitelik önemindeki kayba dayalı tanımdan farklıdır. Bu durum, modelin aşırı öğrenme yaptığı durumlarda açıkça görülür. Eğer bir model aşırı öğrenir ve çıktıyla ilişkisiz bir özniteliği kullanırsa, permütasyon öznitelik önemi bu özniteliğe sıfır önem atar, çünkü bu öznitelik doğru tahmin üretmeye katkıda bulunmaz. Öte yandan, varyans tabanlı bir önem ölçümü, bu özniteliğe yüksek önem atayabilir, çünkü öznitelik değiştirildiğinde tahmin büyük ölçüde değişebilir.

Çeşitli önem tekniklerine dair iyi bir genel bakış Wei (2015) tarafından sunulmuştur.

8.5.7 Yazılım

Örnekler için iml R paketi kullanılmıştır. Ayrıca R'daki DALEX ve vip paketleri ile Python'daki alibi, scikit-learn ve rfpimp kütüphaneleri modelden bağımsız permütasyon öznitelik önemini uygular.


Breiman, Leo.“Random Forests.” Machine Learning 45 (1). Springer: 5-32 (2001).↩︎

Fisher, Aaron, Cynthia Rudin, and Francesca Dominici. “All models are wrong, but many are useful: Learning a variable’s importance by studying an entire class of prediction models simultaneously.” http://arxiv.org/abs/1801.01489 (2018).↩︎

Wei, Pengfei, Zhenzhou Lu, and Jingwen Song. “Variable importance analysis: a comprehensive review.” Reliability Engineering & System Safety 142 (2015): 399-432.↩︎

Last updated