Menu
CoddyTech

Mengapa Random Forest Berfungsi

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

Pohon-pohon dalam sebuah forest sengaja dibuat berbeda. Setiap pohon dilatih menggunakan sampel bootstrap: baris yang diambil secara acak dengan pengembalian, sehingga beberapa baris terpilih berulang kali dan beberapa lainnya tidak terpilih.

Setiap pertanyaan juga memilih beberapa fitur secara acak. Setiap pohon membuat kesalahan yang berbeda, lalu suara terbanyak mengimbanginya. Dua spesies kunang-kunang:

Dua grafik berisi 150 kunang-kunang, durasi kilatan pada sumbu mendatar dan jeda pada sumbu tegak, lingkaran biru untuk satu spesies dan segitiga merah untuk spesies lainnya. Kiri, satu pohon: garis batasnya memiliki jalur-jalur tipis yang menjulur hingga ke kunang-kunang tunggal. Kanan, hutan dengan 100 pohon: satu garis batas mulus di antara kedua kelompok

Hutan hanya menyimpan strip ketika sebagian besar pohon memberikan hasil yang sama.

Pohon-pohon tersebut berada di forest.estimators_:

third = forest.estimators_[2]
print(round(third.score(X_test, y_test), 3))

Ini mencetak 0.737. Seluruh forest mendapat skor 0.895.

challenge icon

Tantangan

Sedang

Apakah forest mengungguli pohon-pohonnya sendiri? Kode awal melatih forest menggunakan riders.csv, yang berisi data pengendara yang menyelesaikan atau tidak menyelesaikan perjalanan sejauh 160 km dalam waktu kurang dari 6 jam, lalu menyiapkan grafik.

  1. Hitung skor setiap pohon dalam forest pada baris pengujian.
  2. Buat histogram skor dengan bins=10, lalu tandai forest_acc dengan garis vertikal merah.
  3. Cetak jumlah pohon yang dikalahkan forest.

Perjalanan lain mencetak The forest beats 88 of its 100 trees dan menghasilkan grafik ini:

Histogram berjudul The Forest and Its Trees: akurasi pengujian pohon berkisar dari sekitar 0.53 hingga 0.85, sebagian besar berada di dekat 0.70, dan garis vertikal merah berada di dekat 0.77, di sebelah kanan sebagian besar batang

Coddy kemudian menjelaskan grafikmu.

Coba sendiri

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

# Peserta bersepeda amal sejauh 160 km: selesai dalam waktu kurang dari 6 jam (1) atau tidak (0)
riders = pd.read_csv("riders.csv")
features = ["weekly_km", "long_ride_km", "age", "years_riding", "rest_days", "sleep_hours"]
X = riders[features].to_numpy()  # array biasa, bentuk yang diharapkan oleh pohon-pohon dalam forest
y = riders["under_6h"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

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

fig, ax = plt.subplots()
ax.set_title("The Forest and Its Trees")
ax.set_xlabel("Test accuracy")
ax.set_ylabel("Trees")

# 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