Menu
CoddyTech

復習:決定木の調整

CoddyのMachine Learningジャーニー「教師あり学習」セクションの一部。レッスン 36/58。

challenge icon

チャレンジ

中級

焙煎機のセンサーはコーヒー豆のバッチごとに6つの値を読み取ります。1は袋詰めの準備ができていることを意味します。適切な木の深さを選びましょう。

  1. テスト用に20%を分け、残りの25%を検証用に分けます(random_state=0)。
  2. 深さ1から10まで、訓練データで木を学習させ(random_state=0)、訓練精度と検証精度をプロットします。marker="o"を指定し、ラベルはtrainingとvalidationにします。
  3. 最適な深さを出力し、次にその深さでのテスト精度を出力します。
  4. その深さを破線で示し、テストスコアを赤い星印で示します。凡例も追加します。

別の焙煎機では、次のように出力されます。

Best depth: 5 (validation accuracy 0.887)
Test accuracy: 0.750

そして、次のようなグラフが描画されます。続いてCoddyがあなたのグラフを説明します。

コーヒー豆のバッチ:深さの選択。訓練データの線は0.69からほぼ1.0まで上昇します。検証データの線は深さ5で0.89のピークに達した後、0.78まで下降します。深さ5の位置に破線があり、その上の0.75(テストスコア)の位置に赤い星印があります。

自分で試してみよう

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オンラインコンパイラ