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:
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.
Tantangan
SedangSebuah 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.
- Latih forest dengan jumlah pohon tersebut (
random_state=0) dan cetak akurasi pengujiannya. - 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.120Lalu 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
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