Random forests
Random Forests는 부트스트랩 집계(줄여서 bagging)를 통해 개별 결정 트리를 활용하는 고전적이면서 강력한 앙상블 방법입니다. 이 모델에서 핵심 하이퍼파라미터는 트리의 개수와 각 트리의 최대 깊이입니다. 이 연습 문제에서는 일부 고정된 하이퍼파라미터 값으로 간단한 random forest 분류기를 구현하고 평가해 보겠습니다.
X_train, y_train, X_test, y_test가 작업 공간에 준비되어 있어요. pandas는 pd, numpy는 np로, 그리고 sklearn도 사용할 수 있습니다. 또한 sklearn.ensemble의 RandomForestClassifier()와 sklearn.metrics의 roc_curve(), auc()도 사용할 수 있어요.
이 연습은 강의의 일부입니다
Python으로 Machine Learning을 활용한 CTR 예측
연습 안내
- 트리 50개, 최대 깊이 5인 random forest 분류기를 생성하세요.
- 분류기를 학습한 뒤, 테스트 데이터에 대해
.predict_proba()로 확률 점수를,.predict()로 예측 값을 구하세요. - 먼저
roc_curve()로fpr과tpr을 계산하고, 그 결과에auc()를 적용해 분류기의 ROC 곡선 AUC를 평가하세요. - 분류기의 정밀도(precision)와 재현율(recall)을 평가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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))