Spaces:
No application file
No application file
| import streamlit as st | |
| import pandas as pd | |
| import joblib | |
| import numpy as np | |
| # Load the trained model | |
| def load_model(): | |
| return joblib.load("extraaLearn_prediction_model_v1_0.joblib") | |
| model = load_model() | |
| # Streamlit UI for Price Prediction | |
| st.title("ExtraaLearn Customer Conversion Status Prediction App") | |
| st.write("This tool predicts if an extraaLearn customer is likely to convert status.") | |
| st.subheader("Enter the customer details:") | |
| 'age': eL_data['age'], | |
| 'website_visits': eL_data['website_visits'], | |
| 'time_spent_on_website': eL_data['time_spent_on_website'], | |
| 'page_views_per_visit': eL_data['page_views_per_visit'], | |
| 'current_occupation': eL_data['current_occupation'], | |
| 'first_interaction': eL_data['first_interaction'], | |
| 'profile_completed': eL_data['profile_completed'], | |
| 'last_activity': eL_data['last_activity'], | |
| 'print_media_type1': eL_data['print_media_type1'], | |
| 'print_media_type2': eL_data['print_media_type2'], | |
| 'digital_media': eL_data['digital_media'], | |
| 'educational_channels': eL_data['educational_channels'], | |
| 'referral' : eL_data['referral'] | |
| # Collect user input | |
| age = st.number_input("age", min_value=14, step=1) | |
| website_visits = st.number_input("website_visits", min_value=1, value=2) | |
| time_spent_on_website = st.number_input("time_spent_on_website", min_value=1, step=1, value=2) | |
| page_views_per_visit = st.number_input("page_views_per_visit", min_value=0.0, step=0.5) | |
| current_occupation = st.selectbox("current_occupation", ["Professional", "Unemployed", "Student"]) | |
| first_interaction = st.selectbox("first_interaction", ["Website", "Mobile App"]) | |
| profile_completed = st.selectbox("profile_completed", ["Low - (0-50%)", "Medium - (50-75%)", "High (75-100%)"]) | |
| last_activity = st.selectbox("last_activity", ["Email Activity", "Phone Activity", "Website Activity"]) | |
| print_media_type1 = st.selectbox("print_media_type1", ["Yes", "No"]) | |
| print_media_type2 = st.selectbox("print_media_type2", ["Yes", "No"]) | |
| digital_media = st.selectbox("digital_media", ["Yes", "No"]) | |
| educational_channels = st.selectbox("educational_channels", ["Yes", "No"]) | |
| referral = st.selectbox("referral", ["Yes", "No"]) | |
| # Convert user input into a DataFrame | |
| input_data = pd.DataFrame([{ | |
| '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 | |
| }]) | |
| # Predict button | |
| if st.button("Predict"): | |
| prediction = model.predict(input_data) | |
| st.write(f"The predicted status for the customer is {prediction[0]}.") |