refactor: reorganize project structure by moving core modules and update import paths in API server

This commit is contained in:
2026-07-18 01:24:30 +07:00
parent abab846884
commit a82b2f6fa5
155 changed files with 25 additions and 370 deletions
@@ -0,0 +1,39 @@
#!/usr/bin/env python
# coding: utf-8
import os
import json
import joblib
import numpy as np
from statsmodels.tsa.statespace.sarimax import SARIMAX
from core.ndvi_data_loader import NDVITimeSeriesDataset
print("=" * 70)
print("🚀 Training Statistical Model (SARIMA) for NDVI (REAL DATA & CPU)")
print("=" * 70)
dataset = NDVITimeSeriesDataset(sequence_length=10, spatial=False)
# Flatten data for ARIMA (1D series)
timeseries = []
for x, y in dataset:
timeseries.append(y.item())
print(f"\n[TRAIN] Bắt đầu Training SARIMA với {len(timeseries)} điểm dữ liệu...")
# Use a simple ARIMA (1, 1, 1)
model = SARIMAX(timeseries, order=(1, 1, 1))
results = model.fit(disp=False)
mse = np.mean(results.resid ** 2)
model_dir = "ndvi_forecast_model"
model_path = os.path.join(model_dir, "ndvi_statistical_real.joblib")
joblib.dump(results, model_path)
print(f"\n[SAVE] Model saved to {model_path}")
with open(os.path.join(model_dir, "ndvi_statistical_real_info.json"), "w") as f:
json.dump({
"model_type": "Statistical SARIMA (Real Data & CPU)",
"target": "NDVI",
"rmse": float(mse**0.5),
"mae": float(np.mean(np.abs(results.resid)))
}, f, indent=2)
print("[SAVE] Model info saved.")