Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| import joblib | |
| st.title("Tourism Prediction App") | |
| # Loading model | |
| try: | |
| model = joblib.load("src/model.pkl") | |
| st.success("Model loaded successfully!") | |
| except Exception as e: | |
| st.error(f"Model failed to load: {e}") | |
| st.stop() | |
| st.header("Enter Customer Details") | |
| # Numerical inputs | |
| age = st.number_input("Age", 18, 100, 30) | |
| income = st.number_input("Monthly Income", 0, 1000000, 50000) | |
| duration_pitch = st.number_input("Duration Of Pitch", 0, 100, 10) | |
| num_person = st.number_input("Number Of Persons Visiting", 1, 10, 2) | |
| num_followups = st.number_input("Number Of Followups", 0, 10, 2) | |
| num_trips = st.number_input("Number Of Trips", 0, 50, 5) | |
| pitch_score = st.number_input("Pitch Satisfaction Score", 1, 5, 3) | |
| children = st.number_input("Number Of Children Visiting", 0, 5, 0) | |
| property_star = st.number_input("Preferred Property Star", 1, 5, 3) | |
| # Categorical inputs | |
| gender = st.selectbox("Gender", ["Male", "Female"]) | |
| marital = st.selectbox("Marital Status", ["Single", "Married"]) | |
| occupation = st.selectbox("Occupation", ["Salaried", "Self Employed", "Student"]) | |
| designation = st.selectbox("Designation", ["Manager", "Executive", "Senior Manager", "AVP", "VP"]) | |
| product = st.selectbox("Product Pitched", ["Basic", "Standard", "Deluxe", "Super Deluxe"]) | |
| contact = st.selectbox("Type of Contact", ["Company Invited", "Self Enquiry"]) | |
| city = st.selectbox("City Tier", [1, 2, 3]) | |
| passport = st.selectbox("Passport", [0, 1]) | |
| own_car = st.selectbox("Own Car", [0, 1]) | |
| # Prediction | |
| if st.button("Predict"): | |
| try: | |
| input_df = pd.DataFrame([{ | |
| "Age": age, | |
| "TypeofContact": contact, | |
| "CityTier": city, | |
| "DurationOfPitch": duration_pitch, | |
| "Occupation": occupation, | |
| "Gender": gender, | |
| "NumberOfPersonVisiting": num_person, | |
| "NumberOfFollowups": num_followups, | |
| "ProductPitched": product, | |
| "PreferredPropertyStar": property_star, | |
| "MaritalStatus": marital, | |
| "NumberOfTrips": num_trips, | |
| "Passport": passport, | |
| "PitchSatisfactionScore": pitch_score, | |
| "OwnCar": own_car, | |
| "NumberOfChildrenVisiting": children, | |
| "Designation": designation, | |
| "MonthlyIncome": income | |
| }]) | |
| prediction = model.predict(input_df) | |
| st.success(f"Prediction: {prediction[0]}") | |
| except Exception as e: | |
| st.error(f"Error during prediction: {e}") |