Unit ini membahas topik berikut:
- menafsirkan hutan acak
- melatih hutan acak
- kelebihan dan kekurangan hutan acak
Menafsirkan hutan acak
Hutan acak lebih sulit ditafsirkan daripada pohon keputusan. Random forest berisi pohon keputusan yang dilatih dengan derau acak. Oleh karena itu, lebih sulit untuk membuat penilaian pada struktur hierarki keputusan. Namun, kita dapat menafsirkan model hutan acak dengan beberapa cara.
Salah satu pendekatan untuk menafsirkan hutan acak adalah dengan melatih dan menafsirkan pohon keputusan dengan algoritma CART. Karena random forest dan CART dilatih dengan algoritma inti yang sama, keduanya "berbagi tampilan global yang sama" dari kumpulan data. Opsi ini berfungsi dengan baik untuk set data sederhana dan untuk memahami interpretasi keseluruhan model.
Pentingnya variabel adalah pendekatan interpretasi yang baik lainnya. Misalnya, tabel berikut memberi peringkat pada variabel penting dari berbagai fitur untuk model random forest yang dilatih pada set data Sensus (juga dikenal sebagai Dewasa).
Tabel 8. Nilai penting variabel dari 14 fitur berbeda.
Fitur | Menjumlahkan skor | Penurunan akurasi rata-rata | Penurunan AUC rata-rata | Rata-rata kedalaman minimum | Jumlah node | Penurunan rata-rata PR-AUC | Num sebagai root |
---|---|---|---|---|---|---|---|
relationship | 4203592,6 |
0,0045 |
0,0172 |
4,970 |
57040 |
0,0093 |
1095 |
capital_gain | 3363045.1 |
0,0199 |
0,0194 |
2,852 |
56468 |
0,0655 |
457 |
marital_status | 3128996,3 |
0,0018 |
0,0230 |
6,633 |
52391 |
0,0107 |
750 |
age | 2520658,8 |
0,0065 |
0,0074 |
4,969 |
356784 |
0,0033 |
200 |
pendidikan | 2015905.4 |
0,0018 |
-0,0080 |
5,266 |
115751 |
-0,0129 |
205 |
pekerjaan | 1939409,3 |
0,0063 |
-0,0040 |
5,017 |
221935 |
-0,0060 |
62 |
education_num | 1673648,4 |
0,0023 |
-0,0066 |
6,009 |
58303 |
-0,0080 |
197 |
fnlwgt | 1564189,0 |
-0,0002 |
-0,0038 |
9,969 |
431987 |
-0,0049 |
0 |
hours_per_week | 1333976,3 |
0,0030 |
0,0007 |
6,393 |
206526 |
-0,0031 |
20 |
capital_loss | 866863,8 |
0,0060 |
0,0020 |
8,076 |
58531 |
0,0118 |
1 |
workclass | 644208.4 |
0,0025 |
-0,0019 |
9,898 |
132196 |
-0,0023 |
0 |
native_country | 538841,2 |
0,0001 |
-0,0016 |
9,434 |
67211 |
-0,0058 |
0 |
seks | 226049,3 |
0,0002 |
0,0002 |
10,911 |
37754 |
-0,0011 |
13 |
ras | 168180,9 |
-0,0006 |
-0,0004 |
11,571 |
42262 |
-0,0031 |
0 |
Seperti yang Anda lihat, definisi kepentingan variabel yang berbeda memiliki skala yang berbeda dan dapat menyebabkan perbedaan dalam peringkat fitur.
Pentingnya variabel yang berasal dari struktur model (misalnya, skor jumlah, kedalaman min rata-rata, jumlah node, dan jumlah sebagai root dalam tabel di atas) dihitung dengan cara yang sama untuk pohon keputusan (lihat bagian "Keranjang | Pentingnya variabel") dan random forest.
Pentingnya variabel permutasi (misalnya, penurunan rata-rata dalam {accuracy, auc, pr-auc} pada tabel di atas) adalah ukuran yang tidak bergantung pada model yang dapat dihitung pada model machine learning apa pun dengan set data validasi. Namun, dengan random forest, Anda dapat menghitung pentingnya variabel permutasi dengan evaluasi out-of-bag, bukan menggunakan set data validasi.
SHAP (SHapley Additive exPlanations) adalah metode agnostik model untuk menjelaskan prediksi individual atau interpretasi berdasarkan model. (Lihat Interpretable Machine Learning oleh Molnar untuk pengantar interpretasi agnostik model.) SHAP biasanya mahal untuk dihitung, tetapi dapat dipercepat secara signifikan untuk hutan keputusan, sehingga merupakan cara yang baik untuk menafsirkan hutan keputusan.
Contoh penggunaan
Pada pelajaran sebelumnya, kita telah melatih hierarki keputusan CART pada set data kecil
dengan memanggil tfdf.keras.CartModel
. Untuk melatih model random forest,
cukup ganti tfdf.keras.CartModel
dengan tfdf.keras.RandomForestModel
:
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
Kelebihan dan kekurangan
Bagian ini berisi ringkasan singkat tentang kelebihan dan kekurangan random forest.
Kelebihan:
- Seperti pohon keputusan, random forest mendukung fitur numerik dan kategoris secara native, serta sering kali tidak memerlukan pra-pemrosesan fitur.
- Karena pohon keputusan bersifat independen, hutan acak dapat dilatih secara paralel. Akibatnya, Anda dapat melatih random forest dengan cepat.
- Random forest memiliki parameter default yang sering kali memberikan hasil yang bagus. Menyesuaikan parameter tersebut sering kali memiliki sedikit efek pada model.
Kekurangan:
- Karena tidak dipangkas, pohon keputusan dapat berukuran besar. Model dengan lebih dari 1 juta node adalah hal yang umum. Ukuran (dan kecepatan inferensi) random forest terkadang dapat menjadi masalah.
- Random forest tidak dapat mempelajari dan menggunakan kembali representasi internal. Setiap hierarki keputusan (dan setiap cabang dari setiap hierarki keputusan) harus mempelajari ulang pola set data. Di beberapa set data, terutama set data non-tabulasi (misalnya gambar, teks), hal ini menyebabkan random forest menghasilkan hasil yang lebih buruk daripada metode lainnya.