始める無料で始める

モデル選択

正則化と交差検証は、モデル選択において非常に強力な手法です。正則化は過学習の防止に役立ち、交差検証はモデルが適切に評価されていることを保証します。この演習では、正則化と交差検証を組み合わせて、モデル間で有意な差があるかどうかを確認します。ここでは精度(precision)のみを計算しますが、同様の手順で再現率(recall)や他の評価指標にも簡単に応用できます。

X_trainy_trainX_testy_test がワークスペースに用意されています。pandaspdnumpynpsklearn も使用できます。sklearn.metricsprecision_score()recall_score()、および sklearn.model_selectionKFold()cross_val_score() も利用可能です。

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

PythonでMachine Learningを使ってCTRを予測する

コースを見る

演習の手順

  • n_splits を使って分割数を4にしたK-Fold交差検証を設定し、k-fold に代入します。
  • 決定木分類器を作成します。
  • k_fold を使って交差検証を実行し、指定された max_depth の値に対する決定木モデルの精度(precision)と再現率(recall)を評価します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Iterate over different levels of max depth and set up k-fold
for max_depth_val in [3, 5, 10]:
  k_fold = ____(____ = 4, random_state = 0, shuffle = True)
  clf = ____(____ = max_depth_val)
  print("Evaluating Decision Tree for max_depth = %s" %(max_depth_val))
  y_pred = clf.fit(____, ____).predict(____) 
  
  # Calculate precision for cross validation and test
  cv_precision = ____(
    ____, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')
  precision = ____(y_test, y_pred, average = 'weighted')
  print("Cross validation Precision: %s" %(cv_precision))
  print("Test Precision: %s" %(precision))
コードを編集して実行