FVLG / main.py
zendeer's picture
Upload main.py
b9d2247
raw
history blame
2.06 kB
import streamlit as st
import json
import requests
import pandas as pd
import numpy as np
import pickle
st.title("Прогнозирование фракции выброса левого желудочка")
col1, col2, col3, col4, col5 = st.columns(5)
kco = 57.0
kcr = 36.0
kdo = 128.5
cdla = 28.0
nyha = 2.0
mod = st.radio(
"Выберите модель",
options=["Линейная", "Нелинейная"]
)
with col1:
f1 = st.text_input('КCО')
with col2:
f2 =st.text_input('КСР')
with col3:
f3 = st.text_input('КДО')
with col4:
f4 = st.text_input('СДЛА')
with col5:
f5 = st.text_input('NYHA')
filename_model = 'huber.pickle'
filename_scaler = 'scaler.pickle'
filename_cat = 'catboost.pickle'
loaded_model = pickle.load(open(filename_model, 'rb'))
loaded_scaler = pickle.load(open(filename_scaler, 'rb'))
loaded_cat = pickle.load(open(filename_cat, 'rb'))
if st.button('OK'):
if f1 == '':
st.write('Вы не ввели КСО, будет использовано медианное значение')
f1 = kco
if f2 == '':
st.write('Вы не ввели КСР, будет использовано медианное значение')
f2 = kcr
if f3 == '':
st.write('Вы не ввели КДО, будет использовано медианное значение')
f3 = kdo
if f4 == '':
st.write('Вы не ввели СДЛА, будет использовано медианное значение')
f4 = cdla
if f5 == '':
st.write('Вы не ввели NYHA, будет использовано медианное значение')
f5 = nyha
line = np.array([[float(f1), float(f2), float(f3), float(f4), float(f5)]])
if mod == 'Линейная':
line_norm = loaded_scaler.transform(line)
res = loaded_model.predict(line_norm)[0]
st.write(int(res))
else:
res = loaded_cat.predict(line)[0]
st.write(int(res))