BaşlayınÜcretsiz başlayın

Gradient boosting özellik önemleri

Random forests'ta olduğu gibi, en iyi yordayıcıların hangileri olduğunu anlamak için gradient boosting modellerinden de özellik önemlerini çıkarabiliriz. Bazen farklı ağaç tabanlı modelleri denemek ve hepsinin özellik önemlerine bakmak faydalı olur. Bu, tek bir modele özgü tuhaflıkların etkisini ortalamaya yardımcı olabilir.

Özellik önemleri, gradient boosting modelinin .feature_importances_ özelliğinde bir numpy dizisi olarak saklanır. Güzel bir grafik oluşturmak için np.argsort() kullanarak özellik önemlerinin sıralı indekslerini almamız gerekecek. Özellikleri büyükten küçüğe istiyoruz, bu yüzden sıralanmış önemleri feat_importances[::-1] gibi Python indekslemesiyle ters çevireceğiz.

Bu egzersiz, kursun bir parçasıdır

Python ile Finans için Machine Learning

Kursa Göz Atın

Egzersiz talimatları

  • sorted_index değişkenini Python indeksleme kullanarak büyükten küçüğe olacak şekilde ters çevir.
  • feature_names'i bir numpy dizisine çevirip sorted_index ile indeksleyerek labels adlı sıralı özellik etiketleri listesini oluştur.
  • xtick'lerin, sorted_index ile indekslenmiş feature_importances'ın ve xtick etiketleri olarak labels'ın kullanıldığı bir çubuk grafik oluştur.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Extract feature importances from the fitted gradient boosting model
feature_importances = gbr.feature_importances_

# Get the indices of the largest to smallest feature importances
sorted_index = np.argsort(feature_importances)[::____]
x = range(features.shape[1])

# Create tick labels 
labels = np.array(feature_names)[____]

plt.bar(____, feature_importances[____], tick_label=____)

# Set the tick lables to be the feature names, according to the sorted feature_idx
plt.xticks(rotation=90)
plt.show()
Kodu Düzenle ve Çalıştır