Menu
CoddyTech

Random Forest

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

Satu decision tree mudah berubah: ubah beberapa baris data pelatihan, lalu pertanyaannya pun berubah. Bab ini membuat tree lebih stabil dengan menggabungkan banyak decision tree.

random forest melatih banyak pohon dan membiarkannya memilih. Di sini tujuh pohon menjawab untuk satu geiser:

Tujuh pohon kecil berjajar, masing-masing dengan suaranya di bawah: ya, ya, tidak, ya, ya, tidak, ya. Panah mengarah dari setiap suara ke satu kotak bertuliskan Forest: ya, 5 suara berbanding 2

Dalam kode, ada satu model lagi yang perlu dilatih:

from sklearn.ensemble import RandomForestClassifier

forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(forest.score(X_test, y_test))

Pada 300 hari geyser, ini mencetak 0.893, dengan satu pohon memperoleh skor 0.813. n_estimators adalah jumlah pohon.

Banyak pemilih, lebih sedikit kesalahan.

challenge icon

Tantangan

Sedang

Sebuah sekolah anjing pemandu ingin mengetahui sejak awal anak anjing mana yang akan memenuhi syarat. Kode awal membagi puppies.csv, menilai satu pohon, dan membaca jumlah pohon.

  1. Latih forest dengan jumlah pohon tersebut (random_state=0) dan cetak akurasi pengujiannya.
  2. Cetak model mana yang menang dan selisihnya, atau A tie.

Untuk sekolah lain dan 50:

Single tree: 0.740
Forest: 0.860
The forest wins by 0.120

Lalu coba 1: forest dengan satu pohon ternyata berkinerja buruk. Pelajaran berikutnya menjelaskan alasannya.

Coba sendiri

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier

# Anak anjing di sekolah anjing pemandu: ketenangan, fokus, dan reaksi terkejut terhadap suara keras (1 hingga 10),
# berat badan, jumlah bulan bersama keluarga pengasuh, dan kelayakan sebagai anjing pemandu (1) atau tidak (0)
puppies = pd.read_csv("puppies.csv")
X = puppies[["calmness", "focus", "noise_startle", "weight_kg", "months_with_family"]]
y = puppies["qualified"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())

# Jangan ubah baris di bawah ini: satu pohon keputusan yang harus kamu kalahkan
tree = DecisionTreeClassifier(random_state=0)
tree.fit(X_train, y_train)
tree_acc = tree.score(X_test, y_test)
print(f"Single tree: {tree_acc:.3f}")

# 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