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
Instrucciones del ejercicio
- Invierte la variable
sorted_indexpara ir de mayor a menor usando el indexado de Python. - Crea la lista ordenada de etiquetas de características como
labelsconvirtiendofeature_namesen un array de numpy e indexando consorted_index. - Crea un gráfico de barras con los xticks,
feature_importancesindexado con la variablesorted_index, ylabelscomo 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()