Program
Regresi Random Forest adalah salah satu cara paling andal untuk memodelkan data tabular nonlinier dengan penyiapan minimal. Metode ini memberi Anda model yang siap pakai dengan cepat, bahkan ketika data berisik atau hubungan tidak terdefinisi dengan jelas.
Panduan ini membawa Anda melalui alur kerja lengkap Regresi Random Forest. Anda akan memahami cara kerja algoritme dan mengimplementasikannya di Python. Kami juga akan membahas teknik evaluasi dan penyetelan untuk kinerja yang lebih baik.
Apa Itu Regresi Random Forest?
Regresi random forest adalah teknik ensemble yang membangun banyak pohon keputusan teracak dan menggabungkan keluarannya untuk menghasilkan prediksi kontinu. Alih-alih mengandalkan satu model, teknik ini mengumpulkan prediksi dari banyak pohon, biasanya dengan mengambil rata-rata keluarannya.

Mengapa banyak pohon? Satu pohon keputusan cenderung overfit. Pohon tersebut menangkap noise bersamaan dengan sinyal, terutama saat bekerja dengan data dunia nyata yang berantakan.
Bootstrap aggregating dan keacakan fitur
Kekuatan model Regresi Random Forest berasal dari cara ia memperkenalkan keacakan di setiap langkah lalu menggabungkan hasil untuk mengurangi varians. Mari bahas mekanisme internal ini.
Bootstrap aggregating, atau bagging, melatih setiap pohon pada subset data acak yang berbeda. Ini memperkenalkan variasi antar pohon dan mengurangi risiko overfitting.
Keacakan fitur menambah lapisan keragaman lain dengan memilih subset fitur secara acak di setiap pemisahan. Bersama-sama, teknik ini menstabilkan prediksi dan meningkatkan generalisasi.
Bootstrap sampling dan keacakan fitur
Random Forest dimulai dengan bootstrap sampling, juga dikenal sebagai bagging. Setiap pohon dilatih pada subset acak dari dataset asli. Akibatnya, pohon mempelajari pola yang berbeda alih-alih mengulang struktur yang sama.
Model juga memperkenalkan keacakan fitur. Pada setiap pemisahan, model hanya mempertimbangkan subset fitur acak alih-alih semua fitur yang tersedia. Ini mencegah beberapa fitur dominan mengendalikan setiap pohon.
Bersama-sama, bagging dan keacakan fitur menciptakan sekumpulan pohon yang tidak berkorelasi yang membuat kesalahan berbeda, sehingga ketika digabungkan, prediksi mereka menetralkan noise dan meningkatkan akurasi keseluruhan.
Menumbuhkan pohon dan mengagregasi prediksi
Setiap pohon di dalam hutan tumbuh dalam, sering kali tanpa pemangkasan. Ini memungkinkan model menangkap pola kompleks, interaksi, dan hubungan nonlinier dalam data.
Pohon-pohon individual ini mungkin overfit, tetapi efek itu berkurang saat Random Forest mengagregasi keluaran mereka untuk hasil akhir.
Trade-off bias-varians
Random forest menyeimbangkan dua faktor kunci: kekuatan pohon individual dan keragaman hutan.
Pohon yang dalam memiliki bias rendah karena dapat menyesuaikan data latih dengan erat. Pada saat yang sama, keacakan dalam pengambilan sampel data dan pemilihan fitur mengurangis korelasi antar pohon. Dengan merata-ratakan banyak pohon bias rendah yang berkorelasi lemah, model mengurangi varians keseluruhan tanpa meningkatkan bias.
Pra-pemrosesan Data dan Alur Implementasi
Berikutnya, kita akan mempraktikkan konsep-konsep ini dan melihat teknik untuk mengubah data mentah menjadi model Random Forest yang berfungsi.
Pembersihan data dan rekayasa fitur
Persiapan data untuk model Random Forest biasanya dimulai dengan menangani variabel kategorikal.
- Untuk kategori kecil, one-hot encoding bekerja dengan baik dan andal
- Untuk fitur dengan kardinalitas tinggi, target encoding sering kali lebih efisien, karena menangkap sinyal tingkat kategori tanpa secara signifikan meningkatkan dimensi
Berikutnya adalah data hilang. Pendekatannya bergantung pada pustaka yang Anda gunakan. Beberapa implementasi dapat menangani nilai hilang secara langsung saat pemisahan, sementara yang lain mengharuskan Anda mengisinya. Dalam banyak kasus, imputasi sederhana menggunakan median atau modus sudah cukup. Karena Random Forest tidak bergantung pada distribusi yang ketat, metode langsung ini terbukti baik dalam praktik.
Pada akhirnya, dampak terbesar datang dari rekayasa fitur. Misalnya, variabel lag memperkenalkan dependensi temporal, agregat rolling menangkap tren lokal, dan statistik berkelompok mengenkode pola tingkat lebih tinggi. Fitur yang direkayasa ini memungkinkan model merepresentasikan informasi dengan lebih baik dan meningkatkan performa prediksi.
Untuk pembahasan lebih mendalam, saya sarankan membaca tutorial Feature Engineering dalam Machine Learning saya.
Menetapkan baseline dan strategi pemisahan
Sebelum menyetel apa pun, langkah pertama adalah membagi data dengan benar.
Untuk masalah tabular standar, itu biasanya berarti memisahkan dataset menjadi set train, validasi, dan uji sehingga model dilatih pada satu bagian, disetel pada bagian lain, dan dievaluasi pada bagian akhir yang tidak tersentuh.
Pemisahan itu penting karena memberi gambaran realistis tentang bagaimana model akan berperilaku pada data baru.

Untuk deret waktu, strategi pemisahan berubah. Pemisahan acak dapat membocorkan informasi masa depan ke masa lalu, yang membuat kinerja terlihat lebih baik daripada yang sebenarnya.
Walk-forward validation menghindari masalah itu dengan melatih pada jendela waktu awal, memvalidasi pada jendela berikutnya, lalu bergerak maju selangkah demi selangkah. Itu menjaga evaluasi selaras dengan cara model sebenarnya akan digunakan di produksi.
Menulis implementasi Python ujung-ke-ujung
Implementasi mengikuti alur sederhana scikit-learn:
- Impor model
- Bagi data
- Fit estimator
- Hasilkan prediksi
- Evaluasi keluaran
Penyiapan tipikal terlihat seperti ini dalam praktik:
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, root_mean_squared_error
import matplotlib.pyplot as plt
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = RandomForestRegressor(random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
rmse = root_mean_squared_error(y_test, y_pred)
Setelah model dilatih dan dievaluasi, langkah berikutnya adalah memvisualisasikan nilai prediksi terhadap nilai aktual.
Scatter plot memudahkan untuk melihat bias sistematis, seperti prediksi yang secara konsisten melebihi atau kurang dari target. Ini juga membantu mengungkap heteroskedastisitas, di mana kesalahan prediksi melebar saat nilai target meningkat.
Penyetelan Hyperparameter dan Evaluasi
Setelah model dilatih, langkah berikutnya adalah menyetel parameter kunci dan mengevaluasi kinerja. Berikut teknik-teknik yang populer:
Memilih dan menafsirkan metrik regresi
Root mean squared error (RMSE), mean average error (MAE), dan R² masing-masing mengukur kinerja dengan cara yang berbeda.
- RMSE memberikan penalti lebih besar pada kesalahan besar karena mengkuadratkan residual. Ini berguna ketika kesalahan besar mahal dan perlu diminimalkan
- MAE memperlakukan semua kesalahan secara setara, sehingga memberikan pandangan yang lebih stabil ketika data mengandung pencilan atau ketika kesalahan rata-rata yang konsisten lebih penting daripada lonjakan sesekali
- R² mengukur seberapa banyak varians pada target yang dijelaskan model, yang membantu membandingkan kecocokan keseluruhan tetapi tidak secara langsung mencerminkan kesalahan prediksi
Di luar metrik agregat, analisis kesalahan memberi wawasan yang lebih dalam. Residual, didefinisikan sebagai selisih antara nilai aktual dan prediksi, harus diperiksa di berbagai irisan data.
Memplot residual terhadap nilai prediksi atau target aktual membantu mengungkap pola. Misalnya, jika kesalahan meningkat seiring pertumbuhan nilai target, itu menunjukkan heteroskedastisitas. Jika prediksi secara konsisten berada di atas atau di bawah garis diagonal, itu menunjukkan bias sistematis.
Mengiris kesalahan berdasarkan grup fitur atau rentang target juga membantu mengidentifikasi mode kegagalan. Model mungkin berkinerja baik pada nilai menengah tetapi kesulitan pada nilai ekstrem, atau mungkin berperilaku berbeda di berbagai segmen data.
Menggunakan evaluasi out-of-bag (OOB)
Random Forest menyediakan mekanisme validasi bawaan melalui pengambilan sampel out-of-bag. Karena setiap pohon dilatih pada sampel bootstrap, sebagian data ditinggalkan dan tidak terlihat saat pelatihan. Sampel out-of-bag ini dapat digunakan untuk mengevaluasi model tanpa membuat set validasi terpisah. Inilah yang ditangkap oleh skor OOB.

Namun, evaluasi OOB tidak selalu cukup. Untuk validasi model akhir, terutama dalam skenario berisiko tinggi atau ketika kebocoran data menjadi perhatian, diperlukan set uji hold-out yang ketat.
Memprioritaskan hyperparameter kunci untuk disetel
Dalam Random Forest, parameter max_features dan n_estimators biasanya mendorong perubahan kinerja yang paling terlihat.
-
max_featuresmengontrol jumlah maksimum fitur yang dipertimbangkan pada setiap pemisahan. Nilai yang lebih rendah meningkatkan keacakan dan mengurangi korelasi antar pohon, yang dapat meningkatkan generalisasi. Nilai yang lebih tinggi membuat pohon lebih kuat namun lebih mirip, yang berpotensi meningkatkan varians. -
n_estimatorsmengontrol jumlah pohon dalam hutan. Meningkatkannya biasanya meningkatkan kinerja dengan menstabilkan prediksi, tetapi juga meningkatkan waktu komputasi. Di luar titik tertentu, peningkatan menjadi marginal, sehingga penting untuk mengidentifikasi titik datar tersebut.
Parameter-parameter ini harus disetel menggunakan cross-validation untuk menyeimbangkan kompleksitas model, waktu pelatihan, dan performa prediktif.
Pentingnya Fitur dan Interpretabilitas
Model Random Forest sering diperlakukan sebagai kotak hitam, tetapi model ini menyediakan beberapa cara untuk memahami bagaimana fitur memengaruhi prediksi. Mari lihat beberapa yang penting.
Pentingnya berbasis impuritas
Random Forest menghitung pentingnya fitur menggunakan Mean Decrease in Impurity (MDI). Setiap kali sebuah fitur digunakan untuk membagi node, model mengukur seberapa besar pemisahan itu mengurangi impuritas, seperti varians pada tugas regresi. Pengurangan ini diakumulasikan di seluruh pohon, memberikan skor yang mencerminkan seberapa besar kontribusi fitur dalam meningkatkan prediksi.
Walaupun metode ini cepat dan tertanam dalam model, ada keterbatasan yang diketahui. MDI cenderung memihak fitur kontinu atau fitur kategorikal dengan banyak nilai unik. Fitur-fitur ini menciptakan lebih banyak titik pemisahan potensial, yang dapat membengkakkan skor kepentingannya meskipun sebenarnya tidak lebih prediktif.
Pentingnya permutasi
Permutation importance mengukur bagaimana kinerja berubah saat nilai suatu fitur diacak secara acak dalam dataset hold-out. Jika pengacakan sebuah fitur secara signifikan menurunkan kinerja, fitur tersebut penting. Jika dampaknya kecil, fitur tersebut kemungkinan memiliki nilai prediktif yang terbatas.
Pendekatan ini mencerminkan perilaku model yang sebenarnya, sehingga lebih dapat dipercaya untuk analisis.
Namun, fitur yang berkorelasi memperkenalkan kompleksitas. Ketika dua fitur membawa informasi serupa, mengacak salah satunya mungkin tidak berdampak signifikan pada kinerja karena yang lain masih menyediakan sinyal. Akibatnya, kepentingan dapat terbagi di antara fitur yang berkorelasi, yang memerlukan interpretasi hati-hati.
Nilai SHAP
Nilai SHAP (Shapley Additive Explanations) menjelaskan seberapa besar setiap fitur berkontribusi pada prediksi individual. Metode ini memberikan nilai pada setiap fitur yang merepresentasikan seberapa jauh fitur tersebut mendorong prediksi di atas atau di bawah baseline.
Metode ini sering digunakan untuk menjelaskan keputusan model dan membangun kepercayaan. Untuk pembahasan lebih dekat, baca tutorial Nilai SHAP dalam Machine Learning kami.
Keterbatasan dan Kasus Kegagalan Umum
Regresi Random Forest andal di banyak skenario, tetapi memiliki keterbatasan yang jelas. Memahaminya membantu Anda memutuskan kapan menggunakannya dan kapan beralih ke pendekatan lain.
Batas ekstrapolasi dan kasus tepi
Random Forest tidak dapat mengekstrapolasi di luar rentang data latih.
Setiap pohon membuat prediksi berdasarkan pemisahan yang diamati selama pelatihan, sehingga keluaran akhir selalu dibatasi oleh nilai target minimum dan maksimum yang terlihat dalam dataset. Jika model hanya melihat target antara 10 dan 100, model tidak dapat memprediksi 120, sekuat apa pun sinyal masukan. Ini menjadi masalah dalam skenario seperti peramalan pertumbuhan atau sistem yang didorong tren.
Model juga kesulitan dengan data jarang berdimensi sangat tinggi, seperti representasi teks atau vektor one-hot dengan ribuan kolom. Dalam kasus ini, pohon menjadi tidak efisien dan gagal menangkap pemisahan yang bermakna. Solusi praktis mencakup
- Reduksi dimensi
- Seleksi fitur
- Menggunakan model yang dirancang untuk masukan jarang, seperti Regresi Ridge
Trade-off interpretabilitas
Satu pohon memberikan jalur yang jelas dari masukan ke prediksi, sehingga mudah dijelaskan. Sebaliknya, sebuah hutan mengagregasi ratusan pohon, membuat keputusan individual lebih sulit dilacak.
Di lingkungan yang sangat teregulasi, trade-off ini penting. Jika penjelasan harus sederhana dan langsung dapat ditelusuri, satu pohon keputusan atau model linear mungkin lebih tepat. Jika kinerja menjadi prioritas dan penjelasan dapat didukung melalui metode seperti pentingnya fitur atau SHAP, Random Forest tetap menjadi opsi yang kuat.
Kendala komputasi, memori, dan latensi
Random Forest diskalakan secara linear dengan jumlah pohon dan ukuran data. Seiring pertumbuhan dataset, waktu pelatihan dan penggunaan memori meningkat karena setiap pohon harus dibangun dan disimpan. Hutan besar juga dapat memperlambat inferensi, karena prediksi memerlukan pengagregasian keluaran dari semua pohon.
Dalam sistem produksi dengan batasan latensi atau biaya yang ketat, ini dapat menjadi hambatan. Mengurangi jumlah pohon, membatasi kedalaman pohon, atau membatasi jumlah fitur yang dipertimbangkan pada setiap pemisahan dapat membantu mengendalikan penggunaan sumber daya. Penyesuaian ini menukar sebagian akurasi untuk waktu pelatihan dan prediksi yang lebih cepat.
Regresi Random Forest vs. Alternatif: Cara Memilih
Anda mungkin bertanya-tanya apakah Regresi Random Forest adalah algoritme yang tepat untuk kasus penggunaan Anda, atau alternatif mana yang harus dipertimbangkan.
Membuat kerangka perbandingan model
Kasus penggunaan berbeda-beda, tetapi satu pendekatan selalu membantu: Bandingkan kinerja berbagai model (seperti regresi linear, support vector regression, gradient boosting, dll.) pada dataset yang sama berdampingan dengan Random Forest Regressor.
Itu berarti gunakan pembagian train, validasi, dan uji yang persis sama untuk setiap model, lalu evaluasi di bawah kriteria kesalahan dan asumsi bisnis yang sama.
Regresi random forest vs. regresi linear dan support vector regression
Random Forest dan regresi linear menyelesaikan masalah yang sangat berbeda. Regresi linear bekerja paling baik ketika hubungan antara masukan dan target sebagian besar linear, dan koefisiennya perlu mudah dijelaskan. Ini juga pilihan yang lebih baik ketika ekstrapolasi ketat penting, karena dapat melampaui rentang target yang diamati.
Sebaliknya, Random Forest lebih baik dalam pola nonlinier, interaksi fitur, dan batas yang tidak beraturan. Ini menjadikannya alat pemodelan yang lebih kuat untuk sistem dunia nyata yang kompleks, tetapi opsi yang lebih lemah untuk peramalan yang sarat tren.
Support vector regression (SVR) berada di sudut yang berbeda. Ia dapat berkinerja baik pada dataset kecil, tetapi jauh lebih sensitif terhadap penskalaan fitur dan biasanya memerlukan penyetelan yang lebih cermat. Random Forest tidak bergantung pada masukan yang distandardisasi, sehingga lebih mudah digunakan dalam alur kerja tabular khas.
SVR bisa menjadi opsi yang kuat ketika dataset kompak dan ruang fitur terbatas, tetapi menjadi lebih sulit dipertahankan saat volume data, kompleksitas fitur, atau tekanan operasional meningkat.
Regresi random forest vs. gradient boosting dan satu pohon keputusan
Random Forest membangun pohon secara independen dan merata-ratakan keluarannya. Gradient boosting membangun pohon secara berurutan, di mana setiap pohon baru mengoreksi kesalahan pohon sebelumnya.
Metode gradient boosting, seperti XGBoost, biasanya mencapai batas akurasi yang lebih tinggi, terutama pada data tabular terstruktur. Namun, metode ini memerlukan penyetelan lebih banyak dan lebih sensitif terhadap hyperparameter. Pelatihan juga bisa lebih lambat karena sifat boosting yang berurutan. Random Forest lebih mudah dilatih, lebih stabil sejak awal, dan kurang sensitif terhadap konfigurasi.
Dibandingkan dengan satu pohon keputusan, Random Forest jauh lebih stabil dan akurat. Satu pohon mudah diinterpretasikan karena Anda dapat menelusuri setiap jalur keputusan, tetapi sangat sensitif terhadap perubahan kecil pada data. Random Forest mengurangi ketidakstabilan ini dengan merata-ratakan banyak pohon, namun kehilangan interpretabilitas langsung.
Ringkasan perbandingan model
|
Model |
Menangani nonlinieritas |
Ekstrapolasi |
Interpretabilitas |
Kompleksitas penyetelan |
Biaya pelatihan |
|
Regresi Random Forest |
Kuat |
Lemah |
Sedang |
Moderate |
Moderate |
|
Regresi Linear |
Lemah hingga Sedang |
Kuat |
Tinggi |
Rendah |
Rendah |
|
Support Vector Regression |
Kuat |
Lemah hingga Sedang |
Rendah |
Tinggi |
Tinggi(pada data besar) |
|
Gradient Boosting (XGBoost) |
Sangat Kuat |
Lemah |
Rendah hingga Sedang |
Tinggi |
Tinggi |
|
Satu Pohon Keputusan |
Sedang |
Lemah |
Tinggi |
Rendah |
Rendah |
Penutup
Regresi Random Forest bekerja paling baik sebagai model default ketika data berantakan, hubungan bersifat nonlinier, dan Anda memerlukan baseline yang kuat tanpa pra-pemrosesan berat. Model ini menangani tipe fitur campuran, menangkap interaksi, dan memberikan kinerja stabil dengan penyiapan minimal.
Alur kerja tipikal mengikuti progres yang jelas. Mulailah dengan pra-pemrosesan minimal dan fokus pada penataan data dengan benar. Bangun baseline menggunakan model Random Forest default dan evaluasi dengan metrik yang konsisten. Dari sana, setel hyperparameter kunci seperti jumlah pohon dan strategi pengambilan sampel fitur untuk meningkatkan kinerja.
Setelah model stabil, lanjutkan ke evaluasi yang lebih dalam dengan menganalisis residual, mengiris kesalahan, dan menggunakan SHAP untuk menjelaskan prediksi jika diperlukan.
Sebagai langkah berikutnya, untuk pemahaman mendalam dan praktik langsung, lihat kursus Machine Learning with Tree-Based Models in Python ini.
FAQ Regresi Random Forest
Apa keterbatasan model Random Forest?
Random Forest tidak dapat mengekstrapolasi di luar rentang data latih dan mungkin kesulitan dengan dataset jarang berdimensi sangat tinggi. Model ini juga kurang dapat diinterpretasikan dibanding satu pohon keputusan dan dapat menjadi mahal secara komputasi seiring bertambahnya jumlah pohon.
Bagaimana saya tahu apakah model Random Forest saya overfitting?
Bandingkan kinerja pelatihan dan validasi. Jika kesalahan pelatihan rendah tetapi kesalahan validasi secara signifikan lebih tinggi, model mengalami overfitting. Anda juga dapat memeriksa apakah peningkatan kedalaman pohon tidak memperbaiki metrik validasi.
Apakah XGBoost atau Random Forest yang lebih baik?
XGBoost biasanya mencapai akurasi lebih tinggi karena membangun pohon secara berurutan dan mengoreksi kesalahan di setiap langkah. Ini bekerja paling baik ketika Anda dapat menginvestasikan waktu untuk penyetelan hyperparameter. Di sisi lain, Random Forest membangun pohon secara independen dan merata-ratakan prediksinya. Model ini lebih stabil, memerlukan penyetelan lebih sedikit, dan berkinerja baik sebagai baseline.
Bisakah Random Forest menangani data deret waktu?
Tidak secara langsung. Anda perlu mengonversi deret waktu ke format tabular menggunakan fitur lag, statistik rolling, atau transformasi berbasis jendela sebelum melatih.
Srujana adalah penulis lepas di bidang teknologi dengan gelar sarjana Ilmu Komputer. Menulis tentang berbagai topik, termasuk data science, komputasi awan, pengembangan, pemrograman, keamanan, dan banyak lainnya adalah hal yang alami baginya. Ia menyukai sastra klasik dan menjelajahi destinasi baru.
