Importâncias de features no random forest
Um aspecto útil dos métodos baseados em árvores é a capacidade de extrair importâncias de features. Isso é uma forma quantitativa de medir quanto cada feature contribui para nossas previsões. Isso pode ajudar você a focar nas melhores features, possivelmente aprimorando ou ajustando-as, e também a eliminar features inúteis que podem estar poluindo o seu modelo.
Modelos de árvore no sklearn têm a propriedade .feature_importances_, acessível após o ajuste do modelo. Ela armazena as pontuações de importância das features. Precisamos obter os índices das importâncias ordenadas usando np.argsort() para criar um gráfico de barras organizado das importâncias (da maior para a menor).
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Use a propriedade
feature_importances_do nosso modelo de random forest (rfr) para extrair as importâncias de features na variávelimportances. - Use
argsortdo NumPy para obter os índices das importâncias das features da maior para a menor e salve os índices ordenados na variávelsorted_index. - Defina os rótulos do eixo x (
xtick labels) como os nomes das features na variávellabels, usando a listasorted_index.feature_namesdeve ser convertido para um array do NumPy para que possamos indexá-lo com a listasorted_index.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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()