Importanța caracteristicilor în random forest
Un aspect util al metodelor bazate pe arbori este posibilitatea de a extrage importanța caracteristicilor. Aceasta reprezintă o modalitate cantitativă de a măsura cât de mult contribuie fiecare caracteristică la predicțiile noastre. Ne ajută să ne concentrăm pe cele mai relevante caracteristici – poate pentru a le îmbunătăți sau ajusta – și ne permite, totodată, să eliminăm caracteristicile inutile care ar putea îngreuna modelul.
Modelele de tip arbore din sklearn au o proprietate .feature_importances_ accesibilă după antrenarea modelului. Aceasta stochează scorurile de importanță ale caracteristicilor. Pentru a genera un grafic de tip bară bine structurat (sortat de la cea mai importantă la cea mai puțin importantă caracteristică), trebuie să obținem indicii corespunzători importanțelor sortate folosind np.argsort().
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Folosește proprietatea
feature_importances_a modelului nostru random forest (rfr) pentru a extrage importanțele caracteristicilor în variabilaimportances. - Folosește
argsortdin numpy pentru a obține indicii importanțelor caracteristicilor sortate de la cea mai mare la cea mai mică, și salvează indicii sortați în variabilasorted_index. - Setează etichetele de pe axa x ca nume ale caracteristicilor în variabila
labels, folosind listasorted_index.feature_namestrebuie convertit într-un array numpy pentru a putea fi indexat cu listasorted_index.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()