EmpezarEmpieza gratis

Importancias de características con gradient boosting

Al igual que con los random forests, podemos extraer las importancias de características de los modelos de gradient boosting para entender qué variables predicen mejor. A veces viene bien probar distintos modelos basados en árboles y comparar sus importancias. Esto ayuda a promediar cualquier peculiaridad que pueda surgir en un modelo en particular.

Las importancias de características se guardan como un array de numpy en la propiedad .feature_importances_ del modelo de gradient boosting. Necesitaremos obtener los índices ordenados de esas importancias con np.argsort() para crear un buen gráfico. Queremos las características de mayor a menor, así que usaremos el indexado de Python para invertir las importancias ordenadas como feat_importances[::-1].

Este ejercicio forma parte del curso

Machine Learning para finanzas con Python

Ver curso

Instrucciones del ejercicio

  • Invierte la variable sorted_index para ir de mayor a menor usando el indexado de Python.
  • Crea la lista ordenada de etiquetas de características como labels convirtiendo feature_names en un array de numpy e indexando con sorted_index.
  • Crea un gráfico de barras con los xticks, feature_importances indexado con la variable sorted_index, y labels como etiquetas de los xticks.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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()
Editar y ejecutar código