Importancias de características en random forest
Un aspecto útil de los métodos basados en árboles es que permiten extraer las importancias de las características. Es una forma cuantitativa de medir cuánto aporta cada característica a nuestras predicciones. Esto puede ayudarnos a centrarnos en nuestras mejores características, mejorarlas o ajustarlas, y también a eliminar las que no aportan valor y puedan estar saturando el modelo.
Los modelos de árboles en sklearn tienen una propiedad .feature_importances_ accesible después de ajustar el modelo. Ahí se almacenan las puntuaciones de importancia. Necesitamos obtener los índices de las importancias ordenadas usando np.argsort() para crear un diagrama de barras claro con las importancias de características (ordenadas de mayor a menor importancia).
Este ejercicio forma parte del curso
Machine Learning para finanzas con Python
Instrucciones del ejercicio
- Usa la propiedad
feature_importances_de nuestro modelo de random forest (rfr) para extraer las importancias de las características en la variableimportances. - Usa
argsortde numpy para obtener los índices de las importancias de mayor a menor y guarda los índices ordenados en la variablesorted_index. - Establece las etiquetas del eje x como los nombres de las características en la variable
labels, usando la listasorted_index.feature_namesdebe convertirse en un array de numpy para poder indexarlo con la listasorted_index.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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()