This commit is contained in:
fhm 2025-07-09 05:11:19 +07:00
parent 04d8284011
commit b929e64b22
3 changed files with 5 additions and 4 deletions

View File

@ -18,7 +18,7 @@ def predict_auto(request: AutoPredictionRequest):
series = df['amount'] series = df['amount']
result = auto_arima_forecast(series, forecast_periods=1) result = auto_arima_forecast(series, forecast_periods=request.future_steps)
return AutoPredictionResponse( return AutoPredictionResponse(
rmse=result["rmse"], rmse=result["rmse"],
@ -47,14 +47,14 @@ def predict_manual(request: ManualPredictionRequest):
p, d, q = request.arima_model p, d, q = request.arima_model
result = manual_arima_forecast(series, p=p, d=d, q=q, forecast_periods=1) result = manual_arima_forecast(series, p=p, d=d, q=q, forecast_periods=request.future_steps)
return ManualPredictionResponse( return ManualPredictionResponse(
arima_order=tuple(result["arima_order"]), arima_order=tuple(result["arima_order"]),
prediction=result["prediction"], prediction=result["prediction"],
lower=result["lower"], lower=result["lower"],
upper=result["upper"], upper=result["upper"],
success=True success=True,
) )
except ValueError as ve: except ValueError as ve:

View File

@ -8,6 +8,7 @@ class BasePredictionRequest(BaseModel):
value_column: str='sold_qty' value_column: str='sold_qty'
date_column: str='date' date_column: str='date'
date_regroup: bool=False date_regroup: bool=False
future_steps: int=1
class AutoPredictionRequest(BasePredictionRequest): class AutoPredictionRequest(BasePredictionRequest):

View File

@ -6,7 +6,7 @@ import pandas as pd
import numpy as np import numpy as np
warnings.filterwarnings("ignore", category=FutureWarning) warnings.filterwarnings("ignore", category=FutureWarning)
def auto_arima_forecast(series: pd.Series, train_ratio=0.8, forecast_periods: int = 1) -> dict: def auto_arima_forecast(series: pd.Series, train_ratio=0.7, forecast_periods: int = 1) -> dict:
if series is None or series.empty: if series is None or series.empty:
raise ValueError("Data tidak valid atau kosong.") raise ValueError("Data tidak valid atau kosong.")