Graded_Challange_3-P1 / prediction.py
Azrieldr
newer
4527750
import streamlit as st
import pandas as pd
import numpy as np
import pickle
# Load All Files
with open('rf.pkl', 'rb') as file_1:
rf= pickle.load(file_1)
with open('GB.pkl', 'rb') as file_2:
GB=pickle.load(file_2)
with open('scaler.pkl', 'rb') as file_3:
scaler=pickle.load(file_3)
def run():
with st.form(key='form_prediksi'):
name = st.text_input('Nama', value='')
anaemia= st.radio('Apakah memiliki anaemia?', ('Ya', 'Tidak'))
if anaemia=='Ya':
anaemianum=1
else: anaemianum=0
age= st.number_input('Umur', min_value=16, max_value=80, value=50, step=1)
creatinine_phosphokinase = st.number_input('Creatinine Phosphokinase', min_value=0, max_value=2000, value=1000)
diabetes = st.radio('Apakah memiliki Diabetes?', ('Ya', 'Tidak'))
if diabetes=='Ya':
diabetesnum=1
else: diabetesnum=0
ejection_fraction = st.number_input('Ejection Fraction', min_value=0, max_value=100, value=50)
high_blood_pressure = st.radio('Apakah memiliki darah tinggi?', ('Ya', 'Tidak'))
if high_blood_pressure=='Ya':
high_blood_pressurenum=1
else: high_blood_pressurenum=0
platelets = st.number_input('Jumlah trombosit', min_value=0, max_value=300000, value=200000)
serum_creatinine = st.number_input('Serum creatinine', min_value=0, max_value=100, value=50)
serum_sodium = st.number_input('Serum sodium', min_value=0.0, max_value=2.0, value=0.4, format='%.2f', step=0.1)
sex = st.radio('Kelamin', ('Perempuan', 'Laki-Laki'))
if sex=='Laki-Laki':
sexnum=1
else: sexnum=0
smoking = st.radio('Apakah merokok?', ('Ya', 'Tidak'))
if smoking=='Ya':
smokingnum=1
else: smokingnum=0
time = st.number_input('Waktu', min_value=0, max_value=240, value=120)
submitted = st.form_submit_button('Predict')
data_inf = {
'age': age,
'anaemia': anaemianum,
'creatinine_phosphokinase':creatinine_phosphokinase,
'diabetes':diabetesnum,
'ejection_fraction':ejection_fraction,
'high_blood_pressure':high_blood_pressurenum,
'platelets': platelets,
'serum_creatinine': serum_creatinine,
'serum_sodium':serum_sodium,
'sex':sexnum,
'smoking':smokingnum,
'time':time
}
data_inf = pd.DataFrame([data_inf])
st.dataframe(data_inf)
if submitted:
data_inf_scaled=scaler.transform(data_inf)
y_pred_inf_rf = rf.predict(data_inf_scaled)
y_pred_inf_GB= GB.predict(data_inf_scaled)
st.write('# Prediksi Gradient Boosting: ', str(int(y_pred_inf_GB)))
st.write('# Prediksi Randomforest: ', str(int(y_pred_inf_rf)))
if __name__== '__main__':
run()