|
|
import gradio as gr |
|
|
import pandas as pd |
|
|
import joblib |
|
|
|
|
|
|
|
|
model = joblib.load("model.joblib") |
|
|
|
|
|
def predict_excel(file): |
|
|
|
|
|
df = pd.read_excel(file.name) |
|
|
|
|
|
|
|
|
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}" |
|
|
|
|
|
|
|
|
preds = model.predict(df[required_cols]) |
|
|
|
|
|
|
|
|
df["Prediction"] = preds |
|
|
|
|
|
|
|
|
out_path = "predicted_output.xlsx" |
|
|
df.to_excel(out_path, index=False) |
|
|
|
|
|
return out_path |
|
|
|
|
|
|
|
|
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() |
|
|
|