import joblib import pandas as pd import streamlit as st model = joblib.load('model.joblib') unique_values = joblib.load('unique_values.joblib') unique_anaemia = unique_values["anaemia"] unique_diabetes = unique_values["diabetes"] unique_high_blood_pressure = unique_values["high_blood_pressure"] unique_sex = unique_values["sex"] unique_smoking = unique_values["smoking"] def main(): st.title("Predict death rates from heart failure") with st.form("questionaire"): age = st.slider("Age", min_value=10, max_value=100) anaemia = st.selectbox("anaemia", options=unique_anaemia) creatinine_phosphokinase = st.slider("creatinine_phosphokinase (mcg/L)", min_value=10, max_value=120) diabetes = st.selectbox("diabetes", options=unique_diabetes) ejection_fraction = st.slider("ejection_fraction (percentage)", min_value=0, max_value=100) high_blood_pressure = st.selectbox("high_blood_pressure", options=unique_high_blood_pressure) platelets = st.slider("platelets (kiloplatelets/mL)", min_value=150000, max_value=300000) serum_creatinine = st.slider("serum_creatinine (mg/dL)", min_value=0.00, max_value=3.00) serum_sodium = st.slider("serum_sodium (mEq/L)", min_value=100, max_value=150) sex = st.selectbox("sex", options=unique_sex) smoking = st.selectbox("smoking", options=unique_smoking) time = st.slider("time: follow-up period (days)", min_value=0, max_value=300) # clicked==True only when the button is clicked clicked = st.form_submit_button("Predict death rates") if clicked: result=model.predict(pd.DataFrame({"age": [age], "anaemia": [anaemia], "creatinine_phosphokinase": [creatinine_phosphokinase], "diabetes": [diabetes], "ejection_fraction": [ejection_fraction], "high_blood_pressure": [high_blood_pressure], "platelets": [platelets], "serum_creatinine": [serum_creatinine], "serum_sodium": [serum_sodium], "sex": [sex], "smoking": [smoking], "time": [time]})) # Show prediction result = 'DEATH' if result[0] == 1 else 'NO DEATH' st.success("Your prediction death rates is "+result) # Run main() if __name__ == "__main__": main()