正則化
正則化は、過学習を防ぐためにモデルへ情報を追加する手法です。これは、本章の前半で見た評価指標を向上させるうえで重要です。この演習では、決定木の最大深さパラメータを変化させ、分類結果がどのように変わるかを確認します。
X_train、y_train、X_test、y_test はワークスペースに用意されています。pandas は pd、numpy は np、そして sklearn も利用できます。さらに、sklearn.metrics の confusion_matrix()、precision_score()、recall_score() も利用可能です。
この演習はコースの一部です
PythonでMachine Learningを使ってCTRを予測する
演習の手順
- 各木の最大深さを変えて、複数の決定木を作成します。
- それぞれの木について、学習を行い、テストデータで予測を生成します。
- 各木の混同行列、適合率(precision)、再現率(recall)を評価します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Iterate over different levels of max depth
for max_depth_val in [2, 3, 5, 10, 15, 20]:
# Create and fit model
clf = ____(____ = max_depth_val)
print("Evaluating tree with max_depth = %s" %(max_depth_val))
y_pred = clf.fit(____, ____).predict(____)
# Evaluate confusion matrix, precision, recall
print("Confusion matrix: ")
print(____(y_test, y_pred))
prec = ____(____, ____, average = 'weighted')
recall = ____(____, ____, average = 'weighted')
print("Precision: %s, Recall: %s" %(prec, recall))