Rastgele orman özellik önemleri
Ağaç tabanlı yöntemlerin faydalı bir yönü, özellik önemlerini çıkarabilmektir. Bu, her bir özelliğin tahminlerimize ne kadar katkıda bulunduğunu nicel olarak ölçmenin bir yoludur. En iyi özelliklerimize odaklanmamıza, onları geliştirmemize ya da ayarlamamıza yardımcı olabilir ve ayrıca modelimizi kalabalıklaştıran işe yaramaz özelliklerden kurtulmamıza da yardım eder.
sklearn içindeki ağaç modellerinde, modeli eğittikten sonra erişilebilen bir .feature_importances_ özelliği vardır. Bu, özellik önem skorlarını saklar. Özellik önemlerinin güzel görünümlü bir çubuk grafiğini (önem büyüğünden küçüğüne sıralı) yapabilmek için np.argsort() kullanarak sıralanmış özellik önemlerinin indislerini almamız gerekir.
Bu egzersiz, kursun bir parçasıdır
Python ile Finans için Machine Learning
Egzersiz talimatları
- Rastgele orman modelimizin (
rfr)feature_importances_özelliğini kullanarak özellik önemleriniimportancesdeğişkenine çıkar. - Numpy'nin
argsortfonksiyonunu kullanarak özellik önemlerinin büyükten küçüğe indislerini al ve sıralı indislerisorted_indexdeğişkenine kaydet. - X-tick etiketlerini
labelsdeğişkeninde,sorted_indexlistesini kullanarak özellik adları olacak şekilde ayarla.feature_names,sorted_indexlistesiyle indeksleyebilmemiz için bir numpy dizisine dönüştürülmelidir.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Get feature importances from our random forest model
importances = rfr.____
# Get the index of importances from greatest importance to least
sorted_index = ____(importances)[::-1]
x = range(len(importances))
# Create tick labels
labels = np.array(____)[____]
plt.bar(x, importances[sorted_index], tick_label=labels)
# Rotate tick labels to vertical
plt.xticks(rotation=90)
plt.show()