EmpezarEmpieza gratis

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

Ver curso

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 variable importances.
  • Usa argsort de numpy para obtener los índices de las importancias de mayor a menor y guarda los índices ordenados en la variable sorted_index.
  • Establece las etiquetas del eje x como los nombres de las características en la variable labels, usando la lista sorted_index. feature_names debe convertirse en un array de numpy para poder indexarlo con la lista sorted_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()
Editar y ejecutar código