|
|
| import streamlit as st |
| import pandas as pd |
| import joblib |
|
|
| |
| @st.cache_resource |
| def load_model_and_data(): |
| model = joblib.load("deployment_files/Quarterly_Sales_Revenue_model_v1_0.joblib") |
| data = pd.read_csv("/content/drive/MyDrive/SuperKart.csv") |
| return model, data |
| |
|
|
| |
| def predict_total_sales_by_store(store_ids, df, rf_tuned): |
| results = [] |
|
|
| feature_cols = [ |
| 'Product_Id', 'Store_Id', 'Product_Type', 'Product_Sugar_Content', |
| 'Store_Type', 'Store_Location_City_Type', 'Store_Size', |
| 'Product_Weight', 'Product_Allocated_Area', 'Product_MRP', |
| 'Store_Establishment_Year' |
| ] |
|
|
| for store_id in store_ids: |
| store_df = df[df['Store_Id'] == store_id].copy() |
|
|
| if store_df.empty: |
| results.append((store_id, 0.0)) |
| continue |
|
|
| X_input = store_df[feature_cols] |
| predicted_sales = rf_tuned.predict(X_input).sum() |
| results.append((store_id, round(predicted_sales, 2))) |
|
|
| return results |
|
|
| |
| rf_tuned, df = load_model_and_data() |
|
|
| |
| st.title("๐งพ Predict Total Quarterly Sales per Store") |
|
|
| |
| store_ids = st.multiselect("Select Store ID(s)", sorted(df["Store_Id"].unique())) |
|
|
| if st.button("Predict Sales"): |
| if not store_ids: |
| st.warning("Please select at least one Store ID.") |
| else: |
| results = predict_total_sales_by_store(store_ids, df, rf_tuned) |
| st.subheader("๐ Predicted Sales:") |
| for store_id, sales in results: |
| st.write(f"๐ Store {store_id}: ${sales:,.2f}") |
|
|