Random forest
Le Random Forest sono un metodo di ensemble classico e potente che sfrutta singoli alberi decisionali tramite bootstrap aggregation (o, in breve, bagging). I due principali iperparametri di questo tipo di modello sono il numero di alberi e la profondità massima di ciascun albero. In questo esercizio, implementerai e valuterai un semplice classificatore random forest con alcuni valori di iperparametri fissati.
X_train, y_train, X_test, y_test sono disponibili nel tuo workspace. pandas come pd, numpy come np e sklearn sono anch'essi disponibili. RandomForestClassifier() da sklearn.ensemble è disponibile, insieme a roc_curve() e auc() da sklearn.metrics.
Questo esercizio fa parte del corso
Prevedere il CTR con il Machine Learning in Python
Istruzioni dell'esercizio
- Crea un classificatore random forest con 50 alberi e una profondità massima di 5.
- Addestra il classificatore e ottieni i punteggi di probabilità tramite
.predict_proba()e le predizioni tramite.predict()sui dati di test. - Valuta l'AUC della curva ROC per il classificatore usando prima
roc_curve()per calcolarefpretpr, quindiauc()sul risultato. - Valuta precision e recall per il classificatore.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create random forest classifier with specified params
clf = ____(____ = 50, ____ = 5)
# Train classifier - predict probability score and label
y_score = clf.____(X_train, y_train).____(X_test)
y_pred = clf.____(X_train, y_train).____(X_test)
# Get ROC curve metrics
fpr, tpr, thresholds = ____(y_test, y_score[:, 1])
print("ROC of AUC: %s"%(____(fpr, tpr)))
# Get precision and recall
precision = ____(y_test, y_pred, average = 'weighted')
recall = ____(y_test, y_pred, average = 'weighted')
print("Precision: %s, Recall: %s" %(precision, recall))