Garfield
YZF Admin
Özellik önemini incelemek için önce modelin kendi önem skorunu, ardından modelden bağımsız permutation importance değerini hesaplayın. Ağaç tabanlı modellerde
Model türü, hangi önem ölçümünün uygun olduğunu belirler. Ağaç tabanlı modeller kendi iç önem skorlarını sunar; doğrusal modellerde katsayının mutlak değeri büyüklük hakkında fikir verir; yönü görmek için işaretli katsayı gerekir. Permütasyon önemi ise seçilen değerlendirme metriği açısından bir özelliğin model performansına katkısını ölçer ve farklı model türlerinde kullanılabilir.
Bu nedenle pratikte iki ölçümü birlikte kullanmak daha güvenlidir: modelin yerleşik önem skorunu hızlı bir ilk inceleme için, permutation importance değerini ise doğrulama veya test verisi üzerindeki performans etkisini görmek için kullanın.
Aşağıdaki varsayımsal örnekte modelin
Örneğin çıktı şu biçimdeyse:
Permutation importance hesaplanırken seçtiğiniz veri kümesinde bir özelliğin değerleri karıştırılır ve model başarısındaki değişim ölçülür. Bu nedenle eğitim verisi yerine mümkünse daha önce modelin görmediği doğrulama veya test verisini kullanın. Sınıflandırmada
Ortalama değer pozitifse, o özellik karıştırıldığında model performansı genellikle düşmüştür. Değer sıfıra yakınsa model o özelliğe az dayanıyor olabilir. Negatif değer, karıştırmanın performansı artırdığını gösterir; bu durum gürültü, örnekleme değişkenliği veya modelin özelliği olumsuz kullanmasıyla ilişkili olabilir. Tek bir ölçümle karar vermek yerine tekrar sayısını, veri bölünmesini ve standart sapmayı birlikte değerlendirin.
Mutlak değer büyüklüğü, işaretli katsayı yönü gösterir. İkili lojistik regresyonda
Bir özelliğin önemli çıkması onun nedensel olduğunu göstermez. Özellik başka bir değişkenin temsilcisi olabilir, veri sızıntısı içerebilir veya yalnızca belirli bir veri bölünmesinde önemli görünebilir. Özellikle birbirine yüksek derecede korelasyonlu özelliklerde model, bilgiyi bu özellikler arasında paylaşabilir. Birini karıştırdığınızda diğer benzer özellikler bilgiyi koruduğu için permutation importance düşük çıkabilir.
En güvenilir inceleme için önem sıralamasını eğitim ve doğrulama verisinde karşılaştırın, yüksek önem taşıyan sütunlarda veri sızıntısı olup olmadığını kontrol edin ve korelasyonlu özellikleri birlikte değerlendirin. Önem değerleri veri kümesine, modele, metriğe ve rastgele bölmeye bağlı olduğundan, bunları modelin karar mekanizmasını anlamaya yardımcı olan göstergeler olarak kullanın; tek başına özellik seçme veya nedensellik kanıtı olarak kullanmayın.
feature_importances_, doğrusal modellerde katsayılar, daha genel ve karşılaştırılabilir bir değerlendirme için ise permutation_importance kullanılabilir. Sonuçları tek başına kesin neden-sonuç ilişkisi olarak yorumlamayın; özellikle yüksek korelasyonlu özelliklerde önem dağılımı yanıltıcı olabilir.Kullanacağınız yöntemi seçin
Model türü, hangi önem ölçümünün uygun olduğunu belirler. Ağaç tabanlı modeller kendi iç önem skorlarını sunar; doğrusal modellerde katsayının mutlak değeri büyüklük hakkında fikir verir; yönü görmek için işaretli katsayı gerekir. Permütasyon önemi ise seçilen değerlendirme metriği açısından bir özelliğin model performansına katkısını ölçer ve farklı model türlerinde kullanılabilir.
| Yöntem | Uygun modeller | Ne gösterir? | Temel sınırlama |
|---|---|---|---|
feature_importances_ | Karar ağaçları, rastgele ormanlar, gradyan artırma modelleri | Modelin dallanma kararlarında özelliklerin katkısını | Korelasyonlu özelliklerde önem paylaşımı yanıltılabilir |
| Katsayıların mutlak değeri | Doğrusal ve lojistik modeller | Katsayının mutlak büyüklüğünü; yön için işaretli katsayı gerekir. | Ölçeklendirme yapılmadıysa katsayılar doğrudan karşılaştırılamaz |
permutation_importance | Birçok denetimli öğrenme modeli | Özellik karıştırıldığında model başarısının ne kadar değiştiğini | Korelasyon ve seçilen veri kümesine duyarlıdır |
Ağaç tabanlı modelde özellik önemini hesaplama
Aşağıdaki varsayımsal örnekte modelin
X_train ile eğitildiği ve sütun adlarının X.columns içinde bulunduğu kabul edilir. Modeliniz RandomForestClassifier, RandomForestRegressor, DecisionTreeClassifier, DecisionTreeRegressor veya benzeri bir ağaç tabanlı model olmalıdır.- Modelin eğitilmiş olduğunu doğrulayın. Özellik önemini hesaplamadan önce
fit()çağrısı tamamlanmış olmalıdır; aksi hâlde modelde gerekli önem özniteliği bulunmaz. - Özellik adlarını ve önem değerlerini eşleştirin.
feature_importances_dizisinin sırası, modelin eğitimde aldığı sütun sırasıyla aynı olmalıdır. - Değerleri büyükten küçüğe sıralayın. Böylece modelin iç değerlendirmesine göre en etkili görünen özellikleri üstte görebilirsiniz.
Python:
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)
importance = pd.Series(
model.feature_importances_,
index=X_train.columns
).sort_values(ascending=False)
print(importance)
Örneğin çıktı şu biçimdeyse:
Kod:
gelir 0.42
yaş 0.27
borç_oranı 0.19
şehir 0.12
gelir özelliğinin, ağaç bölünmelerindeki ağırlıklı safsızlık azalmasına bu örnekte en büyük payı verdiği söylenebilir. feature_importances_ doğrudan bölünmelerde kullanılma sayısı değildir. Bu çıktı, gelirin hedef değişkeni kesin olarak oluşturduğunu veya tek başına en güçlü gerçek neden olduğunu kanıtlamaz.Permutation importance ile doğrulama verisini inceleme
Permutation importance hesaplanırken seçtiğiniz veri kümesinde bir özelliğin değerleri karıştırılır ve model başarısındaki değişim ölçülür. Bu nedenle eğitim verisi yerine mümkünse daha önce modelin görmediği doğrulama veya test verisini kullanın. Sınıflandırmada
accuracy, f1, roc_auc; regresyonda r2 veya uygun başka bir metrik seçebilirsiniz.- Eğitilmiş modeli doğrulama verisi üzerinde değerlendirin.
X_validvey_validmodelin eğitiminde kullanılmamışsa ölçüm, yeni verideki davranışı daha iyi yansıtır. - Permutation importance değerlerini hesaplayın.
n_repeatsdeğerini artırmak ölçümü daha kararlı hâle getirir ancak hesaplama süresini uzatır. - Ortalama ve standart sapmayı birlikte inceleyin. Ortalama değer yüksek, standart sapma da çok büyükse önem sıralaması kararsız olabilir.
Python:
import pandas as pd
from sklearn.inspection import permutation_importance
result = permutation_importance(
model,
X_valid,
y_valid,
n_repeats=10,
random_state=42,
scoring="accuracy"
)
importance = pd.DataFrame({
"özellik": X_valid.columns,
"ortalama": result.importances_mean,
"standart_sapma": result.importances_std
}).sort_values("ortalama", ascending=False)
print(importance)
Ortalama değer pozitifse, o özellik karıştırıldığında model performansı genellikle düşmüştür. Değer sıfıra yakınsa model o özelliğe az dayanıyor olabilir. Negatif değer, karıştırmanın performansı artırdığını gösterir; bu durum gürültü, örnekleme değişkenliği veya modelin özelliği olumsuz kullanmasıyla ilişkili olabilir. Tek bir ölçümle karar vermek yerine tekrar sayısını, veri bölünmesini ve standart sapmayı birlikte değerlendirin.
Doğrusal modellerde katsayıları yorumlama
LinearRegression, LogisticRegression ve benzeri modellerde önem için genellikle katsayıların mutlak değerleri karşılaştırılır. Ancak özellikler farklı ölçeklerdeyse, büyük katsayı doğrudan daha önemli anlamına gelmez. Örneğin gelir binlerle, yaş ise onlarca ölçülüyorsa katsayı büyüklükleri ölçek farkından etkilenebilir.
Python:
import pandas as pd
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
importance = pd.Series(
model.coef_[0].__abs__(),
index=X_train.columns
).sort_values(ascending=False)
print(importance)
print("İşaretli katsayılar:")
print(pd.Series(model.coef_[0], index=X_train.columns).sort_values())
Mutlak değer büyüklüğü, işaretli katsayı yönü gösterir. İkili lojistik regresyonda
coef_[0], diğer özellikler sabitken model.classes_[1] sınıfının log-olasılık oranına etkiyi verir. Çok sınıflı modelde bu kod yalnız ilk katsayı satırını gösterir; her satırı model.classes_ sırasındaki ilgili sınıfla inceleyin; kesin yorum, hedef sınıfın kodlanmasına ve modelin diğer değişkenleriyle birlikte değerlendirilmesine bağlıdır. Bu yaklaşım, doğrusal ilişkinin model varsayımlarıyla sınırlıdır.Sonuçları yanlış yorumlamamak
Bir özelliğin önemli çıkması onun nedensel olduğunu göstermez. Özellik başka bir değişkenin temsilcisi olabilir, veri sızıntısı içerebilir veya yalnızca belirli bir veri bölünmesinde önemli görünebilir. Özellikle birbirine yüksek derecede korelasyonlu özelliklerde model, bilgiyi bu özellikler arasında paylaşabilir. Birini karıştırdığınızda diğer benzer özellikler bilgiyi koruduğu için permutation importance düşük çıkabilir.
En güvenilir inceleme için önem sıralamasını eğitim ve doğrulama verisinde karşılaştırın, yüksek önem taşıyan sütunlarda veri sızıntısı olup olmadığını kontrol edin ve korelasyonlu özellikleri birlikte değerlendirin. Önem değerleri veri kümesine, modele, metriğe ve rastgele bölmeye bağlı olduğundan, bunları modelin karar mekanizmasını anlamaya yardımcı olan göstergeler olarak kullanın; tek başına özellik seçme veya nedensellik kanıtı olarak kullanmayın.
Son düzenleme: