始める無料で始める

ランダムフォレスト

Random Forest は、ブートストラップ集約(略して bagging)により個々の決定木を活用する、古典的かつ強力なアンサンブル手法です。このモデルで主に調整するハイパーパラメータは、木の本数と各木の最大深さの2つです。この演習では、いくつかの固定したハイパーパラメータ値で、シンプルなランダムフォレスト分類器を実装して評価します。

X_trainy_trainX_testy_test はワークスペースに用意されています。pandaspdnumpynp として、sklearn も利用可能です。sklearn.ensembleRandomForestClassifier() に加えて、sklearn.metricsroc_curve()auc() も使用できます。

この演習はコースの一部です

PythonでMachine Learningを使って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))
コードを編集して実行