Menu
CoddyTech

Kedalaman Pohon

Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 29 dari 58.

Pohon dapat terus bertanya sampai setiap baris pelatihan memiliki jawabannya sendiri. Lalu, pohon itu menghafal, bukan belajar:

Akurasi pelatihan dan pengujian pohon dari kedalaman 1 hingga 12 pada data setengah bulan yang berderau. Akurasi pelatihan naik hingga 1.0 pada kedalaman 8, diberi label menghafal. Akurasi pengujian mencapai puncak 0.907 pada kedalaman 6, ditandai dengan garis putus-putus, lalu turun menjadi sekitar 0.87

Pohon yang dalam mempelajari noise dari baris pelatihannya sendiri, sehingga akurasi pengujian mencapai puncaknya, lalu menurun. Coba beberapa kedalaman:

train = []
test = []
for d in range(1, 13):
    tree = DecisionTreeClassifier(max_depth=d, random_state=0)
    tree.fit(X_train, y_train)
    train.append(tree.score(X_train, y_train))
    test.append(tree.score(X_test, y_test))

Di bulan-bulan ini, kedalaman 6 bekerja paling baik pada baris baru: pertahankan untuk saat ini. Mulai kedalaman 8, pohon ini sempurna pada baris yang dihafalnya, tetapi lebih buruk pada baris lainnya.

challenge icon

Tantangan

Sedang

Sebuah survei teleskop mengelompokkan objek langit menjadi bintang dan galaksi. Kode awal membagi data dan menyiapkan grafik.

  1. Untuk setiap kedalaman dalam depths, latih sebuah pohon (random_state=0) dan simpan kedua akurasi.
  2. Cetak kedalaman dengan akurasi pengujian terbaik seperti di bawah ini.
  3. Buat plot kedua garis, beri label train dan test, tandai kedalaman terbaik dengan ax.axvline putus-putus, tambahkan legenda, lalu tampilkan.

Untuk penyortir mangga:

Best depth: 5, test accuracy 0.867

Lalu Coddy menjelaskan grafikmu. Grafik mereka terlihat seperti ini:

Grafik berjudul Matang atau Tidak? dengan kedalaman pohon dari 1 hingga 10: garis train biru naik hingga sekitar 0.98, garis test oranye mencapai puncak mendekati 0.87 pada kedalaman 5 dan terdapat garis vertikal putus-putus di sana, dengan legenda

Coba sendiri

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

# Satu baris untuk setiap objek langit dalam survei teleskop: nilai 1 pada galaxy berarti galaksi, nilai 0 berarti bintang
sky = pd.read_csv("sky.csv")
features = ["brightness_mag", "size_arcsec", "roundness", "color_index"]
X_train, X_test, y_train, y_test = train_test_split(sky[features], sky["galaxy"], test_size=0.25, random_state=0)
depths = range(1, 11)

fig, ax = plt.subplots()
ax.set_title("Star or Galaxy?")
ax.set_xlabel("Tree depth")
ax.set_ylabel("Accuracy")

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Terawasi

Latihan sendiri: Compiler Python online