Daftar Isi:
- Memuat data Anda
- Line 1 mengimpor perpustakaan yang memungkinkan Anda membagi dataset menjadi dua bagian.
- array ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> y_test
- Benar], dtype = bool)
Video: Penjelasan AI ( Artificial Intelligence ) - HD 2024
Model hutan acak adalah model ensemble yang dapat digunakan dalam analisis prediktif; dibutuhkan ansambel (seleksi) pohon keputusan untuk membuat modelnya. Idenya adalah untuk mengambil sampel acak dari peserta didik yang lemah (subset acak dari data pelatihan) dan minta mereka memilih untuk memilih model terkuat dan terbaik. Model hutan acak dapat digunakan untuk klasifikasi atau regresi. Dalam contoh berikut, model hutan acak digunakan untuk mengklasifikasikan spesies Iris.
Memuat data Anda
Daftar kode ini akan memuat dataset
iris
ke sesi Anda: >>>> dari sklearn. dataset import load_iris >>>> iris = load_iris ()
Membuat sebuah instance dari classifier
Dua baris kode berikut membuat sebuah instance dari classifier. Baris pertama mengimpor perpustakaan hutan acak. Baris kedua menciptakan sebuah instance dari algoritma hutan acak:
>>>> dari sklearn. ansambel import RandomForestClassifier >>>> rf = RandomForestClassifier (n_estimators = 15,
random_state = 111)
Parameter
n_estimators
pada konstruktor adalah parameter tuning yang umum digunakan untuk model hutan acak. Nilai tersebut digunakan untuk membangun jumlah pohon di hutan. Ini umumnya antara 10 dan 100 persen dataset, namun bergantung pada data yang Anda gunakan. Di sini, nilainya ditetapkan pada 15, yaitu 10 persen dari data. Nantinya, Anda akan melihat bahwa mengubah nilai parameter menjadi 150 (100 persen) menghasilkan hasil yang sama.
The n
_estimators
digunakan untuk menyempurnakan kinerja model dan overfitting. Semakin besar nilainya, semakin baik kinerjanya namun dengan biaya overfitting. Semakin kecil nilainya, semakin tinggi kemungkinan tidak overfitting namun dengan biaya kinerja yang lebih rendah. Juga, ada satu titik di mana peningkatan jumlah pada umumnya akan menurunkan akurasi dan mungkin secara dramatis meningkatkan daya komputasi yang dibutuhkan. Parameter default ke 10 jika dihilangkan dalam konstruktor.
Anda harus membagi kumpulan data ke dalam rangkaian tes dan pelatihan sebelum membuat instance dari penggolong hutan acak. Kode berikut akan menyelesaikan tugas itu: >>>> dari sklearn import cross_validation >>>> X_train, X_test, y_train, y_test =
cross_validation. train_test_split (iris data,
target iris, test_size = 0, 10, random_state = 111) >>>> rf = rf. fit (X_train, y_train)
Line 1 mengimpor perpustakaan yang memungkinkan Anda membagi dataset menjadi dua bagian.
Baris 2 memanggil fungsi dari perpustakaan yang membagi dataset menjadi dua bagian dan menetapkan kumpulan data yang sekarang terbagi menjadi dua pasang variabel.
Baris 3 mengambil contoh penggolong hutan acak yang baru Anda buat, lalu memanggil metode yang sesuai untuk melatih model dengan dataset pelatihan.
Menjalankan data uji
Pada kode berikut, baris pertama memberi umpan pada dataset tes ke model, maka baris ketiga menampilkan outputnya: >>>> predict = rf. prediksikan (X_test) >>>> prediksi
array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 2]) > Mengevaluasi model
Anda dapat melakukan referensi silang output dari prediksi terhadap array
- y_test
- . Akibatnya, Anda dapat melihat bahwa prediksi dua titik data uji salah. Jadi keakuratan model hutan acak adalah 86. 67 persen.
- Inilah kodenya: >>>> dari metrik impor sklearn >>>> prediksi
array ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> y_test
array ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>>> metrik. accuracy_score (y_test, diprediksi)
0. 8666666666666767 # 1. 0 adalah akurasi 100 persen >>>> prediksi == y_test
array (Benar, Benar, Benar, Benar, Salah, Benar, Benar
Benar, Benar, Benar, Benar, Benar, Salah, Benar,
Benar], dtype = bool)
Bagaimana model hutan acak tampil jika Anda mengubah parameter
n_estimators
menjadi 150? Sepertinya tidak akan membuat perbedaan untuk dataset kecil ini. Ini menghasilkan hasil yang sama: >>>> rf = RandomForestClassifier (n_estimators = 150, random_state = 111) >>>> rf = rf. fit (X_train, y_train) >>>> predict = rf. prediksikan (X_test) >>>> prediksi
array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 2]) >