隨機森林
Random Forest 是一種經典且強大的集成方法,透過自助聚合法(bootstrap aggregation,簡稱 bagging)組合多棵決策樹。這類模型的兩個主要超參數是樹的數量,以及每棵樹的最大深度。在本練習中,你將以固定的超參數值,實作並評估一個簡單的隨機森林分類器。
你的工作環境中已提供 X_train、y_train、X_test、y_test。pandas(作為 pd)、numpy(作為 np)與 sklearn 也可使用。你也可以使用 sklearn.ensemble 的 RandomForestClassifier(),以及 sklearn.metrics 的 roc_curve() 和 auc()。
本練習屬於課程
用 Python 透過機器學習預測 CTR
練習說明
- 建立一個包含 50 棵樹、最大深度為 5 的隨機森林分類器。
- 訓練分類器,並在測試資料上分別使用
.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))