|
import joblib |
|
import pandas as pd |
|
import streamlit as st |
|
|
|
Pros= {'Engineer': 1, |
|
'Healthcare': 2, |
|
'Executive': 3, |
|
'Doctor': 4, |
|
'Artist': 5, |
|
'Lawyer': 6, |
|
'Entertainment': 7, |
|
'Homemaker': 8, |
|
'Marketing': 9} |
|
model = joblib.load('model.joblib') |
|
unique_values = joblib.load('unique_values.joblib') |
|
|
|
def main(): |
|
st.title("Customer Segmentation Prediction") |
|
with st.form("questionnaire"): |
|
Gender = st.selectbox("Gender", unique_values["Gender"]) |
|
Ever_Married = st.selectbox("Ever Married", unique_values["Ever_Married"]) |
|
Age = st.slider("Age", min_value=18, max_value=89) |
|
Graduated = st.selectbox("Graduated", unique_values["Graduated"]) |
|
Profession = st.selectbox("Profession", unique_values["Profession"]) |
|
Work_Experience = st.slider("Work Experience", min_value=0, max_value=14) |
|
Spending_Score = st.selectbox("Spending Score", unique_values["Spending_Score"]) |
|
Family_Size = st.slider("Family Size", min_value=1, max_value=9) |
|
Var_1 = st.selectbox("Var_1", unique_values["Var_1"]) |
|
ID = st.slider("ID", min_value=458982, max_value=467974) |
|
|
|
clicked = st.form_submit_button("Predict Segmentation") |
|
if clicked: |
|
result = model.predict(pd.DataFrame({"Gender": [Gender], |
|
"Ever_Married": [Ever_Married], |
|
"Age": [Age], |
|
"ID": [ID], |
|
"Graduated": [Graduated], |
|
"Profession": [Pros[Profession]], |
|
"Work_Experience": [Work_Experience], |
|
"Spending_Score": [Spending_Score], |
|
"Family_Size": [Family_Size], |
|
"Var_1": [Var_1] |
|
})) |
|
if result[0] == 0: |
|
result = "A" |
|
elif result[0] == 1: |
|
result = "B" |
|
elif result[0] == 2: |
|
result = "C" |
|
else: |
|
result = "D" |
|
st.success('Predicted Segmentation: {}'.format(result)) |
|
|
|
if __name__ == '__main__': |
|
main() |
|
|