File size: 1,431 Bytes
2226294 |
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 |
import gradio as gr
import pandas as pd
import joblib
# load full pipeline
model = joblib.load("model.joblib")
def predict_excel(file):
# Read uploaded Excel file
df = pd.read_excel(file.name)
# Check if required columns exist
required_cols = [
"CustomerID", "Tenure", "PreferredLoginDevice", "CityTier",
"WarehouseToHome", "PreferredPaymentMode", "Gender", "HourSpendOnApp",
"NumberOfDeviceRegistered", "PreferredOrderCat", "SatisfactionScore",
"MaritalStatus", "NumberOfAddress", "Complain",
"OrderAmountHikeFromlastYear", "CouponUsed", "OrderCount",
"DaySinceLastOrder", "CashbackAmount"
]
missing = [c for c in required_cols if c not in df.columns]
if missing:
return f"❌ Missing columns in Excel: {missing}"
# Predict
preds = model.predict(df[required_cols])
# Add prediction column
df["Prediction"] = preds
# Save to new Excel file
out_path = "predicted_output.xlsx"
df.to_excel(out_path, index=False)
return out_path # Gradio will let user download it
# Gradio UI
demo = gr.Interface(
fn=predict_excel,
inputs=gr.File(label="Upload Excel File (.xlsx)"),
outputs=gr.File(label="Download Updated Excel With Predictions"),
title="Excel-Based Customer Churn Predictor",
description="Upload an Excel file to receive a new Excel file with model predictions added."
)
demo.launch()
|