Spaces:
Build error
Build error
File size: 2,270 Bytes
7b29ac7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# Load the dataset
data = pd.read_csv("ProductInfo.csv") # Replace with your actual dataset
# Title and description
st.title("Demand Forecasting")
st.write("Demand Overview for Top 10 Products")
# Sample dropdown for stock codes or product codes
stock_codes = data['StockCode'].unique()
selected_stock = st.selectbox("Select a Stock Code:", stock_codes)
# Filter data for selected stock code
filtered_data = data[data['StockCode'] == selected_stock]
# Generate dummy data for the forecast and actual values
# Replace this with your actual forecasting model's output
dates = pd.date_range(start='2023-01-01', periods=len(filtered_data), freq='W')
actual_demand = np.random.randint(50, 150, size=len(filtered_data)) # Replace with actual demand data
predicted_demand_train = actual_demand + np.random.normal(0, 10, size=len(filtered_data)) # Replace with your model's predictions
predicted_demand_test = actual_demand + np.random.normal(0, 15, size=len(filtered_data)) # Replace with your test predictions
# Line chart: Actual vs Predicted Demand
st.write(f"Demand Overview for {selected_stock}")
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(dates, actual_demand, label='Actual Demand', color='blue', marker='o')
ax.plot(dates, predicted_demand_train, label='Train Predicted Demand', color='green', linestyle='--', marker='x')
ax.plot(dates, predicted_demand_test, label='Test Predicted Demand', color='red', linestyle='--', marker='x')
ax.legend()
ax.set_xlabel("Date")
ax.set_ylabel("Demand")
st.pyplot(fig)
# Histograms for error distributions
train_error = actual_demand - predicted_demand_train
test_error = actual_demand - predicted_demand_test
# Training Error Distribution
st.write("Training Error Distribution")
fig, ax = plt.subplots(figsize=(6, 4))
ax.hist(train_error, bins=20, color='green', alpha=0.7)
ax.set_xlabel("Error")
ax.set_ylabel("Frequency")
st.pyplot(fig)
# Testing Error Distribution
st.write("Testing Error Distribution")
fig, ax = plt.subplots(figsize=(6, 4))
ax.hist(test_error, bins=20, color='red', alpha=0.7)
ax.set_xlabel("Error")
ax.set_ylabel("Frequency")
st.pyplot(fig)
|