income / app.py
xxxqceoqxx's picture
Update app.py
fdf232a
import joblib
import pandas as pd
import streamlit as st
EDU_DICT = {'Preschool': 1,
'1st-4th': 2,
'5th-6th': 3,
'7th-8th': 4,
'9th': 5,
'10th': 6,
'11th': 7,
'12th': 8,
'HS-grad': 9,
'Some-college': 10,
'Assoc-voc': 11,
'Assoc-acdm': 12,
'Bachelors': 13,
'Masters': 14,
'Prof-school': 15,
'Doctorate': 16
}
model = joblib.load('model (2).joblib')
unique_values = joblib.load('unique_values (2).joblib')
unique_class = unique_values["workclass"]
unique_education = unique_values["education"]
unique_marital_status = unique_values["marital.status"]
unique_relationship = unique_values["relationship"]
unique_occupation = unique_values["occupation"]
unique_sex = unique_values["sex"]
unique_race = unique_values["race"]
unique_country = unique_values["native.country"]
print(list(unique_values.keys()))
def main():
st.title("Adult Income")
with st.form("questionnaire"):
age = st.slider("Age", min_value=10, max_value=100)
workclass = st.selectbox("Workclass", options=unique_class)
fnlwgt = st.selectbox("fnlwgt", options=unique_fnlwgt) # ต้องกำหนด unique_fnlwgt ก่อนใช้
education = st.selectbox("Education", options=unique_education)
educational_num = st.selectbox("Educational Num", options=unique_education_num) # ต้องกำหนด unique_education_num ก่อนใช้
marital_status = st.selectbox("Marital Status", options=unique_marital_status)
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) # ต้องกำหนด unique_gender ก่อนใช้
capital_gain = st.selectbox("Capital Gain", options=unique_capital_gain) # ต้องกำหนด unique_capital_gain ก่อนใช้
capital_loss = st.selectbox("Capital Loss", options=unique_capital_loss) # ต้องกำหนด unique_capital_loss ก่อนใช้
hours_per_week = st.slider("Hours per week", min_value=1, max_value=100)
native_country = st.selectbox("Country", options=unique_country)
clicked = st.form_submit_button("predict income")
if clicked:
education_encoded = EDU_DICT.get(education, 0) # Default to 0 if education is not found
result = model.predict(pd.DataFrame({"age": [age],
"workclass": [workclass],
"fnlwgt": [fnlwgt],
"education": [education_encoded],
"educational-num": [educational_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]}))
result = '>50K' if result[0] == 1 else '<=50K'
st.success('The predicted income is {}'.format(result))
if __name__ == '__main__':
main()