620510566 / app.py
Patinya's picture
Update app.py
164ea82
import joblib
import pandas as pd
import streamlit as st
EDU_DICT = {'Bachelorsl': 1,
'Some-college': 2,
'11th': 3,
'HS-grad': 4,
'Prof-school': 5,
'Assoc-acdm': 6,
'Assoc-voc': 7,
'9th': 8,
'7th-8th': 9,
'12th': 10,
'Masters': 11,
'1st-4th': 12,
'10th': 13,
'Doctorate': 14,
'5th-6th': 15,
'Preschool': 16
}
model = joblib.load('model.joblib')
unique_values = joblib.load('unique_values.joblib')
unique_class = unique_values["workclass"]
unique_education = unique_values["education"]
unique_marital = unique_values["marital-status"]
unique_occupation = unique_values["occupation"]
unique_relationship = unique_values["relationship"]
unique_race = unique_values["race"]
unique_sex = unique_values["sex"]
unique_country = unique_values["native-country"]
def main():
st.title("Adult Income")
with st.form("questionaire"):
age = st.slider("Age" , min_value=17 , max_value=90)
workclass = st.selectbox("Workclass" , options=unique_class)
fnlwgt = st.slider("Fnlwgt" , min_value=12285 , max_value=1484705)
education = st.selectbox("Education" , options=unique_education)
education_num = st.slider("Education-num" , min_value=1 , max_value=16)
marital_status = st.selectbox("Marital-status" , options=unique_marital)
occupation = st.selectbox("Occupation" , options=unique_occupation)
relationship = st.selectbox("Relationship" , options=unique_relationship)
race = st.selectbox("Race" , options=unique_race)
sex = st.selectbox("Sex" , options=unique_sex)
capital_gain = st.slider("Capital-gain" , min_value=0 , max_value=99999)
capital_loss = st.slider("Capital-loss" , min_value=0 , max_value=4356)
hours_per_week = st.slider("Hours-per-week" , min_value=1 , max_value=100)
native_country = st.selectbox("Native-country" , options=unique_country)
# clicked==True only when the button is clicked
clicked = st.form_submit_button("Predict income")
if clicked:
result=model.predict(pd.DataFrame({"age": [age],
"workclass": [workclass],
"fnlwgt": [fnlwgt],
"education": [EDU_DICT[education]],
"education_num": [education_num],
"marital_status": [marital_status],
"occupation": [occupation],
"relationship": [relationship],
"race": [race],
"sex": [sex],
"capital-gain": [capital_gain],
"capital-loss": [capital_loss],
"hours-per-week": [hours_per_week],
"native-country": [native_country]}))
# Show prediction
result = '>50k' if result[0] == 1 else '<=50k'
st.success("Your predicted income is "+result)
# Run main()
if __name__ == "__main__" :
main()