fix
This commit is contained in:
parent
04d8284011
commit
b929e64b22
|
@ -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:
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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.")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue