Random Forest Regressor adalah algoritma machine learning untuk memprediksi nilai numerik (regresi) dengan cara menggabungkan banyak Decision Tree sekaligus. Algoritma ini bekerja menggunakan prinsip ensemble learning, yaitu menggabungkan beberapa model sederhana (decision tree) menjadi satu model yang lebih kuat dan lebih akurat.
Bagaimana Cara Kerjanya?
-
Model membuat banyak pohon keputusan (tree) secara acak.
-
Setiap tree mempelajari sebagian data dan sebagian fitur secara acak (random sampling dan feature randomness).
-
Saat memprediksi, setiap tree memberikan hasil prediksi.
-
Hasil akhir adalah rata-rata dari semua prediksi tree.
Inti Konsepnya
-
Semakin banyak pohon, semakin stabil dan akurat prediksi.
-
Teknik “kerandoman” membuat model:
-
Tidak mudah overfitting,
-
Lebih robust terhadap noise,
-
Lebih baik dibanding satu Decision Tree saja.
-
Mengapa Disebut “Forest”?
Karena model ini bukan hanya satu pohon, tetapi sekumpulan (forest) pohon keputusan. Setiap pohon memberikan pendapatnya, lalu digabungkan menjadi prediksi terbaik.
Kelebihan Random Forest Regressor
-
Akurat untuk data yang rumit dan non-linear
-
Tahan terhadap overfitting
-
Bisa menangani banyak fitur
-
Tidak perlu banyak preprocessing
Kekurangan
-
Lebih lambat dibanding decision tree tunggal
-
Model menjadi sulit diinterpretasi (black box)
Tujuan
Membangun model machine learning yang dapat memprediksi electricity demand (konsumsi listrik) berdasarkan fitur historis seperti:
-
Waktu (jam, hari, bulan)
-
Cuaca (temperatur, kelembapan)
-
Data beban listrik sebelumnya
-
Hari kerja/libur
-
Faktor ekonomi / industri (opsional)
Mengapa Random Forest?
Random Forest Regressor cocok untuk prediksi beban listrik karena:
-
Bisa menangani data non-linear
-
Robust terhadap noise
-
Jarang overfitting
-
Akurat untuk data time-series berbasis fitur engineered
Langkah Umum
1. Load dataset
Dataset biasanya berisi kolom seperti:
-
timestamp -
load(konsumsi energi) -
temperature,humidity -
Fitur kalender
2. Feature engineering
Contoh fitur tambahan:
hour = jam pada hari tersebut
day_of_week = hari ke berapa
month = bulan
is_weekend = 1/0
lag_1, lag_24, lag_168 = beban 1 jam, 1 hari, 1 minggu sebelumnya
3. Train-test split
Biasanya 80:20 berdasarkan time-ordered split, bukan acak.
4. Training Random Forest Regressor
5. Evaluasi
Gunakan metrik:
-
RMSE
-
MAE
-
MAPE
Contoh Kode Lengkap (Python – Scikit-Learn)
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error, mean_squared_error
import matplotlib.pyplot as plt
# 1. Load Data
df = pd.read_csv(“load_data.csv”, parse_dates=[“timestamp”])
df = df.sort_values(“timestamp”)
# 2. Feature Engineering
df[“hour”] = df[“timestamp”].dt.hour
df[“day_of_week”] = df[“timestamp”].dt.dayofweek
df[“month”] = df[“timestamp”].dt.month
df[“is_weekend”] = (df[“day_of_week”] >= 5).astype(int)
# Lag Features (penting untuk time series)
df[“lag_1”] = df[“load”].shift(1)
df[“lag_24”] = df[“load”].shift(24)
df[“lag_168”] = df[“load”].shift(168)
df = df.dropna()
# 3. Split Data
X = df[[“hour”, “day_of_week”, “month”, “is_weekend”,
“temperature”, “humidity”, “lag_1”, “lag_24”, “lag_168”]]
y = df[“load”]
# Time series split (tanpa shuffle)
split_index = int(len(df) * 0.8)
X_train, X_test = X[:split_index], X[split_index:]
y_train, y_test = y[:split_index], y[split_index:]
# 4. Model Random Forest
model = RandomForestRegressor(
n_estimators=200,
max_depth=15,
random_state=42,
n_jobs=-1
)
model.fit(X_train, y_train)
# 5. Prediksi
y_pred = model.predict(X_test)
# 6. Evaluasi
mae = mean_absolute_error(y_test, y_pred)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(“MAE:”, mae)
print(“RMSE:”, rmse)
# Plot hasil
plt.figure(figsize=(12,5))
plt.plot(y_test.values[:200], label=”Actual”)
plt.plot(y_pred[:200], label=”Predicted”)
plt.legend()
plt.title(“Prediksi Beban Listrik”)
plt.show()
Interpretasi Model
Anda dapat melihat pentingnya fitur (feature importance):
importances = model.feature_importances_
for name, score in zip(X.columns, importances):
print(f”{name}: {score:.3f}”)
Biasanya fitur paling penting:
-
lag_1 -
lag_24 -
temperature -
hour
erikut contoh-contoh aplikasi Random Forest Regressor dalam berbagai bidang yang umum digunakan—ringkas dan jelas:
1. Prediksi Permintaan Energi Listrik
Random Forest digunakan untuk memprediksi:
-
Beban listrik harian/jam-an
-
Prediksi puncak beban (peak load forecasting)
-
Estimasi penggunaan listrik per wilayah
Alasannya: mampu menangani pola non-linear dan variabel cuaca.
2. Peramalan Harga (Finance)
Digunakan untuk memprediksi:
-
Harga saham
-
Harga komoditas (minyak, gas, emas)
-
Nilai tukar
Karena dapat mengolah banyak variabel ekonomi sekaligus.
3. Prediksi Harga Properti
Model ini digunakan untuk menilai:
-
Harga rumah
-
Nilai sewa properti
-
Estimasi harga tanah
Fitur: lokasi, luas tanah, jumlah kamar, fasilitas, dll.
4. Estimasi Emisi dan Konsumsi Bahan Bakar
Dipakai untuk:
-
Prediksi konsumsi bahan bakar kendaraan
-
Estimasi emisi CO₂ berdasarkan kondisi mesin, kecepatan, beban
5. Prediksi Variabel Cuaca
Contohnya:
-
Prediksi suhu
-
Prediksi kelembapan
-
Prediksi curah hujan
Random Forest cukup stabil untuk data cuaca yang kompleks.
6. Kesehatan
Untuk prediksi nilai kontinu seperti:
-
Risiko medis (misalnya skor risiko)
-
Lama rawat inap
-
Biaya perawatan
7. Pertanian
Digunakan untuk:
-
Prediksi hasil panen (yield prediction)
-
Prediksi kebutuhan air
-
Estimasi tingkat kesuburan tanah
8. Prediksi Kegagalan Mesin (Predictive Maintenance)
Dalam industri:
-
Estimasi umur pakai mesin
-
Prediksi kapan mesin akan rusak berdasarkan sensor
9. E-commerce
Digunakan untuk:
-
Prediksi jumlah penjualan
-
Estimasi permintaan barang
-
Prediksi harga dinamis (dynamic pricing)
10. Marketing
Untuk memprediksi:
-
Customer lifetime value (CLV)
-
Estimasi besar belanja pelanggan
-
Efektivitas kampanye pemasaran

Dalam penelitian ini, metode Random Forest Regressor telah berhasil diterapkan untuk melakukan prediksi permintaan energi listrik berdasarkan data historis dan variabel pendukung seperti waktu, cuaca, serta pola konsumsi sebelumnya. Hasil yang diperoleh menunjukkan bahwa Random Forest mampu memberikan tingkat akurasi yang baik karena kemampuannya dalam menangani hubungan yang kompleks dan non-linear pada data.
Model ini juga terbukti lebih stabil dibandingkan metode regresi tradisional maupun decision tree tunggal, berkat teknik ensemble learning yang menggabungkan banyak pohon keputusan. Dengan demikian, Random Forest Regressor dapat menjadi salah satu metode yang efektif untuk perencanaan kebutuhan energi, manajemen beban listrik, serta pengambilan keputusan dalam sistem ketenagalistrikan.
Diharapkan penelitian ini dapat menjadi dasar bagi pengembangan model prediksi yang lebih canggih di masa mendatang, termasuk integrasi dengan metode lain seperti XGBoost, LSTM, atau pendekatan hybrid, serta pemanfaatan data yang lebih kaya untuk meningkatkan performa prediksi. Semoga hasil penelitian ini dapat memberikan manfaat bagi lembaga, industri, maupun peneliti yang bergerak di bidang energi dan machine learning.
