Tabel Metrik Evaluasi
Data uji: 0.6724
AlgoritmaTipeMAE ↓RMSE ↓R² ↑MAPE ↓Evaluasi
Linear Regression Supervised Regression 0.6724 0.8685 -0.1851 Perlu Tuning
ANN Supervised Regression 0.5941 0.7445 0.1292 Terbaik
RNN/LSTM Supervised (Sequential) 0.7446 0.9043 -0.2717 43.26% Perlu Tuning
Backpropagation Supervised Regression 0.6307 0.7895 0.0207 Normal
K-Means Clustering Unsupervised Sil: 0.3941
— (strip) pada kolom MAPE untuk Linear Regression, ANN, dan Backpropagation berarti MAPE tidak dikalkulasi karena metrik ini hanya relevan untuk model sekuensial (LSTM). Selain itu, dataset kecepatan angin mengandung nilai aktual = 0 m/s sehingga pembagian pada rumus MAPE (|aktual − prediksi| / aktual) akan menghasilkan nilai tak hingga (∞) yang menyesatkan.
MAE (kecil = baik)
MAE mengukur rata-rata selisih absolut prediksi terhadap nilai aktual (m/s). Semakin kecil nilainya semakin akurat. Model dengan MAE < 0.6 m/s tergolong baik untuk prediksi kecepatan angin harian.
RMSE (kecil = baik)
RMSE lebih sensitif terhadap error besar karena nilai error dikuadratkan sebelum dirata-rata. Cocok untuk mendeteksi model yang sering meleset jauh pada hari-hari dengan angin ekstrem.
R² Score (besar = baik)
R² menunjukkan seberapa baik model menjelaskan variansi data. Nilai 1.0 sempurna, 0 berarti sama dengan prediksi mean, negatif berarti lebih buruk dari sekadar menebak rata-rata.

Training Loss Curves

Progres konvergensi model selama pelatihan
ANN Loss
Kurva Train Loss dan Val Loss yang konvergen berdekatan menunjukkan model belajar dengan baik tanpa overfitting. Gap besar antara keduanya mengindikasikan model terlalu menghafal data training.
LSTM Loss
LSTM memproses data sebagai sequence 7 hari. Kurva yang tidak stabil menunjukkan model kesulitan menemukan pola temporal yang konsisten, umumnya karena data time-series angin sangat fluktuatif.
Backprop Loss
Backpropagation manual diimplementasikan dengan NumPy murni. Konvergensi lebih lambat dibanding TensorFlow/Keras karena tidak ada optimasi GPU. Gradient clipping digunakan untuk menstabilkan training.
Interpretasi Metrik
MAEMean Absolute Error — rata-rata selisih absolut antara nilai prediksi dan aktual dalam satuan m/s.
RMSERoot Mean Squared Error — lebih sensitif terhadap error besar karena mengkuadratkan selisih terlebih dahulu.
Koefisien Determinasi — proporsi variansi yang dijelaskan model. Nilai 1.0 = sempurna, negatif = buruk dari baseline.
MAPEMean Absolute Percentage Error — error relatif dalam persen. Hanya dikalkulasi untuk LSTM karena dataset angin mengandung nilai aktual 0 m/s yang menyebabkan MAPE tak hingga (∞) pada model lain. LSTM menggunakan subset data yang nilainya ≥ 0.1 m/s.
Model terbaik: Ann dengan R² = 0.1292
Catatan Hasil

Nilai R² yang rendah atau negatif pada beberapa model menunjukkan bahwa kecepatan angin harian di stasiun Klimatologi Jawa Barat memiliki variabilitas tinggi yang sulit diprediksi dari fitur cuaca saja.

Dataset gabungan BMKG + ERA5 kini berjumlah 1.958 baris (Jan 2021 – Mei 2026). Dengan penambahan data ERA5, model deep learning seperti ANN mendapat lebih banyak sampel untuk belajar pola non-linier. Linear Regression tetap menjadi baseline yang kuat untuk data tabular cuaca karena hubungan antara fitur meteorologi dan kecepatan angin memiliki komponen linier yang signifikan.

Penjelasan Algoritma

Linear Regression adalah algoritma regresi yang memodelkan hubungan linier antara variabel input (fitur cuaca seperti suhu, kelembaban, dan penyinaran matahari) dengan variabel target (kecepatan angin FF_AVG). Model bekerja dengan mencari koefisien bobot optimal melalui metode Ordinary Least Squares (OLS), yaitu meminimalkan jumlah kuadrat residual antara prediksi dan nilai aktual. Meskipun sederhana, Linear Regression sering menjadi baseline yang kuat dan dapat diinterpretasikan karena setiap koefisien menunjukkan seberapa besar pengaruh fitur tersebut terhadap prediksi angin.

Kelebihan
• Interpretasi koefisien mudah dipahami
• Stabil pada dataset kecil dan bebas overfitting
• Komputasi cepat, tidak perlu GPU
Kekurangan
• Tidak menangkap pola non-linier
• Sensitif terhadap outlier dan multikolinieritas
• Kurang cocok jika hubungan fitur bersifat kompleks

Artificial Neural Network (ANN) adalah jaringan saraf tiruan yang terdiri dari lapisan-lapisan neuron yang saling terhubung. Pada proyek ini digunakan arsitektur Dense multilayer: input (13 fitur) → Dense(256, ReLU) → BatchNormalization → Dropout(0.25) → Dense(128, ReLU) → Dense(64, ReLU) → Dense(32, ReLU) → output linier (1 neuron). Model dilatih menggunakan optimizer Adam dengan Early Stopping dan ReduceLROnPlateau untuk mencegah overfitting. ANN mampu memodelkan hubungan non-linier yang kompleks antar fitur cuaca yang tidak bisa ditangkap oleh regresi linier biasa.

Kelebihan
• Mampu menangkap pola non-linier kompleks
• Fleksibel dalam pemilihan arsitektur
• Performa meningkat signifikan dengan data lebih banyak
Kekurangan
• Memerlukan tuning hyperparameter ekstensif
• Rentan overfitting pada dataset kecil
• Interpretasi model sulit (black box)

Long Short-Term Memory (LSTM) adalah varian dari Recurrent Neural Network (RNN) yang dirancang khusus untuk memproses data sekuensial dengan dependensi jangka panjang. LSTM menggunakan tiga mekanisme gate: input gate (menentukan informasi baru yang disimpan), forget gate (menentukan informasi lama yang dihapus), dan output gate (menentukan output yang dihasilkan). Pada proyek ini, data diformat menjadi sequence 7 hari sebelumnya sebagai konteks temporal, dengan arsitektur LSTM(64, return_sequences) → Dropout(0.2) → LSTM(32) → Dense(1). LSTM merupakan pilihan tepat untuk data time series seperti pengamatan cuaca harian yang memiliki pola musiman.

Kelebihan
• Ideal untuk data time series dan musiman
• Mempertahankan konteks dari hari-hari sebelumnya
• Mampu belajar pola jangka panjang
Kekurangan
• Memerlukan lebih banyak data untuk konvergen
• Waktu training lebih lama dibanding ANN Dense
• Rentan overfitting pada dataset kecil seperti 729 baris

Backpropagation adalah algoritma pelatihan jaringan saraf yang menghitung gradien error secara mundur dari layer output ke layer input menggunakan chain rule diferensial. Pada proyek ini, jaringan diimplementasikan dari nol menggunakan NumPy murni tanpa library deep learning, dengan arsitektur: input(13) → Dense(128, ReLU) → Dense(64, ReLU) → Dense(32, ReLU) → output(1, linear). Setiap iterasi terdiri dari forward pass (menghitung prediksi), kalkulasi loss (MSE), backward pass (menghitung gradien), dan weight update (gradient descent). Implementasi manual ini bertujuan untuk memahami cara kerja backpropagation secara mendalam.

Kelebihan
• Pemahaman mendalam mekanisme backpropagation
• Kontrol penuh terhadap setiap komponen jaringan
• Tidak bergantung pada library deep learning eksternal
Kekurangan
• Performa lebih lambat dibanding TensorFlow/Keras
• Tidak ada optimasi GPU, hanya CPU
• Konvergensi lebih lama karena implementasi dasar

K-Means adalah algoritma unsupervised learning yang membagi data ke dalam K cluster berdasarkan kemiripan jarak Euclidean antar data point. Algoritma bekerja secara iteratif: menentukan K centroid secara acak, menugaskan setiap data ke centroid terdekat, lalu memperbarui centroid berdasarkan rata-rata anggota cluster hingga konvergen. Pada proyek ini, K-Means diterapkan pada 5 fitur angin (FF_AVG, FF_X, RH_AVG, TAVG, RR) untuk mengelompokkan kondisi iklim harian menjadi 4 kategori: Angin Tenang, Ringan, Sedang, dan Kencang. Elbow Method digunakan untuk menentukan K optimal.

Kelebihan
• Tidak memerlukan label data (unsupervised)
• Hasil cluster mudah diinterpretasikan secara semantik
• Komputasi efisien pada dataset tabular
Kekurangan
• Sensitif terhadap inisialisasi centroid awal
• Harus menentukan nilai K sebelum training
• Kurang optimal jika bentuk cluster tidak sferis