Estrarre un parametro di Random Forest
Ora tradurrai il lavoro svolto in precedenza sul modello di regressione logistica in un modello di random forest. Un parametro di questo modello è, per ciascun albero, come decide di effettuare lo split a ogni livello.
Questa analisi non è utile quanto i coefficienti della regressione logistica, perché difficilmente andrai mai a esplorare ogni split e ogni albero in un modello di random forest. Tuttavia, è un esercizio molto utile per dare un'occhiata sotto il cofano e capire cosa sta facendo il modello.
In questo esercizio estrarremo un singolo albero dal nostro modello di random forest, lo visualizzeremo ed estrarremo in modo programmatico uno degli split.
Hai a disposizione:
- Un oggetto modello di random forest,
rf_clf - Un'immagine della parte superiore dell'albero di decisione scelto,
tree_viz_image - Il DataFrame
X_traine la listaoriginal_variables
Questo esercizio fa parte del corso
Ottimizzazione degli iperparametri in Python
Istruzioni dell'esercizio
- Estrai il 7° albero (indice 6) dal modello di random forest.
- Visualizza questo albero (
tree_viz_image) per vedere le decisioni di split. - Estrai la feature e la soglia dello split in cima.
- Stampa insieme feature e soglia.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Extract the 7th (index 6) tree from the random forest
chosen_tree = rf_clf.estimators_[____]
# Visualize the graph using the provided image
imgplot = plt.imshow(____)
plt.show()
# Extract the parameters and level of the top (index 0) node
split_column = chosen_tree.tree_.feature[____]
split_column_name = X_train.columns[split_column]
split_value = chosen_tree.tree_.threshold[____]
# Print out the feature and level
print("This node split on feature {}, at a value of {}".format(split_column_name, ____))