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