andrewsunanda
commited on
Commit
•
dd0c888
1
Parent(s):
785108b
Submit Model
Browse files- app.py +12 -0
- eda.py +183 -0
- h8dsft_P1G3_andrewsunanda.csv +300 -0
- list_cat_cols.txt +1 -0
- list_num_cols.txt +1 -0
- model_encoder.pkl +3 -0
- model_rf.pkl +3 -0
- model_scaler.pkl +3 -0
- prediction.py +94 -0
- requirements.txt +6 -0
app.py
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import eda
|
3 |
+
import prediction
|
4 |
+
|
5 |
+
|
6 |
+
navigation = st.sidebar.selectbox('Pilih Halaman', ('EDA', 'Predict'))
|
7 |
+
|
8 |
+
|
9 |
+
if navigation == 'EDA':
|
10 |
+
eda.run()
|
11 |
+
else:
|
12 |
+
prediction.run()
|
eda.py
ADDED
@@ -0,0 +1,183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import numpy as np
|
3 |
+
import pandas as pd
|
4 |
+
import seaborn as sns
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import plotly.express as px
|
7 |
+
|
8 |
+
st.set_page_config(page_title='Heart Failure Dataset Analysis', layout='wide', initial_sidebar_state='expanded')
|
9 |
+
|
10 |
+
def run():
|
11 |
+
|
12 |
+
# Buat Title
|
13 |
+
st.title('EDA Dataset Heart Failure')
|
14 |
+
|
15 |
+
# Buat Deskripsi
|
16 |
+
st.subheader('Written by Franciscus Andrew Sunanda, FTDS-RMT-018')
|
17 |
+
|
18 |
+
st.markdown('---')
|
19 |
+
|
20 |
+
'''
|
21 |
+
Dataset : Heart Failure Data Set
|
22 |
+
|
23 |
+
Objective : Dapat memprediksi apakah seseorang akan mengalami Heart Failure berdasarkan kondisi kesehatan nya
|
24 |
+
|
25 |
+
Evaluasi nya menggunakan Recall dari Classification Report, Accuracy Score, dan False Negative Rate
|
26 |
+
'''
|
27 |
+
|
28 |
+
st.markdown('---')
|
29 |
+
|
30 |
+
st.write('## Dataset')
|
31 |
+
data=pd.read_csv('h8dsft_P1G3_andrewsunanda.csv')
|
32 |
+
# Rename nama column agar lebih mudah digunakan
|
33 |
+
|
34 |
+
data = data.rename(columns={'anaemia': 'anemia','creatinine_phosphokinase': 'cpk', 'high_blood_pressure': 'hypertension', 'DEATH_EVENT': 'death'})
|
35 |
+
|
36 |
+
st.dataframe(data)
|
37 |
+
|
38 |
+
'''
|
39 |
+
Berikut ini adalah list column yang ada dalam dataset ini
|
40 |
+
|
41 |
+
Header | Definition | Keys
|
42 |
+
---|---|---
|
43 |
+
`age` | Age (in years) |
|
44 |
+
`anaemia` | Decrease of red blood cells | 0 = No, 1 = Yes
|
45 |
+
`cpk` | Level of the CPK enzyme in the blood (mcg/L) |
|
46 |
+
`diabetes` | If the patient has diabetes | 0 = No, 1 = Yes
|
47 |
+
`ejection_fraction` | Percentage of blood leaving the heart at each contraction (percentage) |
|
48 |
+
`hypertension` | If the patient has hypertension | 0 = No, 1 = Yes
|
49 |
+
`platelets` | Platelets in the blood (kiloplatelets/mL) |
|
50 |
+
`serum_creatinine` | Level of serum creatinine in the blood (mg/dL)
|
51 |
+
`serum_sodium` | Level of serum sodium in the blood (mEq/L)
|
52 |
+
`sex` | Gender | 0 = Female, 1 = Male
|
53 |
+
`smoking` | If the patient smokes or not | 0 = No, 1 = Yes
|
54 |
+
`time` | Follow-up period (in days) |
|
55 |
+
`death` | If the patient deceased during the follow-up period | 0 = No, 1 = Yes
|
56 |
+
'''
|
57 |
+
|
58 |
+
st.markdown('---')
|
59 |
+
|
60 |
+
st.write('## Checking Balance / Imbalance')
|
61 |
+
|
62 |
+
kelas = data['death'].value_counts()
|
63 |
+
|
64 |
+
fig = plt.figure()
|
65 |
+
plt.pie(kelas, autopct='%.0f%%')
|
66 |
+
plt.title('Perbandingan jumlah target klasifikasi dalam dataset')
|
67 |
+
plt.legend(labels=['Alive','Dead'], loc='upper left')
|
68 |
+
st.pyplot(fig)
|
69 |
+
|
70 |
+
'''
|
71 |
+
Kita lihat dari piechart diatas, dalam data kali ini data termasuk Mild Imbalance, jadi ada baik nya nanti kita lakukan resampling data agar menjadi lebih balance, untuk memastikan model yang kita buat dapat memprediksi dengan lebih akurat
|
72 |
+
'''
|
73 |
+
|
74 |
+
st.markdown('---')
|
75 |
+
|
76 |
+
st.write('## Each Features Correlation with Heart Failure')
|
77 |
+
|
78 |
+
corr = data.corrwith(data['death'])
|
79 |
+
fig = plt.figure()
|
80 |
+
sns.heatmap(corr.to_frame(), cmap='RdYlGn', annot=True, vmin=-1,vmax=1)
|
81 |
+
st.pyplot(fig)
|
82 |
+
|
83 |
+
'''
|
84 |
+
- Column Time menonjol kelihatan nya sebagai column nya paling negatively effect Hasil Klasifikasi nya. Asumsi nya berarti semakin lama (tinggi) patient tersebut bertahan setelah menerima bantuan medis, maka kemungkinan lebih besar patient akan hidup
|
85 |
+
- Sebaliknya, yang paling positively effect kematian patient tampak nya adalah column serum_creatinine. Dapat diasumsikan bahwa semakin tinggi serum creatinine ini (diluar batas normal) makan kemungkinan untuk meninggal semakin besar
|
86 |
+
- Kita akan cek lagi asumsi yang telah kita buat di bagian berikut nya
|
87 |
+
'''
|
88 |
+
st.markdown('---')
|
89 |
+
|
90 |
+
st.write('## Time')
|
91 |
+
|
92 |
+
fig = plt.figure(figsize=(12, 4))
|
93 |
+
sns.scatterplot(x='time', y='death', data=data)
|
94 |
+
plt.title('Perbandingan Kematian dengan Lama Follow-up period')
|
95 |
+
plt.yticks([0, 1], ['Alive', 'Dead'])
|
96 |
+
st.pyplot(fig)
|
97 |
+
|
98 |
+
'''
|
99 |
+
Bisa kita bilang asumsi yang telah kita buat sebelum nya bisa dibilang somewhat betul, karena bagi orang yang menerima bantuan selama di bawah 50 hari, sangat jarang yang bisa bertahan hidup
|
100 |
+
'''
|
101 |
+
|
102 |
+
st.markdown('---')
|
103 |
+
|
104 |
+
st.write('## Serum Creatinine')
|
105 |
+
|
106 |
+
fig = plt.figure(figsize=(12, 4))
|
107 |
+
sns.scatterplot(x='serum_creatinine', y='death', data=data)
|
108 |
+
plt.title('Perbandingan Kematian dengan Level Serum Creatinine')
|
109 |
+
plt.yticks([0, 1], ['Alive', 'Dead'])
|
110 |
+
st.pyplot(fig)
|
111 |
+
|
112 |
+
'''
|
113 |
+
Asumsi kita mengenai Serum Creatinine ini tidak bisa dibilang sepenuh nya betul karena kalau dilihat di bagian yang Alive, ada juga patient dengan level serum creatinine ini yang sudah sangat tinggi dibandingkan nilai normal orang dewasa, namun masih bisa staying alive setelah menerima bantuan medis
|
114 |
+
|
115 |
+
Referensi : [Level Normal Serum Creatinine](https://www.wikihow.com/images/thumb/e/ea/Bring-Down-High-Creatinine-Levels-Step-3-Version-3.jpg/v4-460px-Bring-Down-High-Creatinine-Levels-Step-3-Version-3.jpg.webp)
|
116 |
+
'''
|
117 |
+
|
118 |
+
st.markdown('---')
|
119 |
+
|
120 |
+
st.write('## Anemia and Hypertension')
|
121 |
+
|
122 |
+
'''
|
123 |
+
Setelah melakukan searching di google, saya menemukan suatu [sumber](https://www.alodokter.com/gagal-jantung) dimana disana menyatakan bahwa Gagal Jantung ini dapat disebabkan oleh Anemia dan Hypertensi. Maka saya akan coba cek apakah dalam dataset ini Anemia dan Hypertensi ini sangat mempengaruhi outcome nya
|
124 |
+
'''
|
125 |
+
|
126 |
+
# Ubah menjadi dataframe terpisah untuk di buat menjadi plot
|
127 |
+
test = data.groupby(['hypertension','anemia', 'death']).size().reset_index(name='count')
|
128 |
+
test['category'] = test['hypertension'].astype(str) + '-' + test['anemia'].astype(str)
|
129 |
+
|
130 |
+
fig = plt.figure()
|
131 |
+
ax = sns.barplot(x='category', y='count', data=test, hue='death', palette='RdBu')
|
132 |
+
plt.title('Amount of people that has default and no default payment divided by their age group')
|
133 |
+
for i in ax.containers:
|
134 |
+
ax.bar_label(i,)
|
135 |
+
handles, labels = ax.get_legend_handles_labels()
|
136 |
+
plt.xticks([0, 1, 2, 3], ['None', 'Anemia', 'Hypertension', 'Both'])
|
137 |
+
plt.legend(handles=handles, labels=['Alive','Dead'], loc='upper right')
|
138 |
+
st.pyplot(fig)
|
139 |
+
|
140 |
+
st.markdown('---')
|
141 |
+
|
142 |
+
st.write('## Platelets')
|
143 |
+
|
144 |
+
'''
|
145 |
+
Platelets atau trombosit memiliki fungsi penting untuk membantu proses pembekuan darah. Range level normal adalah antara 150k - 450k / mL darah. Jika berlebihan trombosit dapat menyebabkan heart attack dan juga stroke, sedangkan kekurangan membuat pendarahan internal maupun eksternal. Mari kita coba kelompok kan colum platelets ini menjadi category Low, Normal, High
|
146 |
+
|
147 |
+
Referensi : [Apa itu Platelets?](https://www.hopkinsmedicine.org/health/conditions-and-diseases/what-are-platelets-and-why-are-they-important)
|
148 |
+
'''
|
149 |
+
|
150 |
+
# Buat Column Level Trombosit / Platelets
|
151 |
+
test = data['platelets']
|
152 |
+
trombosit = []
|
153 |
+
for x in test:
|
154 |
+
if x < 150000:
|
155 |
+
trombosit.append('Low')
|
156 |
+
elif x >= 450000:
|
157 |
+
trombosit.append('High')
|
158 |
+
else:
|
159 |
+
trombosit.append('Normal')
|
160 |
+
data['trombosit'] = trombosit
|
161 |
+
|
162 |
+
level = data.groupby(['trombosit', 'death']).size().reset_index(name='count')
|
163 |
+
fig = plt.figure()
|
164 |
+
ax = sns.barplot(x='trombosit', y='count', data=level, hue='death')
|
165 |
+
for i in ax.containers:
|
166 |
+
ax.bar_label(i,)
|
167 |
+
plt.title('Number of people by their Cholesterol Level')
|
168 |
+
handles, labels = ax.get_legend_handles_labels()
|
169 |
+
plt.legend(handles=handles, labels=['Alive','Death'], loc='upper right')
|
170 |
+
st.pyplot(fig)
|
171 |
+
|
172 |
+
st.markdown('---')
|
173 |
+
|
174 |
+
st.write('# Conclusion')
|
175 |
+
|
176 |
+
'''
|
177 |
+
- Semakin lama trial period (column time) seorang patient, semakin besar kemungkinan dia hidup.
|
178 |
+
- Kita jauh lebih beresiko untuk gagal jantung apabila kita mengidap both Hipertensi dan juga Anemia.
|
179 |
+
- Level Trombosit yang terlalu rendah maupun terlalu tinggi sama sama tidak baik dan dapat menyebabkan gagal jantung
|
180 |
+
'''
|
181 |
+
|
182 |
+
if __name__ == '__main__':
|
183 |
+
run()
|
h8dsft_P1G3_andrewsunanda.csv
ADDED
@@ -0,0 +1,300 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
age,anaemia,creatinine_phosphokinase,diabetes,ejection_fraction,high_blood_pressure,platelets,serum_creatinine,serum_sodium,sex,smoking,time,DEATH_EVENT
|
2 |
+
42.0,1,250,1,15,0,213000.0,1.3,136,0,0,65,1
|
3 |
+
46.0,0,168,1,17,1,271000.0,2.1,124,0,0,100,1
|
4 |
+
65.0,1,160,1,20,0,327000.0,2.7,116,0,0,8,1
|
5 |
+
53.0,1,91,0,20,1,418000.0,1.4,139,0,0,43,1
|
6 |
+
50.0,1,582,1,20,1,279000.0,1.0,134,0,0,186,0
|
7 |
+
70.0,1,125,0,25,1,237000.0,1.0,140,0,0,15,1
|
8 |
+
65.0,1,52,0,25,1,276000.0,1.3,137,0,0,16,0
|
9 |
+
70.0,0,161,0,25,0,244000.0,1.2,142,0,0,66,1
|
10 |
+
60.0,1,76,1,25,0,196000.0,2.5,132,0,0,77,1
|
11 |
+
59.0,1,280,1,25,1,302000.0,1.0,141,0,0,78,1
|
12 |
+
60.0,1,156,1,25,1,318000.0,1.2,137,0,0,85,0
|
13 |
+
60.0,0,1896,1,25,0,365000.0,2.1,144,0,0,172,1
|
14 |
+
65.0,0,56,0,25,0,237000.0,5.0,130,0,0,207,0
|
15 |
+
72.0,0,211,0,25,0,274000.0,1.2,134,0,0,207,0
|
16 |
+
49.0,1,80,0,30,1,427000.0,1.0,138,0,0,12,0
|
17 |
+
65.0,1,128,1,30,1,297000.0,1.6,136,0,0,20,1
|
18 |
+
75.0,0,582,1,30,1,263358.03,1.83,134,0,0,23,1
|
19 |
+
50.0,1,159,1,30,0,302000.0,1.2,138,0,0,29,0
|
20 |
+
50.0,0,124,1,30,1,153000.0,1.2,136,0,1,32,1
|
21 |
+
57.0,1,129,0,30,0,395000.0,1.0,140,0,0,42,1
|
22 |
+
72.0,1,328,0,30,1,621000.0,1.7,138,0,1,88,1
|
23 |
+
60.0,1,582,0,30,1,127000.0,0.9,145,0,0,95,0
|
24 |
+
50.0,0,482,1,30,0,329000.0,0.9,132,0,0,109,0
|
25 |
+
65.0,0,167,0,30,0,259000.0,0.8,138,0,0,186,0
|
26 |
+
48.0,1,131,1,30,1,244000.0,1.6,130,0,0,193,1
|
27 |
+
60.0,0,166,0,30,0,62000.0,1.7,127,0,0,207,1
|
28 |
+
50.0,0,2522,0,30,1,404000.0,0.5,139,0,0,214,0
|
29 |
+
50.0,1,1051,1,30,0,232000.0,0.7,136,0,0,246,0
|
30 |
+
50.0,1,249,1,35,1,319000.0,1.0,128,0,0,28,1
|
31 |
+
62.0,0,281,1,35,0,221000.0,1.0,136,0,0,108,0
|
32 |
+
46.0,1,291,0,35,0,348000.0,0.9,140,0,0,109,0
|
33 |
+
65.0,1,335,0,35,1,235000.0,0.8,136,0,0,120,0
|
34 |
+
52.0,1,58,0,35,0,277000.0,1.4,136,0,0,120,0
|
35 |
+
50.0,1,2334,1,35,0,75000.0,0.9,142,0,0,126,1
|
36 |
+
70.0,0,835,0,35,1,305000.0,0.8,133,0,0,145,0
|
37 |
+
49.0,0,972,1,35,1,268000.0,0.8,130,0,0,187,0
|
38 |
+
55.0,0,582,1,35,1,371000.0,0.7,140,0,0,197,0
|
39 |
+
70.0,0,81,1,35,1,533000.0,1.3,139,0,0,212,0
|
40 |
+
55.0,0,572,1,35,0,231000.0,0.8,143,0,0,215,0
|
41 |
+
70.0,0,88,1,35,1,236000.0,1.2,132,0,0,215,0
|
42 |
+
70.0,0,618,0,35,0,327000.0,1.1,142,0,0,245,0
|
43 |
+
65.0,0,892,1,35,0,263358.03,1.1,142,0,0,256,0
|
44 |
+
60.0,0,235,1,38,0,329000.0,3.0,142,0,0,30,1
|
45 |
+
60.0,1,260,1,38,0,255000.0,2.2,132,0,1,45,1
|
46 |
+
58.0,0,144,1,38,1,327000.0,0.7,142,0,0,83,0
|
47 |
+
86.0,0,582,0,38,0,263358.03,1.83,134,0,0,95,1
|
48 |
+
66.0,1,68,1,38,1,162000.0,1.0,136,0,0,95,0
|
49 |
+
60.0,0,96,1,38,0,228000.0,0.75,140,0,0,95,0
|
50 |
+
80.0,0,776,1,38,1,192000.0,1.3,135,0,0,130,1
|
51 |
+
45.0,0,582,1,38,1,263358.03,1.18,137,0,0,185,0
|
52 |
+
65.0,0,326,0,38,0,294000.0,1.7,139,0,0,220,0
|
53 |
+
45.0,0,582,1,38,0,302000.0,0.9,140,0,0,244,0
|
54 |
+
67.0,0,213,0,38,0,215000.0,1.2,133,0,0,245,0
|
55 |
+
45.0,0,582,0,38,1,422000.0,0.8,137,0,0,245,0
|
56 |
+
55.0,0,84,1,38,0,451000.0,1.3,136,0,0,246,0
|
57 |
+
90.0,1,337,0,38,0,390000.0,0.9,144,0,0,256,0
|
58 |
+
55.0,0,1820,0,38,0,270000.0,1.2,139,0,0,271,0
|
59 |
+
95.0,1,112,0,40,1,196000.0,1.0,138,0,0,24,1
|
60 |
+
50.0,0,318,0,40,1,216000.0,2.3,131,0,0,60,1
|
61 |
+
70.0,0,69,0,40,0,293000.0,1.7,136,0,0,75,0
|
62 |
+
63.0,1,61,1,40,0,221000.0,1.1,140,0,0,86,0
|
63 |
+
58.0,1,400,0,40,0,164000.0,1.0,139,0,0,91,0
|
64 |
+
46.0,0,719,0,40,1,263358.03,1.18,137,0,0,107,0
|
65 |
+
61.0,1,84,0,40,1,229000.0,0.9,141,0,0,110,0
|
66 |
+
65.0,0,582,1,40,0,270000.0,1.0,138,0,0,140,0
|
67 |
+
60.667,1,151,1,40,1,201000.0,1.0,136,0,0,172,0
|
68 |
+
40.0,1,101,0,40,0,226000.0,0.8,141,0,0,187,0
|
69 |
+
60.0,1,2281,1,40,0,283000.0,1.0,141,0,0,187,0
|
70 |
+
65.0,1,720,1,40,0,257000.0,1.0,136,0,0,210,0
|
71 |
+
73.0,1,1185,0,40,1,220000.0,0.9,141,0,0,213,0
|
72 |
+
53.0,0,207,1,40,0,223000.0,1.2,130,0,0,214,0
|
73 |
+
62.0,1,655,0,40,0,283000.0,0.7,133,0,0,233,0
|
74 |
+
51.0,0,582,1,40,0,221000.0,0.9,134,0,0,244,0
|
75 |
+
55.0,0,336,0,45,1,324000.0,0.9,140,0,0,74,0
|
76 |
+
72.0,0,233,0,45,1,235000.0,2.5,135,0,0,115,1
|
77 |
+
40.0,0,244,0,45,1,275000.0,0.9,140,0,0,174,0
|
78 |
+
50.0,1,167,1,45,0,362000.0,1.0,136,0,0,187,0
|
79 |
+
82.0,1,855,1,50,1,321000.0,1.0,145,0,0,30,1
|
80 |
+
70.0,1,69,1,50,1,351000.0,1.0,134,0,0,44,1
|
81 |
+
60.0,0,53,0,50,1,286000.0,2.3,143,0,0,87,0
|
82 |
+
43.0,1,358,0,50,0,237000.0,1.3,135,0,0,97,0
|
83 |
+
49.0,1,69,0,50,0,132000.0,1.0,140,0,0,147,0
|
84 |
+
50.0,0,582,0,50,0,153000.0,0.6,134,0,0,172,1
|
85 |
+
70.0,0,1202,0,50,1,358000.0,0.9,141,0,0,196,0
|
86 |
+
48.0,1,582,1,55,0,87000.0,1.9,121,0,0,15,1
|
87 |
+
45.0,0,582,1,55,0,543000.0,1.0,132,0,0,250,0
|
88 |
+
45.0,0,615,1,55,0,222000.0,0.8,141,0,0,257,0
|
89 |
+
60.0,1,588,1,60,0,194000.0,1.1,142,0,0,33,1
|
90 |
+
70.0,0,92,0,60,1,317000.0,0.8,140,0,1,74,0
|
91 |
+
42.0,0,582,0,60,0,263358.03,1.18,137,0,0,82,0
|
92 |
+
70.0,1,59,0,60,0,255000.0,1.1,136,0,0,85,0
|
93 |
+
70.0,1,143,0,60,0,351000.0,1.3,137,0,0,90,1
|
94 |
+
60.0,1,96,1,60,1,271000.0,0.7,136,0,0,94,0
|
95 |
+
85.0,1,102,0,60,0,507000.0,3.2,138,0,0,94,0
|
96 |
+
65.0,1,113,1,60,1,203000.0,0.9,140,0,0,94,0
|
97 |
+
58.0,1,200,1,60,0,300000.0,0.8,137,0,0,104,0
|
98 |
+
65.0,1,59,1,60,0,172000.0,0.9,137,0,0,107,0
|
99 |
+
64.0,1,62,0,60,0,309000.0,1.5,135,0,0,174,0
|
100 |
+
75.0,0,675,1,60,0,265000.0,1.4,125,0,0,205,0
|
101 |
+
68.0,1,157,1,60,0,208000.0,1.0,140,0,0,237,0
|
102 |
+
45.0,0,2060,1,60,0,742000.0,0.8,138,0,0,278,0
|
103 |
+
60.0,0,3964,1,62,0,263358.03,6.8,146,0,0,43,1
|
104 |
+
65.0,0,157,0,65,0,263358.03,1.5,138,0,0,10,1
|
105 |
+
54.0,1,427,0,70,1,151000.0,9.0,137,0,0,196,1
|
106 |
+
45.0,0,582,0,80,0,263358.03,1.18,137,0,0,63,0
|
107 |
+
45.0,0,582,0,14,0,166000.0,0.8,127,1,0,14,1
|
108 |
+
75.0,1,246,0,15,0,127000.0,1.2,137,1,0,10,1
|
109 |
+
70.0,0,212,1,17,1,389000.0,1.0,136,1,1,188,0
|
110 |
+
75.0,0,582,0,20,1,265000.0,1.9,130,1,0,4,1
|
111 |
+
65.0,0,146,0,20,0,162000.0,1.3,129,1,1,7,1
|
112 |
+
50.0,1,111,0,20,0,210000.0,1.9,137,1,0,7,1
|
113 |
+
70.0,0,582,0,20,1,263358.03,1.83,134,1,1,31,1
|
114 |
+
80.0,1,553,0,20,1,140000.0,4.4,133,1,0,41,1
|
115 |
+
49.0,0,789,0,20,1,319000.0,1.1,136,1,1,55,1
|
116 |
+
72.0,0,364,1,20,1,254000.0,1.3,136,1,1,59,1
|
117 |
+
60.0,0,68,0,20,0,119000.0,2.9,127,1,1,64,1
|
118 |
+
69.0,0,582,0,20,0,266000.0,1.2,134,1,1,73,1
|
119 |
+
60.0,1,47,0,20,0,204000.0,0.7,139,1,1,73,1
|
120 |
+
59.0,0,66,1,20,0,70000.0,2.4,134,1,0,135,1
|
121 |
+
50.0,1,115,0,20,0,189000.0,0.8,139,1,0,146,0
|
122 |
+
45.0,0,582,0,20,1,126000.0,1.6,135,1,0,180,1
|
123 |
+
73.0,0,582,0,20,0,263358.03,1.83,134,1,0,198,1
|
124 |
+
55.0,0,1199,0,20,0,263358.03,1.83,134,1,1,241,1
|
125 |
+
62.0,0,231,0,25,1,253000.0,0.9,140,1,1,10,1
|
126 |
+
51.0,0,1380,0,25,1,271000.0,0.9,130,1,0,38,1
|
127 |
+
68.0,1,577,0,25,1,166000.0,1.0,138,1,0,43,1
|
128 |
+
45.0,0,7702,1,25,1,390000.0,1.0,139,1,0,60,1
|
129 |
+
72.0,1,110,0,25,0,274000.0,1.0,140,1,1,65,1
|
130 |
+
65.0,0,113,1,25,0,497000.0,1.83,135,1,0,67,1
|
131 |
+
57.0,1,115,0,25,1,181000.0,1.1,144,1,0,79,0
|
132 |
+
60.0,1,154,0,25,0,210000.0,1.7,135,1,0,82,1
|
133 |
+
63.0,1,514,1,25,1,254000.0,1.3,134,1,0,83,0
|
134 |
+
65.0,1,305,0,25,0,298000.0,1.1,141,1,0,87,0
|
135 |
+
80.0,0,898,0,25,0,149000.0,1.1,144,1,1,87,0
|
136 |
+
50.0,0,369,1,25,0,252000.0,1.6,136,1,0,90,0
|
137 |
+
68.0,1,646,0,25,0,305000.0,2.1,130,1,0,108,0
|
138 |
+
72.0,1,943,0,25,1,338000.0,1.7,139,1,1,111,1
|
139 |
+
60.0,1,231,1,25,0,194000.0,1.7,140,1,0,120,0
|
140 |
+
50.0,0,250,0,25,0,262000.0,1.0,136,1,1,120,0
|
141 |
+
59.0,1,176,1,25,0,221000.0,1.0,136,1,1,150,1
|
142 |
+
65.0,0,395,1,25,0,265000.0,1.2,136,1,1,154,1
|
143 |
+
58.0,1,145,0,25,0,219000.0,1.2,137,1,1,170,1
|
144 |
+
60.0,0,59,0,25,1,212000.0,3.5,136,1,1,187,0
|
145 |
+
47.0,0,582,0,25,0,130000.0,0.8,134,1,0,201,0
|
146 |
+
58.0,0,582,1,25,0,504000.0,1.0,138,1,0,205,0
|
147 |
+
58.0,1,57,0,25,0,189000.0,1.3,132,1,1,205,0
|
148 |
+
55.0,0,2017,0,25,0,314000.0,1.1,138,1,0,214,1
|
149 |
+
64.0,0,143,0,25,0,246000.0,2.4,135,1,0,214,0
|
150 |
+
45.0,1,66,1,25,0,233000.0,0.8,135,1,0,230,0
|
151 |
+
65.0,1,258,1,25,0,198000.0,1.4,129,1,0,235,1
|
152 |
+
45.0,1,981,0,30,0,136000.0,1.1,137,1,0,11,1
|
153 |
+
82.0,0,70,1,30,0,200000.0,1.2,132,1,1,26,1
|
154 |
+
60.0,0,2656,1,30,0,305000.0,2.3,137,1,0,30,0
|
155 |
+
95.0,1,371,0,30,0,461000.0,2.0,132,1,0,50,1
|
156 |
+
42.0,0,5209,0,30,0,226000.0,1.0,140,1,1,87,0
|
157 |
+
61.0,0,248,0,30,1,267000.0,0.7,136,1,1,104,0
|
158 |
+
50.0,0,1548,0,30,1,211000.0,0.8,138,1,0,108,0
|
159 |
+
50.0,0,185,0,30,0,266000.0,0.7,141,1,1,112,0
|
160 |
+
52.0,0,132,0,30,0,218000.0,0.7,136,1,1,112,0
|
161 |
+
75.0,1,582,0,30,0,225000.0,1.83,134,1,0,113,1
|
162 |
+
45.0,0,2442,1,30,0,334000.0,1.1,139,1,0,129,1
|
163 |
+
40.0,0,478,1,30,0,303000.0,0.9,136,1,0,148,0
|
164 |
+
60.667,1,104,1,30,0,389000.0,1.5,136,1,0,171,1
|
165 |
+
73.0,1,231,1,30,0,160000.0,1.18,142,1,1,180,0
|
166 |
+
70.0,0,232,0,30,0,173000.0,1.2,132,1,0,210,0
|
167 |
+
65.0,0,582,1,30,0,249000.0,1.3,136,1,1,212,0
|
168 |
+
52.0,1,191,1,30,1,334000.0,1.0,142,1,1,216,0
|
169 |
+
44.0,0,582,1,30,1,263358.03,1.6,130,1,1,244,0
|
170 |
+
60.0,1,257,1,30,0,150000.0,1.0,137,1,1,245,0
|
171 |
+
42.0,0,64,0,30,0,215000.0,3.8,128,1,1,250,0
|
172 |
+
80.0,1,123,0,35,1,388000.0,9.4,133,1,1,10,1
|
173 |
+
68.0,1,220,0,35,1,289000.0,0.9,140,1,1,20,1
|
174 |
+
69.0,0,582,1,35,0,228000.0,3.5,134,1,0,30,1
|
175 |
+
70.0,1,75,0,35,0,223000.0,2.7,138,1,1,54,0
|
176 |
+
55.0,0,109,0,35,0,254000.0,1.1,139,1,1,60,0
|
177 |
+
45.0,0,582,0,35,0,385000.0,1.0,145,1,0,61,1
|
178 |
+
58.0,0,582,1,35,0,122000.0,0.9,139,1,1,71,0
|
179 |
+
85.0,0,5882,0,35,0,243000.0,1.0,132,1,1,72,1
|
180 |
+
55.0,0,47,0,35,1,173000.0,1.1,137,1,0,79,0
|
181 |
+
45.0,1,1876,1,35,0,226000.0,0.9,138,1,0,88,0
|
182 |
+
45.0,0,292,1,35,0,850000.0,1.3,142,1,1,88,0
|
183 |
+
55.0,0,60,0,35,0,228000.0,1.2,135,1,1,90,0
|
184 |
+
53.0,1,270,1,35,0,227000.0,3.4,145,1,0,105,0
|
185 |
+
81.0,0,4540,0,35,0,231000.0,1.18,137,1,1,107,0
|
186 |
+
60.0,0,2261,0,35,1,228000.0,0.9,136,1,0,115,0
|
187 |
+
50.0,0,1846,1,35,0,263358.03,1.18,137,1,1,119,0
|
188 |
+
45.0,1,130,0,35,0,174000.0,0.8,139,1,1,121,0
|
189 |
+
51.0,1,582,1,35,0,263358.03,1.5,136,1,1,145,0
|
190 |
+
65.0,0,198,1,35,1,281000.0,0.9,137,1,1,146,0
|
191 |
+
80.0,0,582,1,35,0,350000.0,2.1,134,1,0,174,0
|
192 |
+
60.0,0,1211,1,35,0,263358.03,1.8,113,1,1,186,0
|
193 |
+
65.0,1,135,0,35,1,290000.0,0.8,134,1,0,194,0
|
194 |
+
73.0,0,582,0,35,1,203000.0,1.3,134,1,0,195,0
|
195 |
+
68.0,1,1021,1,35,0,271000.0,1.1,134,1,0,197,0
|
196 |
+
42.0,1,86,0,35,0,365000.0,1.1,139,1,1,201,0
|
197 |
+
55.0,1,2794,0,35,1,141000.0,1.0,140,1,0,206,0
|
198 |
+
70.0,0,93,0,35,0,185000.0,1.1,134,1,1,208,0
|
199 |
+
40.0,1,129,0,35,0,255000.0,0.9,137,1,0,209,0
|
200 |
+
40.0,0,90,0,35,0,255000.0,1.1,136,1,1,212,0
|
201 |
+
40.0,0,624,0,35,0,301000.0,1.0,142,1,1,214,0
|
202 |
+
50.0,1,298,0,35,0,362000.0,0.9,140,1,1,240,0
|
203 |
+
40.0,0,582,1,35,0,222000.0,1.0,132,1,0,244,0
|
204 |
+
60.0,0,253,0,35,0,279000.0,1.7,140,1,0,250,0
|
205 |
+
60.0,0,320,0,35,0,133000.0,1.4,139,1,0,258,0
|
206 |
+
63.0,1,103,1,35,0,179000.0,0.9,136,1,1,270,0
|
207 |
+
55.0,0,7861,0,38,0,263358.03,1.1,136,1,0,6,1
|
208 |
+
75.0,1,81,0,38,1,368000.0,4.0,131,1,1,10,1
|
209 |
+
50.0,1,168,0,38,1,276000.0,1.1,137,1,0,11,1
|
210 |
+
87.0,1,149,0,38,0,262000.0,0.9,140,1,0,14,1
|
211 |
+
80.0,0,148,1,38,0,149000.0,1.9,144,1,1,23,1
|
212 |
+
58.0,1,60,0,38,0,153000.0,5.8,134,1,0,26,1
|
213 |
+
94.0,0,582,1,38,1,263358.03,1.83,134,1,0,27,1
|
214 |
+
50.0,0,582,1,38,0,310000.0,1.9,135,1,1,35,1
|
215 |
+
60.0,0,582,1,38,1,451000.0,0.6,138,1,1,40,1
|
216 |
+
75.0,1,203,1,38,1,283000.0,0.6,131,1,1,74,0
|
217 |
+
63.0,0,936,0,38,0,304000.0,1.1,133,1,1,88,0
|
218 |
+
80.0,0,805,0,38,0,263358.03,1.1,134,1,0,109,1
|
219 |
+
75.0,0,99,0,38,1,224000.0,2.5,134,1,0,162,1
|
220 |
+
85.0,0,212,0,38,0,186000.0,0.9,136,1,0,187,0
|
221 |
+
53.0,1,707,0,38,0,330000.0,1.4,137,1,1,209,0
|
222 |
+
54.0,0,582,1,38,0,264000.0,1.8,134,1,0,213,0
|
223 |
+
61.0,1,80,1,38,0,282000.0,1.4,137,1,0,213,0
|
224 |
+
58.0,0,132,1,38,1,253000.0,1.0,139,1,0,230,0
|
225 |
+
61.0,0,582,1,38,0,147000.0,1.2,141,1,0,237,0
|
226 |
+
56.0,1,135,1,38,0,133000.0,1.7,140,1,0,244,0
|
227 |
+
70.0,0,582,1,38,0,25100.0,1.1,140,1,0,246,0
|
228 |
+
65.0,0,1688,0,38,0,263358.03,1.1,138,1,1,250,0
|
229 |
+
52.0,0,190,1,38,0,382000.0,1.0,140,1,1,258,0
|
230 |
+
62.0,0,61,1,38,1,155000.0,1.1,143,1,1,270,0
|
231 |
+
45.0,0,2413,0,38,0,140000.0,1.4,140,1,1,280,0
|
232 |
+
90.0,1,47,0,40,1,204000.0,2.1,132,1,1,8,1
|
233 |
+
60.0,1,607,0,40,0,216000.0,0.6,138,1,1,54,0
|
234 |
+
41.0,0,148,0,40,0,374000.0,0.8,140,1,1,68,0
|
235 |
+
42.0,0,102,1,40,0,237000.0,1.2,140,1,0,74,0
|
236 |
+
44.0,0,84,1,40,1,235000.0,0.7,139,1,0,79,0
|
237 |
+
60.0,1,754,1,40,1,328000.0,1.2,126,1,0,91,0
|
238 |
+
60.0,0,582,0,40,0,217000.0,3.7,134,1,0,96,1
|
239 |
+
75.0,0,582,0,40,0,263358.03,1.18,137,1,0,107,0
|
240 |
+
66.0,1,72,0,40,1,242000.0,1.2,134,1,0,121,0
|
241 |
+
63.0,1,582,0,40,0,448000.0,0.9,137,1,1,123,0
|
242 |
+
52.0,0,3966,0,40,0,325000.0,0.9,140,1,1,146,0
|
243 |
+
69.0,0,1419,0,40,0,105000.0,1.0,135,1,1,147,0
|
244 |
+
55.0,0,835,0,40,0,279000.0,0.7,140,1,1,147,0
|
245 |
+
50.0,1,121,1,40,0,260000.0,0.7,130,1,0,175,0
|
246 |
+
78.0,1,64,0,40,0,277000.0,0.7,137,1,1,187,0
|
247 |
+
55.0,0,66,0,40,0,203000.0,1.0,138,1,0,233,0
|
248 |
+
42.0,0,64,0,40,0,189000.0,0.7,140,1,0,245,0
|
249 |
+
70.0,0,2695,1,40,0,241000.0,1.0,137,1,0,247,0
|
250 |
+
70.0,0,582,0,40,0,51000.0,2.7,136,1,1,250,0
|
251 |
+
50.0,1,54,0,40,0,279000.0,0.8,141,1,0,250,0
|
252 |
+
55.0,1,170,1,40,0,336000.0,1.2,135,1,0,250,0
|
253 |
+
70.0,0,122,1,45,1,284000.0,1.3,136,1,1,26,1
|
254 |
+
85.0,0,23,0,45,0,360000.0,3.0,132,1,0,28,1
|
255 |
+
70.0,0,571,1,45,1,185000.0,1.2,139,1,1,33,1
|
256 |
+
70.0,0,66,1,45,0,249000.0,0.8,136,1,1,80,0
|
257 |
+
60.0,0,897,1,45,0,297000.0,1.0,133,1,0,80,0
|
258 |
+
75.0,0,582,0,45,1,263358.03,1.18,137,1,0,87,0
|
259 |
+
55.0,0,748,0,45,0,263000.0,1.3,137,1,0,88,0
|
260 |
+
60.0,1,1082,1,45,0,250000.0,6.1,131,1,0,107,0
|
261 |
+
50.0,0,115,0,45,1,184000.0,0.9,134,1,1,118,0
|
262 |
+
59.0,1,129,0,45,1,362000.0,1.1,139,1,1,121,0
|
263 |
+
77.0,1,418,0,45,0,223000.0,1.8,145,1,0,180,1
|
264 |
+
63.0,1,1767,0,45,0,73000.0,0.7,137,1,0,186,0
|
265 |
+
53.0,1,582,0,45,0,305000.0,1.1,137,1,1,209,0
|
266 |
+
55.0,1,180,0,45,0,263358.03,1.18,137,1,1,211,0
|
267 |
+
50.0,0,245,0,45,1,274000.0,1.0,133,1,0,215,0
|
268 |
+
50.0,0,196,0,45,0,395000.0,1.6,136,1,1,285,0
|
269 |
+
82.0,1,379,0,50,0,47000.0,1.3,136,1,0,13,1
|
270 |
+
65.0,0,94,1,50,1,188000.0,1.0,140,1,0,29,1
|
271 |
+
90.0,1,60,1,50,0,226000.0,1.0,134,1,0,30,1
|
272 |
+
72.0,0,127,1,50,1,218000.0,1.0,134,1,0,33,0
|
273 |
+
65.0,0,224,1,50,0,149000.0,1.3,137,1,1,72,0
|
274 |
+
67.0,0,582,0,50,0,263358.03,1.18,137,1,1,76,0
|
275 |
+
79.0,1,55,0,50,1,172000.0,1.8,133,1,0,78,0
|
276 |
+
51.0,0,78,0,50,0,406000.0,0.7,140,1,0,79,0
|
277 |
+
85.0,1,910,0,50,0,235000.0,1.3,134,1,0,121,0
|
278 |
+
78.0,0,224,0,50,0,481000.0,1.4,138,1,1,192,0
|
279 |
+
65.0,0,118,0,50,0,194000.0,1.1,145,1,1,200,0
|
280 |
+
77.0,1,109,0,50,1,406000.0,1.1,137,1,0,209,0
|
281 |
+
75.0,0,119,0,50,1,248000.0,1.1,148,1,0,209,0
|
282 |
+
53.0,0,56,0,50,0,308000.0,0.7,135,1,1,231,0
|
283 |
+
60.0,1,315,1,60,0,454000.0,1.1,131,1,1,10,1
|
284 |
+
53.0,0,63,1,60,0,368000.0,0.8,135,1,0,22,0
|
285 |
+
65.0,1,68,1,60,1,304000.0,0.8,140,1,0,79,0
|
286 |
+
58.0,1,133,0,60,1,219000.0,1.0,141,1,0,83,0
|
287 |
+
85.0,0,129,0,60,0,306000.0,1.2,132,1,1,90,1
|
288 |
+
60.0,1,737,0,60,1,210000.0,1.5,135,1,1,95,0
|
289 |
+
53.0,1,1808,0,60,1,249000.0,0.7,138,1,1,106,0
|
290 |
+
63.0,0,193,0,60,1,295000.0,1.3,145,1,1,107,0
|
291 |
+
64.0,0,1610,0,60,0,242000.0,1.0,137,1,0,113,0
|
292 |
+
62.0,0,30,1,60,1,244000.0,0.9,139,1,0,117,0
|
293 |
+
53.0,0,196,0,60,0,220000.0,0.7,133,1,1,134,0
|
294 |
+
70.0,1,171,0,60,1,176000.0,1.1,145,1,1,146,0
|
295 |
+
60.0,1,95,0,60,0,337000.0,1.0,138,1,1,146,0
|
296 |
+
63.0,1,122,1,60,0,267000.0,1.2,145,1,0,147,0
|
297 |
+
45.0,0,308,1,60,1,377000.0,1.0,136,1,0,186,0
|
298 |
+
70.0,0,97,0,60,1,220000.0,0.9,138,1,0,186,0
|
299 |
+
53.0,1,446,0,60,1,263358.03,1.0,139,1,0,215,0
|
300 |
+
50.0,0,582,0,62,1,147000.0,0.8,140,1,1,192,0
|
list_cat_cols.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
["anemia", "diabetes", "hypertension", "sex", "smoking"]
|
list_num_cols.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
["age", "cpk", "ejection_fraction", "platelets", "serum_creatinine", "serum_sodium", "time"]
|
model_encoder.pkl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:9b835cb3f66a5719c9d6be91e25ec06039df69bf8408a09b2d0e99af7862670f
|
3 |
+
size 742
|
model_rf.pkl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e0ce3fe84e7249eb7ed1d3950e5bcaf6de23b6794fc56174a9cde678ea36d3f1
|
3 |
+
size 2093224
|
model_scaler.pkl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:46caa1568b9b2d175d21c3969a1c6b0efe4132ac51c7eaf7f95d3b2ebf470770
|
3 |
+
size 932
|
prediction.py
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
import numpy as np
|
4 |
+
import pickle
|
5 |
+
import json
|
6 |
+
|
7 |
+
|
8 |
+
# Load All Files
|
9 |
+
|
10 |
+
with open('model_rf.pkl', 'rb') as file_1:
|
11 |
+
model_rf = pickle.load(file_1)
|
12 |
+
|
13 |
+
with open('model_scaler.pkl', 'rb') as file_3:
|
14 |
+
model_scaler = pickle.load(file_3)
|
15 |
+
|
16 |
+
with open('model_encoder.pkl','rb') as file_4:
|
17 |
+
model_encoder = pickle.load(file_4)
|
18 |
+
|
19 |
+
with open('list_num_cols.txt', 'r') as file_5:
|
20 |
+
list_num_cols = json.load(file_5)
|
21 |
+
|
22 |
+
with open('list_cat_cols.txt', 'r') as file_6:
|
23 |
+
list_cat_cols = json.load(file_6)
|
24 |
+
|
25 |
+
def run():
|
26 |
+
|
27 |
+
st.title('Heart Failure Prediction')
|
28 |
+
|
29 |
+
|
30 |
+
with st.form(key='form_heart_failure'):
|
31 |
+
age = st.number_input('Age', min_value=1, max_value=100, value=25, step=1, help='in Years Old')
|
32 |
+
anemia = st.selectbox('Do you have Anemia?', ('Yes', 'No'))
|
33 |
+
cpk = st.number_input('Level of CPK Enzyme', min_value=10, max_value=8000, value=120, help='in mcg/L, 10-120 considered normal')
|
34 |
+
diabetes = st.selectbox('Do you have Diabetes?', ('Yes','No'))
|
35 |
+
ejection_fraction = st.slider('Ejection Fraction', 0,100,50, help='in Percentage (%)')
|
36 |
+
hypertension = st.selectbox('Do you have Hypertension?', ('Yes','No'))
|
37 |
+
platelets = st.number_input('Platelets / Trombosit per mL of Blood', min_value=1000, max_value=800000, value=150000,help='150k - 450k is considered normal')
|
38 |
+
serum_creatinine = st.number_input('Serum Creatinine Level', min_value=.1, max_value=10., value=1.,step=.1, help='in mg/dL, 0.6 - 1.2 is considered normal')
|
39 |
+
serum_sodium = st.number_input('Serum Sodium Level', min_value=100, max_value=200, value=150, help='in mEq/L, 135 - 145 considered to be normal')
|
40 |
+
sex = st.selectbox('Are you a male or female?', ('Male','Female'))
|
41 |
+
smoking = st.selectbox('Do you smoke?', ('Yes','No'))
|
42 |
+
time = st.number_input('How many days since receiving medical treatment?', min_value=1, max_value=365, value=1)
|
43 |
+
|
44 |
+
submitted = st.form_submit_button('Predict')
|
45 |
+
|
46 |
+
|
47 |
+
data_inf = {
|
48 |
+
'age': age,
|
49 |
+
'anemia': anemia,
|
50 |
+
'cpk': cpk,
|
51 |
+
'diabetes': diabetes,
|
52 |
+
'ejection_fraction' : ejection_fraction,
|
53 |
+
'hypertension': hypertension,
|
54 |
+
'platelets': platelets,
|
55 |
+
'serum_creatinine': serum_creatinine,
|
56 |
+
'serum_sodium': serum_sodium,
|
57 |
+
'sex': sex,
|
58 |
+
'smoking': smoking,
|
59 |
+
'time': time
|
60 |
+
}
|
61 |
+
|
62 |
+
data_inf = pd.DataFrame([data_inf])
|
63 |
+
st.dataframe(data_inf)
|
64 |
+
|
65 |
+
data_inf['anemia'] = data_inf['anemia'].replace({'Yes': 1, 'No': 0})
|
66 |
+
data_inf['diabetes'] = data_inf['diabetes'].replace({'Yes': 1, 'No': 0})
|
67 |
+
data_inf['hypertension'] = data_inf['hypertension'].replace({'Yes': 1, 'No': 0})
|
68 |
+
data_inf['smoking'] = data_inf['smoking'].replace({'Yes': 1, 'No': 0})
|
69 |
+
data_inf['sex'] = data_inf['sex'].replace({'Male': 1, 'Female': 0})
|
70 |
+
|
71 |
+
if submitted:
|
72 |
+
# Split between Numerical Columns and Categorical Columns
|
73 |
+
|
74 |
+
data_inf_num = data_inf[list_num_cols]
|
75 |
+
data_inf_cat = data_inf[list_cat_cols]
|
76 |
+
|
77 |
+
# Feature Scaling and Feature Encoding
|
78 |
+
|
79 |
+
data_inf_num_scaled = model_scaler.transform(data_inf_num)
|
80 |
+
data_inf_cat_encoded = model_encoder.transform(data_inf_cat)
|
81 |
+
data_inf_final = np.concatenate([data_inf_num_scaled, data_inf_cat_encoded], axis=1)
|
82 |
+
|
83 |
+
# Predict using Model
|
84 |
+
|
85 |
+
y_pred_inf = model_rf.predict(data_inf_final)
|
86 |
+
st.write('Hasil prediksi Model : ', y_pred_inf)
|
87 |
+
|
88 |
+
|
89 |
+
'''
|
90 |
+
Hasil Prediksi 0 = Alive, 1 = Dead
|
91 |
+
'''
|
92 |
+
|
93 |
+
if __name__ == '__main__':
|
94 |
+
run()
|
requirements.txt
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
streamlit
|
2 |
+
pandas
|
3 |
+
seaborn
|
4 |
+
matplotlib
|
5 |
+
numpy
|
6 |
+
scikit-learn==1.2.1
|