Upload main.py
Browse files
main.py
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import json
|
3 |
+
import requests
|
4 |
+
import pandas as pd
|
5 |
+
import numpy as np
|
6 |
+
import pickle
|
7 |
+
|
8 |
+
st.title("Прогнозирование фракции выброса левого желудочка")
|
9 |
+
|
10 |
+
|
11 |
+
col1, col2, col3, col4, col5 = st.columns(5)
|
12 |
+
|
13 |
+
kco = 57.0
|
14 |
+
kcr = 36.0
|
15 |
+
kdo = 128.5
|
16 |
+
cdla = 28.0
|
17 |
+
nyha = 2.0
|
18 |
+
|
19 |
+
mod = st.radio(
|
20 |
+
"Выберите модель",
|
21 |
+
options=["Линейная", "Нелинейная"]
|
22 |
+
)
|
23 |
+
|
24 |
+
with col1:
|
25 |
+
f1 = st.text_input('КCО')
|
26 |
+
with col2:
|
27 |
+
f2 =st.text_input('КСР')
|
28 |
+
with col3:
|
29 |
+
f3 = st.text_input('КДО')
|
30 |
+
with col4:
|
31 |
+
f4 = st.text_input('СДЛА')
|
32 |
+
with col5:
|
33 |
+
f5 = st.text_input('NYHA')
|
34 |
+
|
35 |
+
|
36 |
+
filename_model = 'huber.pickle'
|
37 |
+
filename_scaler = 'scaler.pickle'
|
38 |
+
filename_cat = 'catboost.pickle'
|
39 |
+
|
40 |
+
loaded_model = pickle.load(open(filename_model, 'rb'))
|
41 |
+
loaded_scaler = pickle.load(open(filename_scaler, 'rb'))
|
42 |
+
loaded_cat = pickle.load(open(filename_cat, 'rb'))
|
43 |
+
|
44 |
+
|
45 |
+
if st.button('OK'):
|
46 |
+
|
47 |
+
if f1 == '':
|
48 |
+
st.write('Вы не ввели КСО, будет использовано медианное значение')
|
49 |
+
f1 = kco
|
50 |
+
if f2 == '':
|
51 |
+
st.write('Вы не ввели КСР, будет использовано медианное значение')
|
52 |
+
f2 = kcr
|
53 |
+
if f3 == '':
|
54 |
+
st.write('Вы не ввели КДО, будет использовано медианное значение')
|
55 |
+
f3 = kdo
|
56 |
+
if f4 == '':
|
57 |
+
st.write('Вы не ввели СДЛА, будет использовано медианное значение')
|
58 |
+
f4 = cdla
|
59 |
+
if f5 == '':
|
60 |
+
st.write('Вы не ввели NYHA, будет использовано медианное значение')
|
61 |
+
f5 = nyha
|
62 |
+
|
63 |
+
line = np.array([[float(f1), float(f2), float(f3), float(f4), float(f5)]])
|
64 |
+
|
65 |
+
if mod == 'Линейная':
|
66 |
+
line_norm = loaded_scaler.transform(line)
|
67 |
+
res = loaded_model.predict(line_norm)[0]
|
68 |
+
st.write(int(res))
|
69 |
+
else:
|
70 |
+
res = loaded_cat.predict(line)[0]
|
71 |
+
st.write(int(res))
|
72 |
+
|