|
|
import streamlit as st |
|
|
import pandas as pd |
|
|
from huggingface_hub import hf_hub_download |
|
|
import joblib |
|
|
|
|
|
|
|
|
model_path = hf_hub_download(repo_id="SarojRauth/Tourism-Package-Prediction", filename="best_Tourism_model_v1.joblib") |
|
|
model = joblib.load(model_path) |
|
|
|
|
|
|
|
|
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. |
|
|
""") |
|
|
|
|
|
|
|
|
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) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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}**") |
|
|
|