SarojRauth's picture
Update app.py
ee25a43 verified
import streamlit as st
import pandas as pd
from huggingface_hub import hf_hub_download
import joblib
# Download and load the model
model_path = hf_hub_download(repo_id="SarojRauth/Tourism-Package-Prediction", filename="best_Tourism_model_v1.joblib")
model = joblib.load(model_path)
# Streamlit UI for Machine Failure Prediction
st.title("Best Tourism Products - Prediction App")
st.write("""
This application predicts the likelihood of a customer opting for a tourism product based on its given parameters.
Please enter the details to get a prediction.
""")
# User input
age = st.number_input("Age", min_value=18, max_value=61, value=25, step=1)
TypeofContact = st.selectbox("Type_of_Contact", ["Self Enquiry", "Company Invited"])
CityTier = st.selectbox("CityTier", ["1", "2", "3"])
DurationOfPitch = st.number_input("DurationOfPitch", min_value=5, max_value=36, value=25, step=1)
Gender = st.selectbox("Gender", ["Male", "Female", "Fe male"])
NumberOfPersonVisiting = st.number_input("NumberOfPersonVisiting", min_value=1, max_value=5, value=2, step=1)
ProductPitched = st.selectbox("ProductPitched", ["Basic", "Deluxe", "Standard", "Super Deluxe", "King"])
PreferredPropertyStar = st.selectbox("PreferredPropertyStar", ["3", "4", "5"])
NumberOfTrips = st.number_input("NumberOfTrips", min_value=1, max_value=22, value=2, step=1)
Passport = st.selectbox("Passport", ["0", "1"])
PitchSatisfactionScore = st.selectbox("PitchSatisfactionScore", ["1", "2", "3", "4", "5"])
OwnCar = st.selectbox("OwnCar", ["0", "1"])
NumberOfFollowups = st.number_input("Number of Followups", min_value=1, max_value=6, value=1)
occupation = st.selectbox("Occupation of Customer", ["Salaried", "Free Lancer", "Small Business", "Large Business"])
maritalstatus = st.selectbox("Marital Status", ["Single", "Divorced", "Married", "Unmarried"])
NumberOfChildrenVisiting = st.number_input("NumberOfChildrenVisiting", min_value=0, max_value=3, value=2, step=1)
Designation = st.selectbox("Designation", ["AVP", "Manager", "Executive", "Senior Manager","VP"])
MonthlyIncome = st.number_input("MonthlyIncome", min_value=1000, max_value=98678, value=1000)
# Assemble input into DataFrame
input_data = pd.DataFrame([{
'Age': age,
'TypeofContact': TypeofContact,
'CityTier': CityTier,
'DurationOfPitch': DurationOfPitch,
'Gender': Gender,
'NumberOfPersonVisiting': NumberOfPersonVisiting,
'ProductPitched': ProductPitched,
'PreferredPropertyStar': PreferredPropertyStar,
'NumberOfTrips': NumberOfTrips,
'Passport': Passport,
'PitchSatisfactionScore': PitchSatisfactionScore,
'OwnCar': OwnCar,
'NumberOfFollowups': NumberOfFollowups,
'Occupation': occupation,
'MaritalStatus': maritalstatus,
'NumberOfChildrenVisiting': NumberOfChildrenVisiting,
'Designation': Designation,
'MonthlyIncome': MonthlyIncome
}])
if st.button("Predict ProdTaken"):
prediction = model.predict(input_data)[0]
result = "Product Taken" if prediction == 1 else "No Product Taken"
st.subheader("Prediction Result:")
st.success(f"The model predicts: **{result}**")