Checking onboardin flow - fix 4
This commit is contained in:
@@ -18,6 +18,7 @@ import joblib
|
||||
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
|
||||
import json
|
||||
from pathlib import Path
|
||||
import math
|
||||
|
||||
from app.core.config import settings
|
||||
|
||||
@@ -177,8 +178,16 @@ class BakeryProphetManager:
|
||||
"""Prepare data for Prophet training"""
|
||||
prophet_data = df.copy()
|
||||
|
||||
# Ensure ds column is datetime
|
||||
prophet_data['ds'] = pd.to_datetime(prophet_data['ds'])
|
||||
# Prophet column mapping
|
||||
if 'date' in prophet_data.columns:
|
||||
prophet_data['ds'] = prophet_data['date']
|
||||
if 'quantity' in prophet_data.columns:
|
||||
prophet_data['y'] = prophet_data['quantity']
|
||||
|
||||
# ✅ CRITICAL FIX: Remove timezone from ds column
|
||||
if 'ds' in prophet_data.columns:
|
||||
prophet_data['ds'] = pd.to_datetime(prophet_data['ds']).dt.tz_localize(None)
|
||||
logger.info(f"Removed timezone from ds column")
|
||||
|
||||
# Handle missing values in target
|
||||
if prophet_data['y'].isna().any():
|
||||
@@ -345,7 +354,14 @@ class BakeryProphetManager:
|
||||
rmse = np.sqrt(mse)
|
||||
|
||||
# MAPE (Mean Absolute Percentage Error)
|
||||
mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100
|
||||
non_zero_mask = y_true != 0
|
||||
if np.sum(non_zero_mask) == 0:
|
||||
mape = 0.0 # Return 0 instead of Infinity
|
||||
else:
|
||||
mape_values = np.abs((y_true[non_zero_mask] - y_pred[non_zero_mask]) / y_true[non_zero_mask])
|
||||
mape = np.mean(mape_values) * 100
|
||||
if math.isinf(mape) or math.isnan(mape):
|
||||
mape = 0.0
|
||||
|
||||
# R-squared
|
||||
r2 = r2_score(y_true, y_pred)
|
||||
|
||||
Reference in New Issue
Block a user