Gradient Boosting adalah algoritma machine learning berbasis ensemble yang membangun model prediksi secara bertahap (iteratif), di mana setiap model baru berusaha memperbaiki kesalahan (error) dari model sebelumnya menggunakan gradien dari fungsi loss.
Artinya:
-
Model pertama membuat prediksi kasar.
-
Model kedua memperbaiki kesalahan model pertama.
-
Model ketiga memperbaiki kesalahan model kedua.
-
Dan seterusnya…
Hasil akhirnya adalah prediksi gabungan dari seluruh model kecil (weak learners), biasanya berupa decision tree yang dangkal.
Konsep Inti Gradient Boosting
Untuk memahami Gradient Boosting, ada 3 konsep penting:
1. Boosting (Penguatan)
Boosting adalah teknik ensemble di mana:
-
Model dibangun bertahap, bukan paralel seperti Random Forest.
-
Setiap model baru fokus pada contoh yang sulit diprediksi oleh model sebelumnya.
-
Hasil akhirnya adalah kombinasi dari seluruh model.
Boosting membuat model lebih kuat dari model sederhana (“weak learners”).
2. Gradient Descent (Penurunan Gradient)
Gradient Boosting meminimalkan kesalahan (loss function) menggunakan gradient descent, yaitu:
-
Menghitung arah perubahan (gradien) yang akan mengurangi error.
-
Menggerakkan model ke arah tersebut.
→ Nama “Gradient Boosting” muncul dari gabungan:
Boosting + Gradient Descent
3. Weak Learner (Pembelajar Lemah)
Umumnya yang digunakan adalah:
-
Decision Tree depth 1–5 (shallow tree)
-
Karena cepat dilatih dan mudah dimodifikasi
Setiap tree bertugas belajar dari error model sebelumnya, bukan dari target asli.
Bagaimana Gradient Boosting Bekerja?
Berikut langkah-langkah lengkapnya:
Langkah 1: Mulai dengan model sederhana
Biasanya awalnya adalah rata-rata target (untuk regresi):
F0(x)=mean(y)F_0(x) = \text{mean}(y)
Langkah 2: Hitung residual (error)
Residual adalah selisih antara nilai sebenarnya dan nilai prediksi:
ri=yi−Fm−1(xi)r_i = y_i – F_{m-1}(x_i)
Residual inilah target yang akan dipelajari oleh tree berikutnya.
Langkah 3: Train weak learner untuk mempelajari residual
Kita melatih decision tree untuk memprediksi residual:
hm(x)≈rih_m(x) \approx r_i
Langkah 4: Update model
Model diperbarui dengan menambahkan prediksi tree baru, dikalikan learning rate:
Fm(x)=Fm−1(x)+η⋅hm(x)F_m(x) = F_{m-1}(x) + \eta \cdot h_m(x)
di mana:
-
η\eta = learning rate (0.01 – 0.1 biasanya)
Langkah 5: Ulangi hingga ratusan iterasi
Setiap tree baru hanya mempelajari error dari model sebelumnya.
Hasil akhirnya adalah:
F(x)=F0(x)+∑m=1Mη⋅hm(x)F(x) = F_0(x) + \sum_{m=1}^{M} \eta \cdot h_m(x)
Intuisi Mudahnya
Bayangkan Anda menebak harga rumah:
-
Tebakan pertama: sangat kasar
-
Anda melihat kesalahan tebakan (misal terlalu rendah 50 juta)
-
Anda membuat tebakan baru untuk menutup kekurangan itu
-
Kesalahan semakin kecil
-
Ulangi hingga akurat
Itulah cara Gradient Boosting bekerja.
Kelebihan Gradient Boosting
-
Akurasi tinggi
-
Mampu menangani hubungan non-linear
-
Dapat memakai berbagai fungsi loss
-
Cocok untuk data tabular
Kekurangan
-
Training lebih lambat daripada Random Forest
-
Rentan overfitting tanpa tuning
-
Banyak hyperparameter yang harus disetel
Gradient Boosting Modern
Gradient Boosting klasik telah dikembangkan menjadi versi lebih cepat dan kuat:
-
XGBoost
-
LightGBM
-
CatBoost
Semua menggunakan prinsip yang sama tetapi jauh lebih efisien.
Fitur Umum untuk Prediksi Harga Properti
Biasanya, fitur yang digunakan antara lain:
| Kategori | Contoh Fitur |
|---|---|
| Lokasi | jarak ke pusat kota, kode pos, lingkungan |
| Karakteristik bangunan | luas bangunan, jumlah kamar, jumlah lantai |
| Karakteristik tanah | luas tanah, bentuk tanah |
| Faktor eksternal | akses transportasi, fasilitas umum |
| Waktu | tahun pembangunan, tahun renovasi |
Pipeline Umum
Berikut langkah-langkah membangun model:
-
Kumpulkan Data Properti
-
Preprocessing:
-
Mengatasi missing values
-
Encoding fitur kategorikal
-
Scaling (optional untuk tree-based)
-
-
Split data: train vs test
-
Train Gradient Boosting Regressor
-
Hyperparameter tuning
-
Evaluasi model
