import streamlit as st import pandas as pd import numpy as np import pickle import json # Load All Files with open('model_rnd.pkl', 'rb') as file_1: model_rnd = pickle.load(file_1) with open('model_scaler.pkl', 'rb') as file_2: model_scaler = pickle.load(file_2) with open('list_num_cols.txt', 'r') as file_3: list_num_cols = json.load(file_3) with open('list_cat_cols.txt', 'r') as file_4: list_cat_cols = json.load(file_4) def run(): with st.form(key='heart_failure'): age = st.number_input('age', min_value=40, max_value=95, value=60, step=1, help='Patient Age') plateletes = st.number_input('plateletes', min_value=0, max_value=1000000, value=0) creatinine = st.number_input('creatinine', min_value=0, max_value=7861, value=0) ejection = st.number_input('ejection', min_value=0, max_value=100, value=0) st.markdown('---') high_blood_pressure = st.selectbox('high_blood_pressure', (0, 1), index=1) anaemia = st.selectbox('anaemia', (0, 1), index=1) diabetes = st.selectbox('diabetes', (0, 1), index=1) sex = st.selectbox('sex', (0, 1), index=1) smoking = st.selectbox('smoking', (0, 1), index=1) st.markdown('---') serum_creatinine = st.number_input('serum_creatinine', min_value=0, max_value=100, value=0) serum_sodium = st.number_input('serum_sodium', min_value=0, max_value=100, value=0) time = st.number_input('time', min_value=0, max_value=10000, value=0) death = st.selectbox('death', (0, 1), index=1) submitted = st.form_submit_button('Predict') data_inf = { 'age': age, 'anaemia': anaemia, 'creatinine': creatinine, 'diabetes': diabetes, 'ejection': ejection, 'high_blood_pressure': high_blood_pressure, 'platelets': plateletes, 'serum_creatinine': serum_creatinine, 'serum_sodium': serum_sodium, 'sex': sex, 'smoking': smoking, 'time': time, 'death': death } data_inf = pd.DataFrame([data_inf]) st.dataframe(data_inf) if submitted: # Split between Numerical Columns and Categorical Columns data_inf_num = data_inf[list_num_cols] data_inf_cat = data_inf[list_cat_cols] data_inf_num # Feature Scaling and Feature Encoding data_inf_num_scaled = model_scaler.transform(data_inf_num) data_inf_final = np.concatenate([data_inf_num_scaled, data_inf_cat], axis=1) # Predict using Linear Regression y_pred_inf = model_rnd.predict(data_inf_final) st.write('# Death Prediction : ', str(int(y_pred_inf))) if __name__ == '__main__': run()