Prediksi hujan (label biner Rain) dari fitur cuaca harian: temperatur, kelembapan, hujan (RR), penyinaran (SS), angin (FF_X, FF_AVG, DDD_X, DDD_CAR), serta tanggal (TANGGAL → Month/Day).
Alur dari ingestion → cleaning → training → deployment:

- Mentah (contoh
iklim.csv/dataset.py):TANGGAL, TN, TX, TAVG, RH_AVG, RR, SS, FF_X, DDD_X, FF_AVG, DDD_CAR - Saat training: cleaner menambah
Month, Day, membuat labelRain=RR > 0, dan menjatuhkanRR.
Gunakan Python 3.12 (menghindari build pyarrow di 3.13):
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtAtau:
make setup- Pakai data contoh:
iklim.csv→ split manual kedata/train.csv&data/test.csvviapython dataset.py. - Atau siapkan sendiri
data/train.csvdandata/test.csvdengan skema mentah di atas. - DVC (opsional): remote GDrive
gdrive://1YbgrhKxIgpCDRrrMg72fK1Kwnj7q8cB4. Untuk service account:dvc remote modify --local myremote gdrive_use_service_account true dvc remote modify --local myremote gdrive_service_account_json_file_path .dvc/service-account.json dvc pull # tarik data dvc push # dorong cache
python main.py # atau make runModel (default RandomForestClassifier) disimpan ke models/model.pkl. Logging & register MLflow ada di train_with_mlflow().
uvicorn app:app --reloadContoh payload POST /predict:
{
"TANGGAL": "01-01-2025",
"TN": 23.4,
"TX": 29.2,
"TAVG": 25.9,
"RH_AVG": 92,
"SS": 3.4,
"FF_X": 5.0,
"DDD_X": 330,
"FF_AVG": 1.0,
"DDD_CAR": "C"
}Respons: {"predicted_class": 0|1} (0=tidak hujan, 1=hujan).
docker build -t weather-fastapi .
docker run -p 80:80 weather-fastapimonitor.ipynb dan laporan drift (production_drift.html, test_drift.html) perlu disesuaikan ke skema cuaca; Evidently dapat diaktifkan via requirements (baris dikomentari).
python -m pytest # atau make testCopyright © 2024, Prasad Mahamulkar.
Released under the Apache-2.0 license.