Makine Öğrenmesinde Kullanılan Feature Importance (Özellik Önemi) Teknikleri

Ata Özarslan
İstanbul Data Science Academy
5 min readMar 14, 2024

--

Bir model geliştirme sürecinde daha sağlıklı ve doğru sonuçlar elde edebilmek için, o modelin tahminlerine en çok etki eden özellikleri belirlemek çok önemlidir. Bu analizi gerçekleştirmenin bize sağlayacağı birçok fayda bulunur.

Aşağıdaki şemadan detayları inceleyebilirsiniz.

Özellik Önemi Tespitinin Avantajları

Bu değerlendirmeleri yapmamızı sağlayan birçok basit ve ileri düzey yaklaşımlar bulunur. Hadi şimdi gelin bunları beraber inceleyelim.

1. Model Coefficients (Model Katsayıları)

Lineer Regresyon, Logistik Regresyon gibi algoritmalar çalışma mantıkları gereği, modelde kullandığımız her bir özelliğe veriler arasındaki ilişkileri göz önüne alara bir katsayı verir. Bunları kullanarak hedef değişkenimize en az ve en çok etki eden özellikleri rahatlıkla belirleyebiliriz.

Örneğin, aşağıdaki veri setini kullanarak bir Lineer Regresyon modeli oluşturalım ve hangi özelliklerin hedef değişkenimizi nasıl etkilediğini inceleyelim.

Modelde Kullanılan Özellikler (Yeşil) / Tahmin Edilecek Değer (Kırmızı)

Model eğitiminin model.fit()fonksiyonu ile tamamlanmasının ardından model.coef_ ile model katsayılarımıza kolaylıkla erişebiliriz. Şimdi elde ettiğimiz bu katsayıları grafik üzerinde inceleyelim.

Negatif Yönde En Yüksek Etkiyi s1, Pozitif Yönde En Yüksek Etkiyi ise s5 Özelliği Yapmıştır

NOT: Kullandığınız hangi özelliğin hedef değişkeninize ne kadar etkilediğini doğru bir şekilde yorumlayabilmek için modelinizi eğitmeden önce özelliklerinizi ölçeklendirmeyi unutmayın!

2. Mean Decrease In Impurity (MDI)

Decision Tree, Random Forest, XGBoost gibi ağaç tabanlı algoritmalar, tüm ağaçlar üzerinde bir özelliğin neden olduğu kirlilikteki (örneğin gini impurity) toplam azalmayı hesaplar ve bir ağaç yapısının oluşturulması sırasında her bir özelliğin ne kadar önemli olduğunu ölçmeyi sağlar. MDI hesabının temel işlem adımları şu şekildedir.

  • Her bir karar düğümü, veri setini belli bir özellik ve eşik değeri kullanarak iki alt kümeye böler. Bu bölme işlemi, bir kriter olan impurity (kirlilik) ölçüsüne göre yapılır.
  • Bir özellik ne kadar sık kullanılıyorsa ve bu özellik kullanıldığında ne kadar impurity azalıyorsa, o özellik o kadar önemlidir. MDI, her bir özelliğin her bir bölme noktasında impurity azalmasını toplayarak özellik önemini hesaplar.
  • Son olarak tüm düğümlerde ve bölme noktalarında özellik önemleri toplanır. Bu toplam, her özelliğin toplam impurity azalmasını temsil eder.

Şimdi aynı veri setimizle çalışmaya devam edelim ama bu sefer Random Forest algoritmasının MDI hesabını kullanarak hangi özelliklerimizin modelimiz için ne kadar önemli olduğuna bakalım.

Modelde s5 Değişkenin Yaklaşık %31', bmi Değişkenin ise Yaklaşık Olarak %27 Bir Öneme Sahip

NOT: MDI hesabı kullanılan her bir özelliğe yüzdelik bir değer atar bu sayede karşılaştırmamızı yüzdelik oranlar üzerinden yapabiliriz. Tüm değerlerin toplamının 1 olduğunu hatırlatalım.

3. Permutation Importance

Permutation Importance, bir makine öğrenmesi modelinin performansına hangi özelliklerin ne kadar katkıda bulunduğunu değerlendirmek için kullanılan başka bir yöntemdir. Bu yöntem, modelin doğruluğunu ölçerken özellik değerlerini rastgele karıştırarak özelliklerin önem sıralamasını elde etmeye çalışır. Permütasyon hesabının temel işlem adımları şu şekildedir.

  • Her bir özellik değeri sırasıyla rastgele karıştırılır. Bu, her bir özellik için yeni bir permütasyonlu veri seti oluşturur.
  • Oluşturulan permütasyonlu veri setleri kullanılarak modeller tekrar eğitilir ve performansı ölçülür. Modelin performansındaki değişiklik, her özellik için bir önem skoru elde etmek için kullanılır.
  • Orijinal performans ile her bir permütasyon sonrası performans arasındaki fark, özellik için bir önem skoru olarak kabul edilir. Daha büyük bir fark, özelliğin modelin performansına daha fazla katkıda bulunduğunu gösterir.

Şimdi bir önceki adımda oluşturduğumuz Random Forest modelimizi kullanarak, 10 farklı permütasyon hesabı sonucu model başarılarımızda ne kadarlık düşüşler olduğuna bakalım. Yapılan bu 10 farklı permütasyon hesabı sonucu elde edilen çıktıları aşağıdan inceleyebilirsiniz.

Yapılan Denemeler Sonucu Model Başarısında Yaşanan Düşüşler

NOT: Bir önceki adımda MDI kullanarak bulduğumuz en önemli 2 özelliğin (s5, bmi) değerlerinin rastgele bir şekilde değişmesi durumunda model performasında yapacağı negatif etkiyi burada da görebilirsiniz.

Bu deney sonuçlarını daha rahat kıyaslayabilmek için yukarıdaki tabloda bulunan değerleri bir de boxplot üzerinde görelim.

Özellik Değerlerinin Karıştırılması Sonucu Model Başarısında Yaşanan Düşüşler

Yukarıdaki grafiği şu şekilde okuyabiliriz.

  • BMI özelliği ile yapılan 10 farklı denemede model başarısında medyan olarak 0.4843'lük bir düşüş, minimum 0.4207 maksimum da 0.5483'lük düşüşler meydana gelmiştir.
  • BP özelliği ile yapılan denemelerde ise model başarısında medyan olarak 0.1387'lik düşüşler olmuştur.

4. SHAP (Shapley Additive Explanations)

SHAP, model tahminlerinin açıklanabilirliğini değerlendirmek ve özelliklerin katkılarını anlamak için kullanılan bir yöntemdir. SHAP, özellik değerlerinin model tahminine olan katkılarını açıklamak üzere oyun teorisi temelinde Shapley değerlerini kullanır. Shapley değerlerinin hesabının temel işlem adımları şu şekildedir.

  • Bir oyuncunun takıma katkısı, diğer oyuncuların bulundukları durumu baz alarak oyuncunun katılması durumunda olacak farkı temsil eder.
  • SHAP, tüm özellik kombinasyonları üzerinde işlem yapar. Her bir kombinasyon, modelin tahminine katkısını belirlemek üzere kullanılır.
  • Her bir özellik kombinasyonu için, o kombinasyonun dahil olduğu alt modellerin tahminleri elde edilir. Bu alt modeller, özellik kombinasyonlarının bir alt kümesini içerir.
  • Shapley değerleri, tüm özellik kombinasyonlarından gelen katkıların ortalamasıdır.

Tekrardan Random Forest modelimizi kullanarak, özelliklere ait shapley değerlerinin model sonuçlarımızı nasıl etkilediğine bakalım.

Modelde Kullanılan Özelliklerin Ortalama Shapley Değerleri

Yukarıdaki grafiği şu şekilde okuyabiliriz.

  • S5 özelliği ortalama +28.79 shapley değeri ile modelimiz için en önemli özellik olmuştur.
  • S4 özelliği ortalama +1.62 shapley değeri ile modelimiz için en önemsiz özellik olmuştur.

Ayrıca SHAP’i kullanarak veri setimizde bulunan istediğimiz bir gözlem için de teker teker incelemeler yapabiliriz.

Örneğin veri setimizde bulunan 1. gözlemimizin shapley değerlerini hangi yönde ve ne kadar etkilediklerine bakalım.

Yukarıdaki grafiği şu şekilde okuyabiliriz.

  • BMI değerinin 32.1 olması modelimizin shapley değerine (+) yönde en çok etkiyi yapmıştır.
  • S6 değerinin 87 olması ise modelimizin shapley değerine (-) yönde en çok etkiyi yapmıştır.

NOT: SHAP kütüphanesi buradaki gösterilen örneklere ek olarak, model analizinde ek olarak birçok faydalı gösterim sunar. Bunları daha detaylı bir şekilde https://shap.readthedocs.io/en/latest/ adresinden inceleyebilirsiniz.

Artık modellerimizin davranışını, daha detaylı bir şekilde incelemekte kullanılan yöntemler hakkında daha çok bilgi sahibisiniz. Model geliştirme sürecinizde kolaylıklar dileriz :)

--

--