Commit
·
b632019
1
Parent(s):
07d607b
Upload 4 files
Browse files- app.py +65 -0
- model.joblib +3 -0
- requirements.txt +5 -0
- unique_values.joblib +3 -0
app.py
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import joblib
|
2 |
+
import pandas as pd
|
3 |
+
import streamlit as st
|
4 |
+
|
5 |
+
Pros = {'Engineer' : 1,
|
6 |
+
'Healthcare' : 2,
|
7 |
+
'Executive' : 3,
|
8 |
+
'Doctor' : 4,
|
9 |
+
'Artist' : 5,
|
10 |
+
'Lawyer' : 6,
|
11 |
+
'Entertainment' : 7,
|
12 |
+
'Homemaker' : 8,
|
13 |
+
'Marketing' : 9
|
14 |
+
}
|
15 |
+
|
16 |
+
model = joblib.load('model.joblib')
|
17 |
+
unique_values = joblib.load('unique_values.joblib')
|
18 |
+
|
19 |
+
unique_Gender = unique_values["Gender"]
|
20 |
+
unique_Ever_Married = unique_values["Ever_Married"]
|
21 |
+
unique_Graduated = unique_values["Graduated"]
|
22 |
+
unique_Spending_Score = unique_values["Spending_Score"]
|
23 |
+
unique_Var_1 = unique_values["Var_1"]
|
24 |
+
unique_Profession = unique_values["profession"]
|
25 |
+
|
26 |
+
def main():
|
27 |
+
st.title("Customer segmentation")
|
28 |
+
|
29 |
+
with st.form("questionaire"):
|
30 |
+
Gender = st.selectbox("Gender", unique_Gender)
|
31 |
+
Ever_Married = st.selectbox("Married", unique_Ever_Married)
|
32 |
+
Age = st.slider("Age", min_value=18, max_value=89)
|
33 |
+
Graduated = st.selectbox("Graduated", unique_Graduated)
|
34 |
+
Profession = st.selectbox("Profession", unique_Profession)
|
35 |
+
Work_Experience = st.slider("Work_Experience", min_value=0, max_value=14)
|
36 |
+
Spending_Score = st.selectbox("Spending_Score", unique_Spending_Score)
|
37 |
+
Family_Size = st.slider("Family_Size", min_value=1, max_value=9)
|
38 |
+
Var_1 = st.selectbox("Var_1", unique_Var_1)
|
39 |
+
ID = st.slider("ID", min_value=458982, max_value=467974)
|
40 |
+
|
41 |
+
clicked = st.form_submit_button("Predict Segmentation")
|
42 |
+
if clicked:
|
43 |
+
result=model.predict(pd.DataFrame({"Gender": [Gender],
|
44 |
+
"Ever_Married": [Ever_Married],
|
45 |
+
"Age": [Age],
|
46 |
+
"ID": [ID],
|
47 |
+
"Graduated": [Graduated],
|
48 |
+
"Profession": [Pros[Profession]],
|
49 |
+
"Work_Experience": [Work_Experience],
|
50 |
+
"Spending_Score": [Spending_Score],
|
51 |
+
"Family_Size": [Family_Size],
|
52 |
+
"Var_1": [Var_1],
|
53 |
+
}))
|
54 |
+
if result[0] == "A":
|
55 |
+
result = "A"
|
56 |
+
elif result[0] == "B":
|
57 |
+
result = "B"
|
58 |
+
elif result[0] == "C":
|
59 |
+
result = "C"
|
60 |
+
else:
|
61 |
+
result = "D"
|
62 |
+
st.success('The predicted Segmentation is {}'.format(result))
|
63 |
+
|
64 |
+
if __name__=='__main__':
|
65 |
+
main()
|
model.joblib
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f25fcd7ba6383eb00e9286cef1f0d8b344490c1ebeb673fa2a4779c5d2599213
|
3 |
+
size 1244126
|
requirements.txt
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
joblib
|
2 |
+
pandas
|
3 |
+
scikit-learn==1.2.2
|
4 |
+
xgboost==1.7.6
|
5 |
+
altair<5
|
unique_values.joblib
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:280e2ba696c2e70aa1d9668ffab3f7d95d3ab0b4db5749074859941fb1391579
|
3 |
+
size 1763
|