Random forests
Random Forests zijn een klassieke en krachtige ensemblemethode die individuele beslissingsbomen gebruiken via bootstrap aggregation (kortweg bagging). Twee belangrijke hyperparameters in dit type model zijn het aantal bomen en de maximale diepte van elke boom. In deze oefening implementeer en evalueer je een eenvoudige random forest-classifier met enkele vaste hyperparameterewaarden.
X_train, y_train, X_test, y_test zijn beschikbaar in je werkruimte. pandas als pd, numpy als np, en sklearn zijn ook beschikbaar in je werkruimte. RandomForestClassifier() uit sklearn.ensemble is eveneens beschikbaar, samen met roc_curve() en auc() uit sklearn.metrics.
Deze oefening maakt deel uit van de cursus
CTR voorspellen met Machine Learning in Python
Oefeninstructies
- Maak een random forest-classifier met 50 bomen en een maximale diepte van 5.
- Train de classifier en haal waarschijnlijkheidsscores op via
.predict_proba(), en voorspellingen via.predict()voor de testgegevens. - Evalueer de AUC van de ROC-curve voor de classifier door eerst met
roc_curve()fprentprte berekenen en vervolgensauc()op het resultaat toe te passen. - Evalueer de precision en recall voor de classifier.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))