復習:決定木の調整
CoddyのMachine Learningジャーニー「教師あり学習」セクションの一部。レッスン 36/58。
チャレンジ
中級焙煎機のセンサーはコーヒー豆のバッチごとに6つの値を読み取ります。1は袋詰めの準備ができていることを意味します。適切な木の深さを選びましょう。
- テスト用に20%を分け、残りの25%を検証用に分けます(
random_state=0)。 - 深さ1から10まで、訓練データで木を学習させ(
random_state=0)、訓練精度と検証精度をプロットします。marker="o"を指定し、ラベルはtrainingとvalidationにします。 - 最適な深さを出力し、次にその深さでのテスト精度を出力します。
- その深さを破線で示し、テストスコアを赤い星印で示します。凡例も追加します。
別の焙煎機では、次のように出力されます。
Best depth: 5 (validation accuracy 0.887)
Test accuracy: 0.750そして、次のようなグラフが描画されます。続いてCoddyがあなたのグラフを説明します。
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# make_classification は練習用に現実的なデータ行を生成します。ここではコーヒーの焙煎バッチが 400 件あり、
# 各バッチには焙煎機のセンサー測定値が 6 個あり、袋詰めの準備ができたバッチにはラベル 1 が付けられます
X, y = make_classification(n_samples=400, n_features=6, n_informative=3, n_redundant=1,
flip_y=0.1, random_state=79)
fig, ax = plt.subplots()
ax.set_title("Coffee Batches: Choosing a Depth")
ax.set_xlabel("Tree depth")
ax.set_ylabel("Accuracy")
# 以下にコードを書いてください
教師あり学習のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ