Spaces:
Build error
Build error
| # app.py | |
| import streamlit as st | |
| import pandas as pd | |
| import pickle | |
| from huggingface_hub import hf_hub_download | |
| import joblib | |
| # App title | |
| st.title("Customer Status Prediction") | |
| st.write(""" | |
| This web app predicts the **status** of a customer based on their activity and profile information. | |
| """) | |
| # Download and load the model | |
| model_path = hf_hub_download(repo_id="NaikGayatri/ModelDeploymentAssignmentBackEnd", filename="my_model_v1_0.joblib") | |
| model = joblib.load(model_path) | |
| # Create UI for user input | |
| st.sidebar.header("Provide Input Features") | |
| # Numeric Inputs | |
| age = st.sidebar.number_input("Age", min_value=0, max_value=100, value=25) | |
| website_visits = st.sidebar.number_input("Website Visits", min_value=0, value=5) | |
| time_spent_on_website = st.sidebar.number_input("Time Spent on Website (minutes)", min_value=0, value=10) | |
| page_views_per_visit = st.sidebar.number_input("Page Views per Visit", min_value=0, value=3) | |
| # Categorical Inputs (replace options with actual categories) | |
| current_occupation = st.sidebar.selectbox("Current Occupation", ["Student", "Professional", "Other"]) | |
| first_interaction = st.sidebar.selectbox("First Interaction", ["Email", "Social Media", "Referral", "Other"]) | |
| profile_completed = st.sidebar.selectbox("Profile Completed", ["Yes", "No"]) | |
| last_activity = st.sidebar.selectbox("Last Activity", ["Last week", "Last month", "Older"]) | |
| print_media_type1 = st.sidebar.selectbox("Print Media Type 1", ["Magazine", "Newspaper", "None"]) | |
| print_media_type2 = st.sidebar.selectbox("Print Media Type 2", ["Magazine", "Newspaper", "None"]) | |
| digital_media = st.sidebar.selectbox("Digital Media", ["Email", "Social Media", "Other"]) | |
| educational_channels = st.sidebar.selectbox("Educational Channels", ["Online Course", "Webinar", "None"]) | |
| referral = st.sidebar.selectbox("Referral", ["Friend", "Advertisement", "Other"]) | |
| # Convert user input to DataFrame | |
| input_dict = { | |
| 'age': age, | |
| 'website_visits': website_visits, | |
| 'time_spent_on_website': time_spent_on_website, | |
| 'page_views_per_visit': page_views_per_visit, | |
| 'current_occupation': current_occupation, | |
| 'first_interaction': first_interaction, | |
| 'profile_completed': profile_completed, | |
| 'last_activity': last_activity, | |
| 'print_media_type1': print_media_type1, | |
| 'print_media_type2': print_media_type2, | |
| 'digital_media': digital_media, | |
| 'educational_channels': educational_channels, | |
| 'referral': referral | |
| } | |
| input_df = pd.DataFrame([input_dict]) | |
| # Make prediction | |
| if st.button("Predict Status"): | |
| prediction = model.predict(input_df) | |
| prediction_proba = model.predict_proba(input_df)[:, 1] | |
| st.write(f"**Predicted Status:** {prediction[0]}") | |
| ### st.write(f"**Probability of Positive Status:** {prediction_proba[0]:.2f}") | |