Spaces:
Sleeping
Sleeping
Upload 4 files
Browse files- app.py +66 -0
- model.joblib +3 -0
- requirements.txt +5 -0
- unique_values.joblib +3 -0
app.py
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import joblib
|
2 |
+
import pandas as pd
|
3 |
+
import streamlit as st
|
4 |
+
|
5 |
+
EDU_DICT = {'Preschool': 1,
|
6 |
+
'1st-4th': 2,
|
7 |
+
'5th-6th': 3,
|
8 |
+
'7th-8th': 4,
|
9 |
+
'9th': 5,
|
10 |
+
'10th': 6,
|
11 |
+
'11th': 7,
|
12 |
+
'12th': 8,
|
13 |
+
'HS-grad': 9,
|
14 |
+
'Some-college': 10,
|
15 |
+
'Assoc-voc': 11,
|
16 |
+
'Assoc-acdm': 12,
|
17 |
+
'Bachelors': 13,
|
18 |
+
'Masters': 14,
|
19 |
+
'Prof-school': 15,
|
20 |
+
'Doctorate': 16
|
21 |
+
}
|
22 |
+
|
23 |
+
model = joblib.load('model.joblib')
|
24 |
+
unique_values = joblib.load('unique_values.joblib')
|
25 |
+
|
26 |
+
unique_class = unique_values["workclass"]
|
27 |
+
unique_education = unique_values["education"]
|
28 |
+
unique_marital_status = unique_values["marital.status"]
|
29 |
+
unique_relationship = unique_values["relationship"]
|
30 |
+
unique_occupation = unique_values["occupation"]
|
31 |
+
unique_sex = unique_values["sex"]
|
32 |
+
unique_race = unique_values["race"]
|
33 |
+
unique_country = unique_values["native.country"]
|
34 |
+
|
35 |
+
def main():
|
36 |
+
st.title("Adult Income Analysis")
|
37 |
+
|
38 |
+
with st.form("questionaire"):
|
39 |
+
age = st.slider("Age", min_value=10, max_value=100)
|
40 |
+
workclass = st.selectbox("Workclass", unique_class)
|
41 |
+
education = st.selectbox("Education", unique_education)
|
42 |
+
Marital_Status = st.selectbox("Marital Status", unique_marital_status)
|
43 |
+
occupation = st.selectbox("Occupation", unique_occupation)
|
44 |
+
relationship = st.selectbox("Relationship", unique_relationship)
|
45 |
+
race = st.selectbox("Race", unique_race)
|
46 |
+
sex = st.selectbox("Sex", unique_sex)
|
47 |
+
hours_per_week = st.slider("Hours per week", min_value=1, max_value=100)
|
48 |
+
native_country = st.selectbox("Country", unique_country)
|
49 |
+
|
50 |
+
clicked = st.form_submit_button("Predict income")
|
51 |
+
if clicked:
|
52 |
+
result=model.predict(pd.DataFrame({"age": [age],
|
53 |
+
"workclass": [workclass],
|
54 |
+
"education": [EDU_DICT[education]],
|
55 |
+
"marital.status": [Marital_Status],
|
56 |
+
"occupation": [occupation],
|
57 |
+
"relationship": [relationship],
|
58 |
+
"race": [race],
|
59 |
+
"sex": [sex],
|
60 |
+
"hours.per.week": [hours_per_week],
|
61 |
+
"native.country": [native_country]}))
|
62 |
+
result = '>50K' if result[0] == 1 else '<=50K'
|
63 |
+
st.success('The predicted income is {}'.format(result))
|
64 |
+
|
65 |
+
if __name__=='__main__':
|
66 |
+
main()
|
model.joblib
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:632a9d84c65c2d26b8c4af20f37297d8324597595c848d843f805435b634f1b5
|
3 |
+
size 284613
|
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:6cf6f87cf9db4cc1fa51bed068a654b336484b543c8df6c454e012b187f5e6c7
|
3 |
+
size 3546
|