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
Egzersiz talimatları
sorted_indexdeğişkenini Python indeksleme kullanarak büyükten küçüğe olacak şekilde ters çevir.feature_names'i bir numpy dizisine çeviripsorted_indexile indeksleyereklabelsadlı sıralı özellik etiketleri listesini oluştur.- xtick'lerin,
sorted_indexile indekslenmişfeature_importances'ın ve xtick etiketleri olaraklabels'ı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()