Untitled

 avatar
unknown
plain_text
2 months ago
1.5 kB
2
Indexable
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error, mean_squared_error

# Generate synthetic historical sales data
np.random.seed(42)
days = np.arange(1, 366)  # Simulating daily sales for a year
sales = 50 + 10 * np.sin(2 * np.pi * days / 365) + np.random.normal(0, 5, len(days))  # Seasonal sales pattern

# Create DataFrame
data = pd.DataFrame({'Day': days, 'Sales': sales})

# Splitting the dataset into training and testing sets
X = data[['Day']]
y = data['Sales']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Train a simple linear regression model
model = LinearRegression()
model.fit(X_train, y_train)

# Predict future sales
y_pred = model.predict(X_test)

# Evaluate the model
mae = mean_absolute_error(y_test, y_pred)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))

print(f"Mean Absolute Error: {mae:.2f}")
print(f"Root Mean Squared Error: {rmse:.2f}")

# Plot actual vs predicted sales
plt.figure(figsize=(10, 5))
plt.scatter(X_test, y_test, color='blue', label="Actual Sales")
plt.scatter(X_test, y_pred, color='red', label="Predicted Sales")
plt.xlabel("Day of the Year")
plt.ylabel("Sales")
plt.title("Inventory Demand Prediction using Linear Regression")
plt.legend()
plt.show()
Editor is loading...
Leave a Comment