Random forests
Random Forests são um método de ensemble clássico e poderoso que utiliza árvores de decisão individuais por meio de bootstrap aggregation (ou bagging, para abreviar). Dois hiperparâmetros principais nesse tipo de modelo são o número de árvores e a profundidade máxima de cada árvore. Neste exercício, você vai implementar e avaliar um classificador de random forest simples com alguns valores fixos de hiperparâmetros.
X_train, y_train, X_test, y_test estão disponíveis no seu workspace. pandas como pd, numpy como np e sklearn também estão disponíveis no seu workspace. RandomForestClassifier() de sklearn.ensemble também está disponível, junto com roc_curve() e auc() de sklearn.metrics.
Este exercício faz parte do curso
Prevendo CTR com Machine Learning em Python
Instruções do exercício
- Crie um classificador de random forest com 50 árvores e profundidade máxima de 5.
- Treine o classificador e obtenha as pontuações de probabilidade via
.predict_proba()e as previsões via.predict()para os dados de teste. - Avalie a AUC da curva ROC para o classificador usando primeiro
roc_curve()para calcularfpretpr, e depoisauc()no resultado. - Avalie a precisão (precision) e a revocação (recall) do classificador.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))