Spaces:
Runtime error
Runtime error
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() | |