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:
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.
Tantangan
SedangApakah 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.
- Hitung skor setiap pohon dalam forest pada baris pengujian.
- Buat histogram skor dengan
bins=10, lalu tandaiforest_accdengan garis vertikal merah. - Cetak jumlah pohon yang dikalahkan forest.
Perjalanan lain mencetak The forest beats 88 of its 100 trees dan menghasilkan grafik ini:
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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Terawasi
1Model Pertamamu
Belajar dari ContohData Latih dan Data UjiMelatih dan MemprediksiMenilai ModelRangkuman: Penyortir Benih4Regresi Logistik
Prediksi Ya atau TidakAmbang KeputusanBobot sebagai BuktiBeberapa KelasRangkuman: Filter Spam2Tetangga Terdekat
Cara k-NN MenentukanMemilih kBatas KeputusanPenskalaan untuk TetanggaRingkasan: Tetangga Wine5Mengukur Model Klasifikasi
Matriks KonfusiPresisi dan RecallSkor F1Kelas Tidak SeimbangKurva ROCRangkuman: Tes SkriningLatihan sendiri: Compiler Python online