Menu
CoddyTech

Membaca Pohon

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

Pertanyaan pada pohon mudah dibaca, jadi kamu bisa memeriksa apa yang telah dipelajarinya. Ikuti bunga yang panjangnya 5.1 cm dan lebarnya 1.6 cm pada pohon iris:

Pohon iris berupa kotak-kotak dengan satu jalur menyala oranye: lebar kelopak 0.80 atau kurang? Tidak, 1.6. Panjang kelopak 4.95 atau kurang? Tidak, 5.1. Jalur berakhir di class 2

export_text mencetak pertanyaan yang sama sebagai teks, dengan satu indentasi untuk setiap tingkat:

from sklearn.tree import export_text

print(export_text(tree, feature_names=["petal_length", "petal_width"]))

Ini mencetak:

|--- petal_width <= 0.80
|   |--- class: 0
|--- petal_width >  0.80
|   |--- petal_length <= 4.95
|   |   |--- class: 1
|   |--- petal_length >  4.95
|   |   |--- class: 2

Setiap baris hanya menjawab pertanyaan pada jalurnya sendiri. Class 2 adalah virginica, jawaban yang masuk akal untuk kelopak yang panjang dan lebar.

challenge icon

Tantangan

Sedang

Pohon di toko keju menentukan apakah keju termasuk fresh, soft, atau hard berdasarkan kandungan air dan lama pemeramannya dalam minggu. Kode awal melatih pohon tersebut dan membaca data keju baru.

  1. Cetak pertanyaan pohon beserta nama fiturnya.
  2. Jalankan pohon, baca pertanyaannya, lalu lengkapi by_hand agar menanyakan hal yang sama dengan if/else dan mengembalikan jawaban yang sama.

Setelah hasil cetak, untuk keju yang disebut soft oleh pohon:

By hand: soft
The tree: soft

Coba sendiri

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text

# Satu baris untuk setiap keju: kadar air (%), lama pematangan dalam minggu, dan jenisnya
cheeses = pd.read_csv("cheeses.csv")
features = ["moisture_pct", "aged_weeks"]
X_train, X_test, y_train, y_test = train_test_split(cheeses[features], cheeses["cheese"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train)

# Keju baru yang perlu diberi nama
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)

# Tulis kodemu di bawah: tampilkan pohonnya, lalu buat by_hand memberikan jawaban seperti pohon tersebut


def by_hand(moisture, aged):
    return "fresh"


# Jangan ubah baris-baris di bawah
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
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