Comece agoraComece grátis

Importâncias de atributos no gradient boosting

Assim como em random forests, podemos extrair as importâncias dos atributos de modelos de gradient boosting para entender quais variáveis são melhores preditoras. Às vezes, vale a pena experimentar diferentes modelos baseados em árvores e comparar as importâncias de atributos de todos eles. Isso ajuda a suavizar eventuais peculiaridades de um modelo específico.

As importâncias de atributos são armazenadas como um array do numpy na propriedade .feature_importances_ do modelo de gradient boosting. Precisamos obter os índices ordenados dessas importâncias usando np.argsort() para fazer um bom gráfico. Queremos os atributos do maior para o menor, então vamos usar a indexação do Python para inverter as importâncias ordenadas, como em feat_importances[::-1].

Este exercicio faz parte do curso

Machine Learning para Finanças em Python

Ver curso

Instruções do exercicio

  • Inverta a variável sorted_index para ir do maior para o menor usando a indexação do Python.
  • Crie a lista ordenada de rótulos dos atributos como labels, convertendo feature_names para um array do numpy e indexando com sorted_index.
  • Crie um gráfico de barras com os xticks, feature_importances indexado com a variável sorted_index e labels como os rótulos dos xticks.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 e Executar Código