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()