開始使用免費開始

隨機森林

Random Forest 是一種經典且強大的集成方法,透過自助聚合法(bootstrap aggregation,簡稱 bagging)組合多棵決策樹。這類模型的兩個主要超參數是樹的數量,以及每棵樹的最大深度。在本練習中,你將以固定的超參數值,實作並評估一個簡單的隨機森林分類器。

你的工作環境中已提供 X_trainy_trainX_testy_testpandas(作為 pd)、numpy(作為 np)與 sklearn 也可使用。你也可以使用 sklearn.ensembleRandomForestClassifier(),以及 sklearn.metricsroc_curve()auc()

本練習屬於課程

用 Python 透過機器學習預測 CTR

檢視課程

練習說明

  • 建立一個包含 50 棵樹、最大深度為 5 的隨機森林分類器。
  • 訓練分類器,並在測試資料上分別使用 .predict_proba() 取得機率分數,以及使用 .predict() 取得預測結果。
  • 先用 roc_curve() 計算 fprtpr,再以 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))
編輯並執行程式碼