Pembelajaran Mesin untuk Prediksi Geospasial (Random Forest, XGBoost, LightGBM)

Pendahuluan

Pada pelajaran ini Anda akan mempelajari cara membangun model pembelajaran mesin berbasis data geospasial untuk memprediksi variabel strategis di industri perbankan, seperti:

  • Prediksi potensi transaksi ATM/cabang
  • Prediksi cash withdrawal dan demand uang tunai
  • Prediksi risiko kriminalitas lokasi (fraud, pencurian, skimming)
  • Prediksi potensi pasar berdasarkan geodemografi dan pola mobilitas

Anda akan menggunakan Random Forest, XGBoost, dan LightGBM karena ketiganya adalah model tree-based yang sangat kuat untuk data geospasial tabular dan kaya fitur.

Prasyarat / Alat yang Dibutuhkan:

  • Dasar Python, pandas, geopandas
  • Dasar machine learning
  • Jupyter Notebook / Google Colab
  • Library: geopandas, scikit-learn, xgboost, lightgbm, shap
  • Data geospasial: titik ATM/cabang, pesaing, buffer, network distance, populasi, fitur lingkungan

Langkah-langkah Utama


1. Mempersiapkan Dataset Geospasial untuk ML

Tahap pertama adalah mengubah data geospasial menjadi tabular dataset siap training.

Instruksi Detail

  1. Impor data:
    • ATM/cabang (titik).
    • Fitur lingkungan (buffer: sekolah, pasar, mall, bank pesaing).
    • Populasi dan geodemografi.
    • Jarak ke pusat aktivitas (CBD, kampus, terminal).
  2. Konversi data menjadi DataFrame:
    • Gunakan .to_crs() untuk standardisasi koordinat.
    • Gunakan spatial join untuk ekstraksi fitur.
  3. Buat variabel prediktor (independent variables):
    • pop_density
    • distance_to_competitor
    • num_offices_within_500m
    • poi_diversity
    • avg_income_area
  4. Buat variabel target (label):
    • Contoh: atm_transactions, fraud_score, cash_demand.
    • (Visual Hint: Tabel DF dengan kolom fitur dan target)

Tip Penting:
Tambahkan variabel spatial lag (rata-rata nilai tetangga) untuk meningkatkan akurasi model geospasial.


2. Melakukan Feature Engineering Spasial

Langkah ini membuat fitur tambahan yang meningkatkan prediksi.

Instruksi Detail

  1. Hitung buffer features:
    • Entitas dalam radius 100m, 300m, 500m, 1km.
    • (Visual Hint: Buffer ganda mengelilingi titik ATM)
  2. Hitung network-based features:
    • Waktu tempuh ke pusat keramaian.
    • Jarak ke pesaing terdekat.
  3. Hitung density features:
    • Jumlah penduduk per grid kecil.
    • Jumlah bangunan per area.
  4. Hitung interaction features:
    • population × poi_density
    • competitor_distance × crime_index
  5. Normalisasi variabel skala besar (opsional).

Peringatan:
Jangan menggunakan terlalu banyak fitur buffer tanpa seleksi, karena dapat menyebabkan model overfitting.


3. Membagi Dataset dan Menyiapkan Model

Anda akan menyiapkan model Random Forest, XGBoost, dan LightGBM sekaligus.

Instruksi Detail

  1. Bagi dataset:
    • train_test_split(test_size=0.2, random_state=42)
    • (Visual Hint: Diagram pembagian data menjadi train dan test)
  2. Buat tiga model:
    • RandomForestRegressor
    • XGBRegressor
    • LGBMRegressor
  3. Tetapkan parameter awal (baseline):
    • n_estimators = 300
    • max_depth = 8–12
    • learning_rate = 0.05 (hanya untuk XGB/LGBM)

Tip:
Gunakan model tree-based dulu sebelum neural networks karena:

  • Lebih stabil
  • Lebih mudah dijelaskan
  • Cocok untuk tabular geospasial

4. Melatih Model & Mengevaluasi Hasil

Anda akan melihat mana model yang paling akurat untuk prediksi.

Instruksi Detail

  1. Fit model:
    • model.fit(X_train, y_train)
    • (Visual Hint: Notebook dengan grafik training selesai)
  2. Prediksi:
    • y_pred = model.predict(X_test)
  3. Hitung metrik:
    • RMSE
    • MAE
  4. Bandingkan performa:
    • RF biasanya stabil.
    • XGBoost unggul untuk data besar.
    • LightGBM unggul untuk fitur banyak.

Peringatan:
RMSE yang rendah belum cukup — cek juga feature importance dan spatial bias.


5. Memvalidasi Model Secara Spasial

Validasi spasial penting agar model tidak bias pada area tertentu.

Instruksi Detail

  1. Gunakan spatial cross-validation:
    • Pembagian train–test berdasarkan area/geografi.
  2. Peta error prediksi:
    • Plot residual dalam peta.
    • (Visual Hint: Peta heatmap residual: area merah = overpredict, biru = underpredict)
  3. Hitung:
    • Moran’s I dari residual.
    • Tujuan: residual tidak boleh spatially autocorrelated.

Tip:
Jika residual menunjukkan pola spasial, tambahkan fitur tetangga (spatial lag atau GWR-based features).


6. Menjelaskan Model Menggunakan SHAP (Explainability)

Bank membutuhkan model yang dapat dijelaskan, bukan hanya akurat.

Instruksi Detail

  1. Import SHAP:
    • import shap
  2. Buat explainer:
    • explainer = shap.TreeExplainer(model)
  3. Visualisasi importance:
    • shap.summary_plot()
  4. Analisis feature paling berpengaruh:
    • dll.
    • (Visual Hint: Plot bar SHAP dengan ranking fitur)

Strategi Presentasi:
Tunjukkan 5 fitur terpenting yang menjelaskan mengapa sebuah lokasi berkinerja tinggi atau buruk. Ini sangat membantu manajemen.


7. Menghasilkan Peta Prediksi & Skenario

Setelah model selesai, Anda harus memetakan prediksi kembali ke peta.

Instruksi Detail

  1. Gabungkan prediksi (kolom predicted_value) ke GeoDataFrame.
  2. Buat heatmap prediksi:
    • ATM/cabang dengan performa rendah → warna merah.
    • Lokasi potensial tinggi → warna hijau.
  3. Buat 3 skenario prediksi:
    • Conservative: mengubah variabel kompetisi 10%.
    • Moderate: simulasi kenaikan populasi 20%.
    • Aggressive: penambahan POI dan jaringan transportasi baru.
  4. Export:
    • Peta PDF.
    • File GeoJSON.
    • Dashboard (ArcGIS Online / Kepler.gl).

Tip:
Peta prediksi sering menjadi senjata utama untuk meyakinkan direksi dalam ekspansi jaringan.


Ringkasan

Tiga poin inti modul ini:

  1. Data geospasial harus diubah menjadi tabular fitur yang kaya sebelum masuk ML.
  2. Tree-based models (RF, XGBoost, LightGBM) adalah pilihan paling praktis dan akurat untuk prediksi geospasial tabular.
  3. Validasi spasial + interpretasi SHAP sangat penting untuk memastikan model tidak bias dan dapat dipercaya oleh manajemen.

Tugas Praktis

Bangun model ML geospasial pertama Anda:

  1. Pilih variabel target: misalnya jumlah transaksi ATM bulanan.
  2. Siapkan 30–50 fitur geospasial (buffer, POI, jarak, density, kompetisi).
  3. Latih 3 model: RF, XGB, LGBM.
  4. Bandingkan performa dan peta prediksi.
  5. Tulis rekomendasi 1 halaman untuk manajemen: lokasi mana yang harus ditutup, dipertahankan, atau ditingkatkan.