chore: version 5
Browse files- README.md +2 -2
- app.py +256 -139
- data/Testing_preprocessed.csv +43 -43
- data/Training_preprocessed.csv +0 -0
- deployment_logit/client.zip +0 -0
- deployment_logit/server.zip +0 -0
- deployment_logit/versions.json +1 -0
- deployment_logit_11/client.zip +0 -0
- deployment_logit_11/server.zip +0 -0
- deployment_logit_11/versions.json +1 -0
- deployment_logit_12/client.zip +0 -0
- deployment_logit_12/server.zip +0 -0
- deployment_logit_12/versions.json +1 -0
- deployment_logit_13/client.zip +0 -0
- deployment_logit_13/server.zip +0 -0
- deployment_logit_13/versions.json +1 -0
- deployment_xgb/client.zip +0 -0
- deployment_xgb/server.zip +0 -0
- deployment_xgb/versions.json +1 -0
- symptoms_categories.py +22 -37
- utils.py +20 -10
README.md
CHANGED
@@ -6,7 +6,7 @@ colorTo: blue
|
|
6 |
sdk: gradio
|
7 |
sdk_version: 3.33.1
|
8 |
app_file: app.py
|
9 |
-
pinned:
|
10 |
tags:
|
11 |
- FHE
|
12 |
- PPML
|
@@ -22,7 +22,7 @@ python_version: 3.10.6
|
|
22 |
|
23 |
## Running the application on your machine
|
24 |
|
25 |
-
From this directory, i.e
|
26 |
|
27 |
### Do once
|
28 |
|
|
|
6 |
sdk: gradio
|
7 |
sdk_version: 3.33.1
|
8 |
app_file: app.py
|
9 |
+
pinned: true
|
10 |
tags:
|
11 |
- FHE
|
12 |
- PPML
|
|
|
22 |
|
23 |
## Running the application on your machine
|
24 |
|
25 |
+
From this directory, i.e., `health_prediction`, you can proceed with the following steps.
|
26 |
|
27 |
### Do once
|
28 |
|
app.py
CHANGED
@@ -2,8 +2,9 @@ import subprocess
|
|
2 |
import time
|
3 |
from typing import Dict, List, Tuple
|
4 |
|
5 |
-
import gradio as gr
|
6 |
import numpy as np
|
|
|
7 |
import requests
|
8 |
from symptoms_categories import SYMPTOMS_LIST
|
9 |
from utils import (
|
@@ -13,6 +14,8 @@ from utils import (
|
|
13 |
INPUT_BROWSER_LIMIT,
|
14 |
KEYS_DIR,
|
15 |
SERVER_URL,
|
|
|
|
|
16 |
clean_directory,
|
17 |
get_disease_name,
|
18 |
load_data,
|
@@ -37,7 +40,29 @@ def is_none(obj) -> bool:
|
|
37 |
Returns:
|
38 |
bool: True if the object is None or empty, False otherwise.
|
39 |
"""
|
40 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
|
43 |
# <!> This function has been paused due to UI issues.
|
@@ -106,22 +131,25 @@ def get_features_fn(*checked_symptoms: Tuple[str]) -> Dict:
|
|
106 |
"""
|
107 |
if not any(lst for lst in checked_symptoms if lst):
|
108 |
return {
|
109 |
-
error_box1: gr.update(
|
110 |
-
visible=True, value="Enter a default disease or select your own symptoms"
|
111 |
-
),
|
112 |
}
|
113 |
|
114 |
if len(pretty_print(checked_symptoms)) < 5:
|
115 |
print("Provide at least 5 symptoms.")
|
116 |
return {
|
117 |
-
error_box1: gr.update(visible=True, value="Provide at least 5 symptoms"),
|
118 |
-
user_vect_box1:
|
119 |
}
|
120 |
|
121 |
-
|
122 |
return {
|
123 |
error_box1: gr.update(visible=False),
|
124 |
-
user_vect_box1:
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
}
|
126 |
|
127 |
|
@@ -141,7 +169,7 @@ def key_gen_fn(user_symptoms: List[str]) -> Dict:
|
|
141 |
if is_none(user_symptoms):
|
142 |
print("Error: Please submit your symptoms or select a default disease.")
|
143 |
return {
|
144 |
-
error_box2: gr.update(visible=True, value="Please submit your symptoms first
|
145 |
}
|
146 |
|
147 |
# Generate a random user ID
|
@@ -167,9 +195,11 @@ def key_gen_fn(user_symptoms: List[str]) -> Dict:
|
|
167 |
|
168 |
return {
|
169 |
error_box2: gr.update(visible=False),
|
170 |
-
key_box: serialized_evaluation_keys_shorten_hex,
|
171 |
-
user_id_box: user_id,
|
172 |
-
key_len_box:
|
|
|
|
|
173 |
}
|
174 |
|
175 |
|
@@ -186,7 +216,9 @@ def encrypt_fn(user_symptoms: np.ndarray, user_id: str) -> None:
|
|
186 |
print("Error in encryption step: Provide your symptoms and generate the evaluation keys.")
|
187 |
return {
|
188 |
error_box3: gr.update(
|
189 |
-
visible=True,
|
|
|
|
|
190 |
)
|
191 |
}
|
192 |
|
@@ -210,9 +242,9 @@ def encrypt_fn(user_symptoms: np.ndarray, user_id: str) -> None:
|
|
210 |
|
211 |
return {
|
212 |
error_box3: gr.update(visible=False),
|
213 |
-
user_vect_box2: user_symptoms,
|
214 |
-
quant_vect_box: quant_user_symptoms,
|
215 |
-
enc_vect_box: encrypted_quantized_user_symptoms_shorten_hex,
|
216 |
}
|
217 |
|
218 |
|
@@ -228,8 +260,9 @@ def send_input_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
228 |
return {
|
229 |
error_box4: gr.update(
|
230 |
visible=True,
|
231 |
-
value="Please
|
232 |
-
"
|
|
|
233 |
)
|
234 |
}
|
235 |
|
@@ -242,7 +275,9 @@ def send_input_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
242 |
f"The key has been generated correctly - {evaluation_key_path.is_file()=}"
|
243 |
)
|
244 |
|
245 |
-
return {
|
|
|
|
|
246 |
|
247 |
if not encrypted_input_path.is_file():
|
248 |
print(
|
@@ -252,7 +287,7 @@ def send_input_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
252 |
return {
|
253 |
error_box4: gr.update(
|
254 |
visible=True,
|
255 |
-
value="Please encrypt the data with the private key first.",
|
256 |
),
|
257 |
}
|
258 |
|
@@ -291,9 +326,12 @@ def run_fhe_fn(user_id: str) -> Dict:
|
|
291 |
return {
|
292 |
error_box5: gr.update(
|
293 |
visible=True,
|
294 |
-
value="Please
|
295 |
-
"
|
296 |
-
|
|
|
|
|
|
|
297 |
}
|
298 |
|
299 |
data = {
|
@@ -311,18 +349,19 @@ def run_fhe_fn(user_id: str) -> Dict:
|
|
311 |
error_box5: gr.update(
|
312 |
visible=True,
|
313 |
value=(
|
314 |
-
"An error occurred on the Server Side. "
|
315 |
"Please check connectivity and data transmission."
|
316 |
),
|
317 |
),
|
318 |
-
fhe_execution_time_box: gr.update(visible=
|
319 |
}
|
320 |
else:
|
|
|
321 |
print(f"response.ok: {response.ok}, {response.json()} - Computed")
|
322 |
|
323 |
return {
|
324 |
error_box5: gr.update(visible=False),
|
325 |
-
fhe_execution_time_box: gr.update(value=f"{response.json()} seconds"),
|
326 |
}
|
327 |
|
328 |
|
@@ -338,8 +377,8 @@ def get_output_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
338 |
return {
|
339 |
error_box6: gr.update(
|
340 |
visible=True,
|
341 |
-
value="Please
|
342 |
-
"
|
343 |
)
|
344 |
}
|
345 |
|
@@ -367,12 +406,13 @@ def get_output_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
367 |
return {error_box6: gr.update(visible=False), srv_resp_retrieve_data_box: "Data received"}
|
368 |
|
369 |
|
370 |
-
def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
371 |
"""Dencrypt the data on the `Client Side`.
|
372 |
|
373 |
Args:
|
374 |
user_id (str): The current user's ID
|
375 |
user_symptoms (np.ndarray): The user symptoms
|
|
|
376 |
|
377 |
Returns:
|
378 |
Decrypted output
|
@@ -382,8 +422,8 @@ def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
382 |
return {
|
383 |
error_box7: gr.update(
|
384 |
visible=True,
|
385 |
-
value="Please
|
386 |
-
"
|
387 |
)
|
388 |
}
|
389 |
|
@@ -395,10 +435,14 @@ def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
395 |
return {
|
396 |
error_box7: gr.update(
|
397 |
visible=True,
|
398 |
-
value="Please ensure that
|
399 |
-
"
|
400 |
-
"
|
401 |
-
|
|
|
|
|
|
|
|
|
402 |
}
|
403 |
|
404 |
# Load the encrypted output as bytes
|
@@ -412,11 +456,31 @@ def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
412 |
# Deserialize, decrypt and post-process the encrypted output
|
413 |
output = client.deserialize_decrypt_dequantize(encrypted_output)
|
414 |
|
415 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
416 |
|
417 |
return {
|
418 |
error_box7: gr.update(visible=False),
|
419 |
-
decrypt_target_box:
|
420 |
}
|
421 |
|
422 |
|
@@ -426,15 +490,17 @@ def reset_fn():
|
|
426 |
clean_directory()
|
427 |
|
428 |
return {
|
429 |
-
|
430 |
-
user_id_box: None,
|
431 |
user_vect_box1: None,
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
|
|
|
|
|
|
438 |
decrypt_target_box: None,
|
439 |
error_box7: gr.update(visible=False),
|
440 |
error_box1: gr.update(visible=False),
|
@@ -448,31 +514,36 @@ def reset_fn():
|
|
448 |
**{box: None for box in check_boxes},
|
449 |
}
|
450 |
|
451 |
-
def change_tab(next_tab):
|
452 |
-
print(next_tab)
|
453 |
-
return gr.Tabs.update(selected=next_tab)
|
454 |
|
455 |
CSS = """
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
.gradio-container {background-color: white}
|
|
|
460 |
/* .feedback {font-size: 3px !important} */
|
461 |
-
#svelte-s1r2yt {color:
|
462 |
#svelte-s1r2yt {font-size: 25px}
|
463 |
#svelte-s1r2yt {font-weight: bold}
|
464 |
/* #them {text-align: center} */
|
465 |
"""
|
466 |
|
|
|
|
|
|
|
|
|
|
|
|
|
467 |
if __name__ == "__main__":
|
468 |
|
469 |
print("Starting demo ...")
|
470 |
|
471 |
clean_directory()
|
472 |
|
473 |
-
(X_train, X_test), (y_train, y_test), valid_symptoms = load_data()
|
474 |
|
475 |
with gr.Blocks(css=CSS) as demo:
|
|
|
476 |
|
477 |
# Link + images
|
478 |
gr.Markdown(
|
@@ -494,20 +565,31 @@ if __name__ == "__main__":
|
|
494 |
</p>
|
495 |
|
496 |
<p align="center">
|
497 |
-
<img width="100%" height="30%" src="https://raw.githubusercontent.com/kcelia/Img/main/
|
498 |
</p>
|
499 |
"""
|
500 |
)
|
501 |
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
511 |
|
512 |
# Box symptoms
|
513 |
check_boxes = []
|
@@ -523,59 +605,66 @@ if __name__ == "__main__":
|
|
523 |
)
|
524 |
check_boxes.append(check_box)
|
525 |
|
526 |
-
error_box1 = gr.Textbox(label="Error", visible=False)
|
527 |
|
528 |
# <!> This part has been paused due to UI issues.
|
529 |
|
530 |
# Default disease, picked from the dataframe
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
|
539 |
# User symptom vector
|
540 |
user_vect_box1 = gr.Textbox(label="User Symptoms Vector:", interactive=False)
|
541 |
|
542 |
# Submit botton
|
543 |
-
submit_button = gr.Button("Submit")
|
544 |
-
|
545 |
-
submit_button.click(
|
546 |
-
fn=get_features_fn,
|
547 |
-
inputs=[*check_boxes],
|
548 |
-
outputs=[user_vect_box1, error_box1],
|
549 |
-
)
|
550 |
|
551 |
# Clear botton
|
552 |
-
clear_button = gr.Button("Reset Space")
|
|
|
|
|
|
|
|
|
553 |
|
554 |
-
next_tab = gr.Button('Next Step')
|
555 |
-
next_tab.click(lambda _:gr.Tabs.update(selected=1), None, tabs)
|
556 |
-
|
557 |
with gr.TabItem("2. Data Encryption", id=1):
|
558 |
-
gr.Markdown("<span style='color:
|
559 |
-
gr.Markdown("##
|
|
|
|
|
|
|
|
|
|
|
560 |
|
561 |
-
gen_key_btn = gr.Button("Generate the
|
562 |
-
error_box2 = gr.Textbox(label="Error", visible=False)
|
563 |
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
key_len_box = gr.Textbox(label="Evaluation Key Size:", interactive=False)
|
571 |
|
572 |
# Evaluation key (truncated)
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
|
580 |
gen_key_btn.click(
|
581 |
key_gen_fn,
|
@@ -588,24 +677,31 @@ if __name__ == "__main__":
|
|
588 |
],
|
589 |
)
|
590 |
|
591 |
-
gr.Markdown("##
|
592 |
-
|
593 |
-
encrypt_btn = gr.Button("Encrypt the symptoms with the private key")
|
594 |
-
error_box3 = gr.Textbox(label="Error", visible=False)
|
595 |
|
|
|
|
|
596 |
|
597 |
with gr.Row():
|
598 |
with gr.Column(scale=1, min_width=600):
|
599 |
user_vect_box2 = gr.Textbox(
|
600 |
-
label="User Symptoms Vector:",
|
|
|
|
|
601 |
)
|
602 |
|
603 |
with gr.Column(scale=1, min_width=600):
|
604 |
-
quant_vect_box = gr.Textbox(
|
|
|
|
|
|
|
|
|
605 |
|
606 |
with gr.Column(scale=1, min_width=600):
|
607 |
enc_vect_box = gr.Textbox(
|
608 |
-
label="Encrypted Vector:",
|
|
|
|
|
609 |
)
|
610 |
|
611 |
encrypt_btn.click(
|
@@ -620,15 +716,15 @@ if __name__ == "__main__":
|
|
620 |
)
|
621 |
|
622 |
gr.Markdown(
|
623 |
-
"##
|
624 |
-
"<span style='color:
|
625 |
)
|
626 |
|
627 |
-
error_box4 = gr.Textbox(label="Error", visible=False)
|
628 |
|
629 |
with gr.Row().style(equal_height=False):
|
630 |
with gr.Column(scale=4):
|
631 |
-
send_input_btn = gr.Button("Send the encrypted data")
|
632 |
with gr.Column(scale=1):
|
633 |
srv_resp_send_data_box = gr.Checkbox(
|
634 |
label="Data Sent", show_label=False, interactive=False
|
@@ -639,26 +735,29 @@ if __name__ == "__main__":
|
|
639 |
inputs=[user_id_box, user_vect_box1],
|
640 |
outputs=[error_box4, srv_resp_send_data_box],
|
641 |
)
|
642 |
-
|
|
|
643 |
with gr.Row().style(equal_height=True):
|
644 |
with gr.Column(scale=1):
|
645 |
-
prev_tab = gr.Button(
|
646 |
-
prev_tab.click(lambda _:gr.Tabs.update(selected=0), None, tabs)
|
647 |
|
648 |
with gr.Column(scale=1):
|
649 |
-
next_tab = gr.Button(
|
650 |
-
next_tab.click(lambda _:gr.Tabs.update(selected=2), None, tabs)
|
651 |
-
|
652 |
-
|
653 |
|
654 |
with gr.TabItem("3. FHE execution", id=2):
|
655 |
-
gr.Markdown("<span style='color:
|
656 |
-
gr.Markdown("##
|
|
|
|
|
|
|
|
|
657 |
|
658 |
-
run_fhe_btn = gr.Button("Run the FHE evaluation")
|
659 |
-
error_box5 = gr.Textbox(label="Error", visible=False)
|
660 |
fhe_execution_time_box = gr.Textbox(
|
661 |
-
label="Total FHE Execution Time:", interactive=False
|
662 |
)
|
663 |
|
664 |
run_fhe_btn.click(
|
@@ -667,28 +766,25 @@ if __name__ == "__main__":
|
|
667 |
outputs=[fhe_execution_time_box, error_box5],
|
668 |
)
|
669 |
|
|
|
670 |
with gr.Row().style(equal_height=True):
|
671 |
with gr.Column(scale=1):
|
672 |
-
prev_tab = gr.Button(
|
673 |
prev_tab.click(lambda _: gr.Tabs.update(selected=1), None, tabs)
|
674 |
|
675 |
with gr.Column(scale=1):
|
676 |
-
next_tab = gr.Button(
|
677 |
next_tab.click(lambda _: gr.Tabs.update(selected=3), None, tabs)
|
678 |
-
|
679 |
-
|
680 |
|
681 |
with gr.TabItem("4. Data Decryption", id=3):
|
682 |
-
gr.Markdown("<span style='color:
|
683 |
-
gr.Markdown(
|
684 |
-
"## Step 6: Get the data from the <span style='color:orange'>Server Side</span>"
|
685 |
-
)
|
686 |
|
687 |
-
error_box6 = gr.Textbox(label="Error", visible=False)
|
688 |
|
689 |
with gr.Row().style(equal_height=True):
|
690 |
with gr.Column(scale=4):
|
691 |
-
get_output_btn = gr.Button("Get data")
|
692 |
with gr.Column(scale=1):
|
693 |
srv_resp_retrieve_data_box = gr.Checkbox(
|
694 |
label="Data Received", show_label=False, interactive=False
|
@@ -700,11 +796,17 @@ if __name__ == "__main__":
|
|
700 |
outputs=[srv_resp_retrieve_data_box, error_box6],
|
701 |
)
|
702 |
|
703 |
-
gr.Markdown("##
|
704 |
|
705 |
-
|
706 |
-
|
707 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
708 |
|
709 |
decrypt_target_btn.click(
|
710 |
decrypt_fn,
|
@@ -712,8 +814,20 @@ if __name__ == "__main__":
|
|
712 |
outputs=[decrypt_target_box, error_box7],
|
713 |
)
|
714 |
|
715 |
-
|
716 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
717 |
|
718 |
clear_button.click(
|
719 |
reset_fn,
|
@@ -728,6 +842,9 @@ if __name__ == "__main__":
|
|
728 |
error_box5,
|
729 |
error_box6,
|
730 |
error_box7,
|
|
|
|
|
|
|
731 |
user_id_box,
|
732 |
key_len_box,
|
733 |
key_box,
|
|
|
2 |
import time
|
3 |
from typing import Dict, List, Tuple
|
4 |
|
5 |
+
import gradio as gr # pylint: disable=import-error
|
6 |
import numpy as np
|
7 |
+
import pandas as pd
|
8 |
import requests
|
9 |
from symptoms_categories import SYMPTOMS_LIST
|
10 |
from utils import (
|
|
|
14 |
INPUT_BROWSER_LIMIT,
|
15 |
KEYS_DIR,
|
16 |
SERVER_URL,
|
17 |
+
TARGET_COLUMNS,
|
18 |
+
TRAINING_FILENAME,
|
19 |
clean_directory,
|
20 |
get_disease_name,
|
21 |
load_data,
|
|
|
40 |
Returns:
|
41 |
bool: True if the object is None or empty, False otherwise.
|
42 |
"""
|
43 |
+
return obj is None or (obj is not None and len(obj) < 1)
|
44 |
+
|
45 |
+
|
46 |
+
def display_default_symptoms_fn(default_disease: str) -> Dict:
|
47 |
+
"""
|
48 |
+
Displays the symptoms of a given existing disease.
|
49 |
+
|
50 |
+
Args:
|
51 |
+
default_disease (str): Disease
|
52 |
+
Returns:
|
53 |
+
Dict: The according symptoms
|
54 |
+
"""
|
55 |
+
df = pd.read_csv(TRAINING_FILENAME)
|
56 |
+
df_filtred = df[df[TARGET_COLUMNS[1]] == default_disease]
|
57 |
+
|
58 |
+
return {
|
59 |
+
default_symptoms: gr.update(
|
60 |
+
visible=True,
|
61 |
+
value=pretty_print(
|
62 |
+
df_filtred.columns[df_filtred.eq(1).any()].to_list(), delimiter=", "
|
63 |
+
),
|
64 |
+
)
|
65 |
+
}
|
66 |
|
67 |
|
68 |
# <!> This function has been paused due to UI issues.
|
|
|
131 |
"""
|
132 |
if not any(lst for lst in checked_symptoms if lst):
|
133 |
return {
|
134 |
+
error_box1: gr.update(visible=True, value="⚠️ Please provide your chief complaints."),
|
|
|
|
|
135 |
}
|
136 |
|
137 |
if len(pretty_print(checked_symptoms)) < 5:
|
138 |
print("Provide at least 5 symptoms.")
|
139 |
return {
|
140 |
+
error_box1: gr.update(visible=True, value="⚠️ Provide at least 5 symptoms"),
|
141 |
+
user_vect_box1: None,
|
142 |
}
|
143 |
|
|
|
144 |
return {
|
145 |
error_box1: gr.update(visible=False),
|
146 |
+
user_vect_box1: gr.update(
|
147 |
+
visible=True, value=get_user_symptoms_from_checkboxgroup(pretty_print(checked_symptoms))
|
148 |
+
),
|
149 |
+
recap_symptoms_box: gr.update(
|
150 |
+
visible=True,
|
151 |
+
value=pretty_print(checked_symptoms, case_conversion=str.capitalize, delimiter=", "),
|
152 |
+
),
|
153 |
}
|
154 |
|
155 |
|
|
|
169 |
if is_none(user_symptoms):
|
170 |
print("Error: Please submit your symptoms or select a default disease.")
|
171 |
return {
|
172 |
+
error_box2: gr.update(visible=True, value="⚠️ Please submit your symptoms first."),
|
173 |
}
|
174 |
|
175 |
# Generate a random user ID
|
|
|
195 |
|
196 |
return {
|
197 |
error_box2: gr.update(visible=False),
|
198 |
+
key_box: gr.update(visible=False, value=serialized_evaluation_keys_shorten_hex),
|
199 |
+
user_id_box: gr.update(visible=True, value=user_id),
|
200 |
+
key_len_box: gr.update(
|
201 |
+
visible=False, value=f"{len(serialized_evaluation_keys) / (10**6):.2f} MB"
|
202 |
+
),
|
203 |
}
|
204 |
|
205 |
|
|
|
216 |
print("Error in encryption step: Provide your symptoms and generate the evaluation keys.")
|
217 |
return {
|
218 |
error_box3: gr.update(
|
219 |
+
visible=True,
|
220 |
+
value="⚠️ Please ensure that your symptoms have been submitted and "
|
221 |
+
"that you have generated the evaluation key.",
|
222 |
)
|
223 |
}
|
224 |
|
|
|
242 |
|
243 |
return {
|
244 |
error_box3: gr.update(visible=False),
|
245 |
+
user_vect_box2: gr.update(visible=False, value=user_symptoms),
|
246 |
+
quant_vect_box: gr.update(visible=False, value=quant_user_symptoms),
|
247 |
+
enc_vect_box: gr.update(visible=True, value=encrypted_quantized_user_symptoms_shorten_hex),
|
248 |
}
|
249 |
|
250 |
|
|
|
260 |
return {
|
261 |
error_box4: gr.update(
|
262 |
visible=True,
|
263 |
+
value="⚠️ Please check your connectivity \n"
|
264 |
+
"⚠️ Ensure that the symptoms have been submitted and the evaluation "
|
265 |
+
"key has been generated before sending the data to the server.",
|
266 |
)
|
267 |
}
|
268 |
|
|
|
275 |
f"The key has been generated correctly - {evaluation_key_path.is_file()=}"
|
276 |
)
|
277 |
|
278 |
+
return {
|
279 |
+
error_box4: gr.update(visible=True, value="⚠️ Please generate the private key first.")
|
280 |
+
}
|
281 |
|
282 |
if not encrypted_input_path.is_file():
|
283 |
print(
|
|
|
287 |
return {
|
288 |
error_box4: gr.update(
|
289 |
visible=True,
|
290 |
+
value="⚠️ Please encrypt the data with the private key first.",
|
291 |
),
|
292 |
}
|
293 |
|
|
|
326 |
return {
|
327 |
error_box5: gr.update(
|
328 |
visible=True,
|
329 |
+
value="⚠️ Please check your connectivity \n"
|
330 |
+
"⚠️ Ensure that the symptoms have been submitted, the evaluation "
|
331 |
+
"key has been generated and the server received the data "
|
332 |
+
"before processing the data.",
|
333 |
+
),
|
334 |
+
fhe_execution_time_box: None,
|
335 |
}
|
336 |
|
337 |
data = {
|
|
|
349 |
error_box5: gr.update(
|
350 |
visible=True,
|
351 |
value=(
|
352 |
+
"⚠️ An error occurred on the Server Side. "
|
353 |
"Please check connectivity and data transmission."
|
354 |
),
|
355 |
),
|
356 |
+
fhe_execution_time_box: gr.update(visible=False),
|
357 |
}
|
358 |
else:
|
359 |
+
time.sleep(1)
|
360 |
print(f"response.ok: {response.ok}, {response.json()} - Computed")
|
361 |
|
362 |
return {
|
363 |
error_box5: gr.update(visible=False),
|
364 |
+
fhe_execution_time_box: gr.update(visible=True, value=f"{response.json():.2f} seconds"),
|
365 |
}
|
366 |
|
367 |
|
|
|
377 |
return {
|
378 |
error_box6: gr.update(
|
379 |
visible=True,
|
380 |
+
value="⚠️ Please check your connectivity \n"
|
381 |
+
"⚠️ Ensure that the server has successfully processed and transmitted the data to the client.",
|
382 |
)
|
383 |
}
|
384 |
|
|
|
406 |
return {error_box6: gr.update(visible=False), srv_resp_retrieve_data_box: "Data received"}
|
407 |
|
408 |
|
409 |
+
def decrypt_fn(user_id: str, user_symptoms: np.ndarray, threshold: int = 0.5) -> Dict:
|
410 |
"""Dencrypt the data on the `Client Side`.
|
411 |
|
412 |
Args:
|
413 |
user_id (str): The current user's ID
|
414 |
user_symptoms (np.ndarray): The user symptoms
|
415 |
+
threshold (float): Probability confidence threshold
|
416 |
|
417 |
Returns:
|
418 |
Decrypted output
|
|
|
422 |
return {
|
423 |
error_box7: gr.update(
|
424 |
visible=True,
|
425 |
+
value="⚠️ Please check your connectivity \n"
|
426 |
+
"⚠️ Ensure that the client has successfully received the data from the server.",
|
427 |
)
|
428 |
}
|
429 |
|
|
|
435 |
return {
|
436 |
error_box7: gr.update(
|
437 |
visible=True,
|
438 |
+
value="⚠️ Please ensure that: \n"
|
439 |
+
"- the connectivity \n"
|
440 |
+
"- the symptoms have been submitted \n"
|
441 |
+
"- the evaluation key has been generated \n"
|
442 |
+
"- the server processed the encrypted data \n"
|
443 |
+
"- the Client received the data from the Server before decrypting the prediction",
|
444 |
+
),
|
445 |
+
decrypt_target_box: None,
|
446 |
}
|
447 |
|
448 |
# Load the encrypted output as bytes
|
|
|
456 |
# Deserialize, decrypt and post-process the encrypted output
|
457 |
output = client.deserialize_decrypt_dequantize(encrypted_output)
|
458 |
|
459 |
+
top3_diseases = np.argsort(output.flatten())[-3:][::-1]
|
460 |
+
top3_proba = output[0][top3_diseases]
|
461 |
+
|
462 |
+
if (
|
463 |
+
(top3_proba[0] < threshold)
|
464 |
+
or (np.sum(top3_proba) < threshold)
|
465 |
+
or (abs(top3_proba[0] - top3_proba[1]) < threshold)
|
466 |
+
):
|
467 |
+
out = (
|
468 |
+
"The prediction appears uncertain; including more symptoms may improve the results.\n\n"
|
469 |
+
"Here are the top3 predictions:"
|
470 |
+
)
|
471 |
+
else:
|
472 |
+
out = "Based on the information provided, here are the top3 predictions:"
|
473 |
+
|
474 |
+
out = (
|
475 |
+
f"{out}\n\n"
|
476 |
+
f"1. « {get_disease_name(top3_diseases[0])} » with a probability of {top3_proba[0]:.2%}\n"
|
477 |
+
f"2. « {get_disease_name(top3_diseases[1])} » with a probability of {top3_proba[1]:.2%}\n"
|
478 |
+
f"3. « {get_disease_name(top3_diseases[2])} » with a probability of {top3_proba[2]:.2%}\n"
|
479 |
+
)
|
480 |
|
481 |
return {
|
482 |
error_box7: gr.update(visible=False),
|
483 |
+
decrypt_target_box: out,
|
484 |
}
|
485 |
|
486 |
|
|
|
490 |
clean_directory()
|
491 |
|
492 |
return {
|
493 |
+
user_id_box: gr.update(visible=False, value=None, interactive=False),
|
|
|
494 |
user_vect_box1: None,
|
495 |
+
recap_symptoms_box: gr.update(visible=False, value=None),
|
496 |
+
default_symptoms: gr.update(visible=True, value=None),
|
497 |
+
disease_box: gr.update(visible=True, value=None),
|
498 |
+
user_vect_box2: gr.update(visible=False, value=None, interactive=False),
|
499 |
+
quant_vect_box: gr.update(visible=False, value=None, interactive=False),
|
500 |
+
enc_vect_box: gr.update(visible=True, value=None, interactive=False),
|
501 |
+
key_box: gr.update(visible=True, value=None, interactive=False),
|
502 |
+
key_len_box: gr.update(visible=False, value=None, interactive=False),
|
503 |
+
fhe_execution_time_box: gr.update(visible=True, value=None, interactive=False),
|
504 |
decrypt_target_box: None,
|
505 |
error_box7: gr.update(visible=False),
|
506 |
error_box1: gr.update(visible=False),
|
|
|
514 |
**{box: None for box in check_boxes},
|
515 |
}
|
516 |
|
|
|
|
|
|
|
517 |
|
518 |
CSS = """
|
519 |
+
#them {color: grey}
|
520 |
+
#them {font-size: 24px}
|
521 |
+
#them {font-weight: bold}
|
522 |
.gradio-container {background-color: white}
|
523 |
+
.gradio-button {color: red; font-size: 20px;}
|
524 |
/* .feedback {font-size: 3px !important} */
|
525 |
+
#svelte-s1r2yt {color: grey}
|
526 |
#svelte-s1r2yt {font-size: 25px}
|
527 |
#svelte-s1r2yt {font-weight: bold}
|
528 |
/* #them {text-align: center} */
|
529 |
"""
|
530 |
|
531 |
+
back_to_top_btn_html = """
|
532 |
+
<button id="toTopBtn" onclick="'parentIFrame' in window ? window.parentIFrame.scrollTo({top: 0, behavior:'smooth'}) : window.scrollTo({ top: 0 })">
|
533 |
+
<a style="color:white; text-decoration:none;">Back to Top!</a>
|
534 |
+
</button>
|
535 |
+
"""
|
536 |
+
|
537 |
if __name__ == "__main__":
|
538 |
|
539 |
print("Starting demo ...")
|
540 |
|
541 |
clean_directory()
|
542 |
|
543 |
+
(X_train, X_test), (y_train, y_test), valid_symptoms, diseases = load_data()
|
544 |
|
545 |
with gr.Blocks(css=CSS) as demo:
|
546 |
+
gr.HTML(back_to_top_btn_html)
|
547 |
|
548 |
# Link + images
|
549 |
gr.Markdown(
|
|
|
565 |
</p>
|
566 |
|
567 |
<p align="center">
|
568 |
+
<img width="100%" height="30%" src="https://raw.githubusercontent.com/kcelia/Img/main/cover_image.png">
|
569 |
</p>
|
570 |
"""
|
571 |
)
|
572 |
|
573 |
+
gr.Markdown("# Introduction")
|
574 |
+
gr.Markdown(
|
575 |
+
"Welcome to our Healthcare Prediction space using Fully Homomorphic Encryption (FHE) with Concrete ML library."
|
576 |
+
)
|
577 |
+
gr.Markdown(
|
578 |
+
"Through this user-friendly and secure client-server interface you can confidently submit your chief complaints, which you have locally "
|
579 |
+
"encrypted on your end and transmitted to an untrusted server for processing.\n\n"
|
580 |
+
"Thanks to the FHE scheme, the remote server is able to perform computations without ever decrypting the data and return result the encrypted to the client for local decryption. \n\n\n"
|
581 |
+
"FHE ensures end-to-end data encryption and guarantees patient privacy."
|
582 |
+
)
|
583 |
+
gr.Markdown(
|
584 |
+
"Disclaimer: We are not medical professionals. For accurate diagnosis and treatment, "
|
585 |
+
"please consult a qualified healthcare provider."
|
586 |
+
)
|
587 |
+
|
588 |
+
with gr.Tabs(eelem_id="them") as tabs:
|
589 |
+
with gr.TabItem("1. Chief Complaints", id=0):
|
590 |
+
gr.Markdown("<span style='color:grey'>Client Side</span>")
|
591 |
+
gr.Markdown("## Provide your chief complaints")
|
592 |
+
gr.Markdown("Provide at least 5 chief complaints by filling in the boxes below. ")
|
593 |
|
594 |
# Box symptoms
|
595 |
check_boxes = []
|
|
|
605 |
)
|
606 |
check_boxes.append(check_box)
|
607 |
|
608 |
+
error_box1 = gr.Textbox(label="Error ❌", visible=False)
|
609 |
|
610 |
# <!> This part has been paused due to UI issues.
|
611 |
|
612 |
# Default disease, picked from the dataframe
|
613 |
+
gr.Markdown(
|
614 |
+
"You can choose an existing disease and explore its associated symptoms."
|
615 |
+
)
|
616 |
+
|
617 |
+
with gr.Row():
|
618 |
+
with gr.Column(scale=2):
|
619 |
+
disease_box = gr.Dropdown(sorted(diseases), label="Diseases 👆")
|
620 |
+
with gr.Column(scale=5):
|
621 |
+
default_symptoms = gr.Textbox(
|
622 |
+
label="Related Symptoms:", visible=True, interactive=False
|
623 |
+
)
|
624 |
+
|
625 |
+
disease_box.change(
|
626 |
+
fn=display_default_symptoms_fn, inputs=[disease_box], outputs=[default_symptoms]
|
627 |
+
)
|
628 |
|
629 |
# User symptom vector
|
630 |
user_vect_box1 = gr.Textbox(label="User Symptoms Vector:", interactive=False)
|
631 |
|
632 |
# Submit botton
|
633 |
+
submit_button = gr.Button("Submit 👆")
|
|
|
|
|
|
|
|
|
|
|
|
|
634 |
|
635 |
# Clear botton
|
636 |
+
clear_button = gr.Button("Reset Space 🔁")
|
637 |
+
# Next tab
|
638 |
+
gr.Markdown("")
|
639 |
+
next_tab = gr.Button("Next Step 👉")
|
640 |
+
next_tab.click(lambda _: gr.Tabs.update(selected=1), None, tabs)
|
641 |
|
|
|
|
|
|
|
642 |
with gr.TabItem("2. Data Encryption", id=1):
|
643 |
+
gr.Markdown("<span style='color:grey'>Client Side</span>")
|
644 |
+
gr.Markdown("## Key Generation")
|
645 |
+
gr.Markdown(
|
646 |
+
"In FHE schemes, a secret (enc/dec)ryption keys are generated for encrypting and decrypting data owned by the client. \n\n"
|
647 |
+
"Additionally, a public evaluation key is generated, enabling external entities to perform homomorphic operations on encrypted data, without the need to decrypt them. \n\n"
|
648 |
+
"The evaluation key will be transmitted to the server for further processing."
|
649 |
+
)
|
650 |
|
651 |
+
gen_key_btn = gr.Button("Generate the evaluation key 👆")
|
652 |
+
error_box2 = gr.Textbox(label="Error ❌", visible=False)
|
653 |
|
654 |
+
user_id_box = gr.Textbox(label="User ID:", interactive=False, visible=True)
|
655 |
+
# Evaluation key size
|
656 |
+
|
657 |
+
key_len_box = gr.Textbox(
|
658 |
+
label="Evaluation Key Size:", interactive=False, visible=False
|
659 |
+
)
|
|
|
660 |
|
661 |
# Evaluation key (truncated)
|
662 |
+
key_box = gr.Textbox(
|
663 |
+
label="Evaluation key (truncated):",
|
664 |
+
max_lines=3,
|
665 |
+
interactive=False,
|
666 |
+
visible=False,
|
667 |
+
)
|
668 |
|
669 |
gen_key_btn.click(
|
670 |
key_gen_fn,
|
|
|
677 |
],
|
678 |
)
|
679 |
|
680 |
+
gr.Markdown("## Encrypt the data")
|
|
|
|
|
|
|
681 |
|
682 |
+
encrypt_btn = gr.Button("Encrypt the data using the 🔒 private secret key 👆")
|
683 |
+
error_box3 = gr.Textbox(label="Error ❌", visible=False)
|
684 |
|
685 |
with gr.Row():
|
686 |
with gr.Column(scale=1, min_width=600):
|
687 |
user_vect_box2 = gr.Textbox(
|
688 |
+
label="User Symptoms Vector:",
|
689 |
+
interactive=False,
|
690 |
+
visible=False,
|
691 |
)
|
692 |
|
693 |
with gr.Column(scale=1, min_width=600):
|
694 |
+
quant_vect_box = gr.Textbox(
|
695 |
+
label="Quantized Vector:",
|
696 |
+
interactive=False,
|
697 |
+
visible=False,
|
698 |
+
)
|
699 |
|
700 |
with gr.Column(scale=1, min_width=600):
|
701 |
enc_vect_box = gr.Textbox(
|
702 |
+
label="Encrypted Vector:",
|
703 |
+
max_lines=3,
|
704 |
+
interactive=False,
|
705 |
)
|
706 |
|
707 |
encrypt_btn.click(
|
|
|
716 |
)
|
717 |
|
718 |
gr.Markdown(
|
719 |
+
"## Send the encrypted data to the "
|
720 |
+
"<span style='color:grey'>Server Side</span>"
|
721 |
)
|
722 |
|
723 |
+
error_box4 = gr.Textbox(label="Error ❌", visible=False)
|
724 |
|
725 |
with gr.Row().style(equal_height=False):
|
726 |
with gr.Column(scale=4):
|
727 |
+
send_input_btn = gr.Button("Send the encrypted data 👆")
|
728 |
with gr.Column(scale=1):
|
729 |
srv_resp_send_data_box = gr.Checkbox(
|
730 |
label="Data Sent", show_label=False, interactive=False
|
|
|
735 |
inputs=[user_id_box, user_vect_box1],
|
736 |
outputs=[error_box4, srv_resp_send_data_box],
|
737 |
)
|
738 |
+
|
739 |
+
gr.Markdown("\n\n")
|
740 |
with gr.Row().style(equal_height=True):
|
741 |
with gr.Column(scale=1):
|
742 |
+
prev_tab = gr.Button("👈 Previous Step")
|
743 |
+
prev_tab.click(lambda _: gr.Tabs.update(selected=0), None, tabs)
|
744 |
|
745 |
with gr.Column(scale=1):
|
746 |
+
next_tab = gr.Button("Next Step 👉")
|
747 |
+
next_tab.click(lambda _: gr.Tabs.update(selected=2), None, tabs)
|
|
|
|
|
748 |
|
749 |
with gr.TabItem("3. FHE execution", id=2):
|
750 |
+
gr.Markdown("<span style='color:grey'>Server Side</span>")
|
751 |
+
gr.Markdown("## Run the FHE evaluation")
|
752 |
+
gr.Markdown(
|
753 |
+
"Once the server receives the encrypted data, it can process and compute the output without ever decrypting the data just as it would on clear data.\n\n"
|
754 |
+
"This server employs a logistic regression model that has been trained on this [data-set](https://github.com/anujdutt9/Disease-Prediction-from-Symptoms/tree/master/dataset)."
|
755 |
+
)
|
756 |
|
757 |
+
run_fhe_btn = gr.Button("Run the FHE evaluation 👆")
|
758 |
+
error_box5 = gr.Textbox(label="Error ❌", visible=False)
|
759 |
fhe_execution_time_box = gr.Textbox(
|
760 |
+
label="Total FHE Execution Time:", interactive=False, visible=True
|
761 |
)
|
762 |
|
763 |
run_fhe_btn.click(
|
|
|
766 |
outputs=[fhe_execution_time_box, error_box5],
|
767 |
)
|
768 |
|
769 |
+
gr.Markdown("\n\n")
|
770 |
with gr.Row().style(equal_height=True):
|
771 |
with gr.Column(scale=1):
|
772 |
+
prev_tab = gr.Button("👈 Previous Step")
|
773 |
prev_tab.click(lambda _: gr.Tabs.update(selected=1), None, tabs)
|
774 |
|
775 |
with gr.Column(scale=1):
|
776 |
+
next_tab = gr.Button("Next Step 👉 ")
|
777 |
next_tab.click(lambda _: gr.Tabs.update(selected=3), None, tabs)
|
|
|
|
|
778 |
|
779 |
with gr.TabItem("4. Data Decryption", id=3):
|
780 |
+
gr.Markdown("<span style='color:grey'>Client Side</span>")
|
781 |
+
gr.Markdown("## Get the data from the <span style='color:grey'>Server Side</span>")
|
|
|
|
|
782 |
|
783 |
+
error_box6 = gr.Textbox(label="Error ❌", visible=False)
|
784 |
|
785 |
with gr.Row().style(equal_height=True):
|
786 |
with gr.Column(scale=4):
|
787 |
+
get_output_btn = gr.Button("Get data 👆")
|
788 |
with gr.Column(scale=1):
|
789 |
srv_resp_retrieve_data_box = gr.Checkbox(
|
790 |
label="Data Received", show_label=False, interactive=False
|
|
|
796 |
outputs=[srv_resp_retrieve_data_box, error_box6],
|
797 |
)
|
798 |
|
799 |
+
gr.Markdown("## Decrypt the output")
|
800 |
|
801 |
+
recap_symptoms_box = gr.Textbox(
|
802 |
+
label="Summary of chief complaints:", visible=False, max_lines=3
|
803 |
+
)
|
804 |
+
|
805 |
+
decrypt_target_btn = gr.Button(
|
806 |
+
"Decrypt the output with the 🔒 private secret decryption key 👆"
|
807 |
+
)
|
808 |
+
error_box7 = gr.Textbox(label="Error ❌", visible=False)
|
809 |
+
decrypt_target_box = gr.Textbox(label="Decrypted Output:", interactive=False)
|
810 |
|
811 |
decrypt_target_btn.click(
|
812 |
decrypt_fn,
|
|
|
814 |
outputs=[decrypt_target_box, error_box7],
|
815 |
)
|
816 |
|
817 |
+
with gr.Row().style(equal_height=True):
|
818 |
+
with gr.Column(scale=1):
|
819 |
+
prev_tab = gr.Button("👈 Previous Step")
|
820 |
+
prev_tab.click(lambda _: gr.Tabs.update(selected=2), None, tabs)
|
821 |
+
|
822 |
+
with gr.Column(scale=1):
|
823 |
+
next_tab = gr.Button("👈 👈 Go back to start")
|
824 |
+
next_tab.click(lambda _: gr.Tabs.update(selected=0), None, tabs)
|
825 |
+
|
826 |
+
submit_button.click(
|
827 |
+
fn=get_features_fn,
|
828 |
+
inputs=[*check_boxes],
|
829 |
+
outputs=[user_vect_box1, error_box1, recap_symptoms_box],
|
830 |
+
)
|
831 |
|
832 |
clear_button.click(
|
833 |
reset_fn,
|
|
|
842 |
error_box5,
|
843 |
error_box6,
|
844 |
error_box7,
|
845 |
+
disease_box,
|
846 |
+
default_symptoms,
|
847 |
+
recap_symptoms_box,
|
848 |
user_id_box,
|
849 |
key_len_box,
|
850 |
key_box,
|
data/Testing_preprocessed.csv
CHANGED
@@ -1,43 +1,43 @@
|
|
1 |
-
itching,skin_rash,nodal_skin_eruptions,continuous_sneezing,shivering,chills,joint_pain,stomach_pain,acidity,ulcers_on_tongue,muscle_wasting,vomiting,burning_micturition,spotting_urination,fatigue,weight_gain,anxiety,cold_hands_and_feets,mood_swings,weight_loss,restlessness,lethargy,patches_in_throat,irregular_sugar_level,cough,high_fever,sunken_eyes,breathlessness,sweating,dehydration,indigestion,headache,yellowish_skin,dark_urine,nausea,loss_of_appetite,pain_behind_the_eyes,back_pain,constipation,abdominal_pain,
|
2 |
-
1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
3 |
-
0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
4 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
5 |
-
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
6 |
-
1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
7 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
8 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
9 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
10 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
11 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
12 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
13 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
14 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
15 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
16 |
-
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
17 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
18 |
-
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,
|
19 |
-
0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
20 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,
|
21 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
22 |
-
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,
|
23 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
24 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
25 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
26 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,
|
27 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,
|
28 |
-
0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
29 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
30 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
31 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
32 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
33 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,
|
34 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
35 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
36 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
37 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
38 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
39 |
-
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
40 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
41 |
-
0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
42 |
-
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
43 |
-
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
|
|
1 |
+
itching,skin_rash,nodal_skin_eruptions,continuous_sneezing,shivering,chills,joint_pain,stomach_pain,acidity,ulcers_on_tongue,muscle_wasting,vomiting,burning_micturition,spotting_urination,fatigue,weight_gain,anxiety,cold_hands_and_feets,mood_swings,weight_loss,restlessness,lethargy,patches_in_throat,irregular_sugar_level,cough,high_fever,sunken_eyes,breathlessness,sweating,dehydration,indigestion,headache,yellowish_skin,dark_urine,nausea,loss_of_appetite,pain_behind_the_eyes,back_pain,constipation,abdominal_pain,diarrhea,mild_fever,yellow_urine,yellowing_of_eyes,acute_liver_failure,swelling_of_stomach,swelled_lymph_nodes,malaise,blurred_and_distorted_vision,phlegm,throat_irritation,redness_of_eyes,sinus_pressure,runny_nose,congestion,chest_pain,weakness_in_limbs,fast_heart_rate,pain_during_bowel_movements,pain_in_anal_region,bloody_stool,irritation_in_anus,neck_pain,dizziness,cramps,bruising,excess_body_fat,swollen_legs,swollen_blood_vessels,puffy_face_and_eyes,enlarged_thyroid,brittle_nails,swollen_extremeties,excessive_hunger,frequent_unprotected_sexual_intercourse_with_multiple_partners,drying_and_tingling_lips,slurred_speech,knee_pain,hip_joint_pain,muscle_weakness,stiff_neck,swelling_joints,movement_stiffness,spinning_movements,loss_of_balance,unsteadiness,weakness_of_one_body_side,loss_of_smell,bladder_discomfort,foul_smell_of_urine,continuous_feel_of_urine,passage_of_gases,internal_itching,toxic_look_(typhus),irritability,muscle_pain,altered_sensorium,red_spots_over_body,abnormal_menstruation,dischromic_patches,watering_from_eyes,increased_appetite,polyuria,family_history,mucoid_sputum,rusty_sputum,lack_of_concentration,visual_disturbances,receiving_blood_transfusion,receiving_unsterile_injections,stomach_bleeding,distention_of_abdomen,chronic_alcohol_abuse,severe_fluid_overload,blood_in_sputum,prominent_veins_on_calf,palpitations,painful_walking,pus_filled_pimples,blackheads,scurving,skin_peeling,silver_like_dusting,small_dents_in_nails,inflammatory_nails,blister,red_sore_around_nose,yellow_crust_ooze,prognosis,prognosis_encoded
|
2 |
+
1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Fungal Infection,14
|
3 |
+
0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Allergy,3
|
4 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Gerd,16
|
5 |
+
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Chronic Cholestasis,8
|
6 |
+
1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Drug Reaction,13
|
7 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Peptic Ulcer,34
|
8 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Aids,1
|
9 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Diabetes ,11
|
10 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Gastroenteritis,15
|
11 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Bronchial Asthma,5
|
12 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hypertension ,23
|
13 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Migraine,30
|
14 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Cervical Spondylosis,6
|
15 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Paralysis (Brain Hemorrhage),32
|
16 |
+
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Jaundice,28
|
17 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Malaria,29
|
18 |
+
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Chicken Pox,7
|
19 |
+
0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Dengue,10
|
20 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Typhoid,38
|
21 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis A,18
|
22 |
+
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis B,19
|
23 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis C,20
|
24 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis D,21
|
25 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis E,22
|
26 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Alcoholic Hepatitis,2
|
27 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Tuberculosis,37
|
28 |
+
0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Common Cold,9
|
29 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Pneumonia,35
|
30 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Dimorphic Hemmorhoids (Piles),12
|
31 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Heart Attack,17
|
32 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Varicose Veins,40
|
33 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hypothyroidism,26
|
34 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hyperthyroidism,24
|
35 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hypoglycemia,25
|
36 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Osteoarthristis,31
|
37 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Arthritis,4
|
38 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Paroxymsal Positional Vertigo,33
|
39 |
+
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Acne,0
|
40 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Urinary Tract Infection,39
|
41 |
+
0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,Psoriasis,36
|
42 |
+
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,Impetigo,27
|
43 |
+
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,Fungal Infection,14
|
data/Training_preprocessed.csv
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
deployment_logit/client.zip
ADDED
Binary file (2.91 kB). View file
|
|
deployment_logit/server.zip
ADDED
Binary file (2.64 kB). View file
|
|
deployment_logit/versions.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_logit_11/client.zip
ADDED
Binary file (2.91 kB). View file
|
|
deployment_logit_11/server.zip
ADDED
Binary file (2.63 kB). View file
|
|
deployment_logit_11/versions.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_logit_12/client.zip
ADDED
Binary file (2.89 kB). View file
|
|
deployment_logit_12/server.zip
ADDED
Binary file (5.2 kB). View file
|
|
deployment_logit_12/versions.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_logit_13/client.zip
ADDED
Binary file (2.89 kB). View file
|
|
deployment_logit_13/server.zip
ADDED
Binary file (5.22 kB). View file
|
|
deployment_logit_13/versions.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_xgb/client.zip
ADDED
Binary file (88.5 kB). View file
|
|
deployment_xgb/server.zip
ADDED
Binary file (8.53 kB). View file
|
|
deployment_xgb/versions.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
symptoms_categories.py
CHANGED
@@ -7,16 +7,16 @@ Each variable contains a list of symptoms sthat can be pecific to a part of the
|
|
7 |
of similar symptoms.
|
8 |
"""
|
9 |
|
10 |
-
|
11 |
-
|
|
|
12 |
"stomach_pain",
|
13 |
"acidity",
|
14 |
"vomiting",
|
15 |
"indigestion",
|
16 |
"constipation",
|
17 |
"abdominal_pain",
|
18 |
-
"
|
19 |
-
"belly_pain",
|
20 |
"nausea",
|
21 |
"distention_of_abdomen",
|
22 |
"stomach_bleeding",
|
@@ -33,8 +33,8 @@ DIGESTIVE_SYSTEM_SYPTOMS = {
|
|
33 |
]
|
34 |
}
|
35 |
|
36 |
-
|
37 |
-
"
|
38 |
"itching",
|
39 |
"skin_rash",
|
40 |
"pus_filled_pimples",
|
@@ -50,11 +50,12 @@ SKIN_SYPTOMS = {
|
|
50 |
"yellow_crust_ooze",
|
51 |
"dischromic_patches",
|
52 |
"nodal_skin_eruptions",
|
|
|
53 |
]
|
54 |
}
|
55 |
|
56 |
ORL_SYMPTOMS = {
|
57 |
-
"
|
58 |
"loss_of_smell",
|
59 |
"continuous_sneezing",
|
60 |
"runny_nose",
|
@@ -70,7 +71,7 @@ ORL_SYMPTOMS = {
|
|
70 |
}
|
71 |
|
72 |
THORAX_SYMPTOMS = {
|
73 |
-
"
|
74 |
"breathlessness",
|
75 |
"chest_pain",
|
76 |
"cough",
|
@@ -84,7 +85,7 @@ THORAX_SYMPTOMS = {
|
|
84 |
}
|
85 |
|
86 |
EYES_SYMPTOMS = {
|
87 |
-
"
|
88 |
"sunken_eyes",
|
89 |
"redness_of_eyes",
|
90 |
"watering_from_eyes",
|
@@ -95,7 +96,7 @@ EYES_SYMPTOMS = {
|
|
95 |
}
|
96 |
|
97 |
VASCULAR_LYMPHATIC_SYMPTOMS = {
|
98 |
-
"
|
99 |
"cold_hands_and_feets",
|
100 |
"swollen_blood_vessels",
|
101 |
"swollen_legs",
|
@@ -104,14 +105,13 @@ VASCULAR_LYMPHATIC_SYMPTOMS = {
|
|
104 |
"prominent_veins_on_calf",
|
105 |
"yellowing_of_eyes",
|
106 |
"puffy_face_and_eyes",
|
107 |
-
"
|
108 |
-
"fluid_overload.1",
|
109 |
"swollen_extremeties",
|
110 |
]
|
111 |
}
|
112 |
|
113 |
UROLOGICAL_SYMPTOMS = {
|
114 |
-
"
|
115 |
"burning_micturition",
|
116 |
"spotting_urination",
|
117 |
"yellow_urine",
|
@@ -124,7 +124,7 @@ UROLOGICAL_SYMPTOMS = {
|
|
124 |
}
|
125 |
|
126 |
MUSCULOSKELETAL_SYMPTOMS = {
|
127 |
-
"
|
128 |
"joint_pain",
|
129 |
"muscle_wasting",
|
130 |
"muscle_pain",
|
@@ -143,13 +143,12 @@ MUSCULOSKELETAL_SYMPTOMS = {
|
|
143 |
]
|
144 |
}
|
145 |
|
146 |
-
|
147 |
-
"
|
148 |
"anxiety",
|
149 |
"restlessness",
|
150 |
"lethargy",
|
151 |
"mood_swings",
|
152 |
-
"depression",
|
153 |
"irritability",
|
154 |
"lack_of_concentration",
|
155 |
"fatigue",
|
@@ -158,13 +157,8 @@ FEELING_SYMPTOMS = {
|
|
158 |
"increased_appetite",
|
159 |
"weight_loss",
|
160 |
"loss_of_appetite",
|
161 |
-
"
|
162 |
"excessive_hunger",
|
163 |
-
]
|
164 |
-
}
|
165 |
-
|
166 |
-
OTHER_SYMPTOMS = {
|
167 |
-
"OTHER_SYMPTOMS": [
|
168 |
"ulcers_on_tongue",
|
169 |
"shivering",
|
170 |
"chills",
|
@@ -174,36 +168,27 @@ OTHER_SYMPTOMS = {
|
|
174 |
"sweating",
|
175 |
"internal_itching",
|
176 |
"mild_fever",
|
177 |
-
"toxic_look_(typhos)",
|
178 |
"acute_liver_failure",
|
179 |
"dehydration",
|
180 |
"headache",
|
181 |
-
"
|
182 |
"drying_and_tingling_lips",
|
183 |
"altered_sensorium",
|
184 |
-
]
|
185 |
-
}
|
186 |
-
|
187 |
-
PATIENT_HISTORY = {
|
188 |
-
"PATIENT_HISTORY": [
|
189 |
"family_history",
|
190 |
"receiving_blood_transfusion",
|
191 |
"receiving_unsterile_injections",
|
192 |
-
"
|
193 |
-
"coma",
|
194 |
]
|
195 |
}
|
196 |
|
197 |
SYMPTOMS_LIST = [
|
198 |
-
|
199 |
EYES_SYMPTOMS,
|
200 |
ORL_SYMPTOMS,
|
201 |
THORAX_SYMPTOMS,
|
202 |
-
|
203 |
UROLOGICAL_SYMPTOMS,
|
204 |
VASCULAR_LYMPHATIC_SYMPTOMS,
|
205 |
MUSCULOSKELETAL_SYMPTOMS,
|
206 |
-
|
207 |
-
PATIENT_HISTORY,
|
208 |
-
OTHER_SYMPTOMS,
|
209 |
]
|
|
|
7 |
of similar symptoms.
|
8 |
"""
|
9 |
|
10 |
+
|
11 |
+
DIGESTIVE_SYSTEM_SYMPTOMS = {
|
12 |
+
"DIGESTIVE_SYSTEM_CONCERNS": [
|
13 |
"stomach_pain",
|
14 |
"acidity",
|
15 |
"vomiting",
|
16 |
"indigestion",
|
17 |
"constipation",
|
18 |
"abdominal_pain",
|
19 |
+
"diarrhea",
|
|
|
20 |
"nausea",
|
21 |
"distention_of_abdomen",
|
22 |
"stomach_bleeding",
|
|
|
33 |
]
|
34 |
}
|
35 |
|
36 |
+
SKIN_SYMPTOMS = {
|
37 |
+
"SKIN_CONCERNS": [
|
38 |
"itching",
|
39 |
"skin_rash",
|
40 |
"pus_filled_pimples",
|
|
|
50 |
"yellow_crust_ooze",
|
51 |
"dischromic_patches",
|
52 |
"nodal_skin_eruptions",
|
53 |
+
"toxic_look_(typhus)",
|
54 |
]
|
55 |
}
|
56 |
|
57 |
ORL_SYMPTOMS = {
|
58 |
+
"ORL_CONCERNS": [
|
59 |
"loss_of_smell",
|
60 |
"continuous_sneezing",
|
61 |
"runny_nose",
|
|
|
71 |
}
|
72 |
|
73 |
THORAX_SYMPTOMS = {
|
74 |
+
"THORAX_CONCERNS": [
|
75 |
"breathlessness",
|
76 |
"chest_pain",
|
77 |
"cough",
|
|
|
85 |
}
|
86 |
|
87 |
EYES_SYMPTOMS = {
|
88 |
+
"EYES_CONCERNS": [
|
89 |
"sunken_eyes",
|
90 |
"redness_of_eyes",
|
91 |
"watering_from_eyes",
|
|
|
96 |
}
|
97 |
|
98 |
VASCULAR_LYMPHATIC_SYMPTOMS = {
|
99 |
+
"VASCULAR_LYMPHATIC_CONCERNS": [
|
100 |
"cold_hands_and_feets",
|
101 |
"swollen_blood_vessels",
|
102 |
"swollen_legs",
|
|
|
105 |
"prominent_veins_on_calf",
|
106 |
"yellowing_of_eyes",
|
107 |
"puffy_face_and_eyes",
|
108 |
+
"severe_fluid_overload",
|
|
|
109 |
"swollen_extremeties",
|
110 |
]
|
111 |
}
|
112 |
|
113 |
UROLOGICAL_SYMPTOMS = {
|
114 |
+
"UROLOGICAL_CONCERNS": [
|
115 |
"burning_micturition",
|
116 |
"spotting_urination",
|
117 |
"yellow_urine",
|
|
|
124 |
}
|
125 |
|
126 |
MUSCULOSKELETAL_SYMPTOMS = {
|
127 |
+
"MUSCULOSKELETAL_CONCERNS": [
|
128 |
"joint_pain",
|
129 |
"muscle_wasting",
|
130 |
"muscle_pain",
|
|
|
143 |
]
|
144 |
}
|
145 |
|
146 |
+
GENERAL_SYMPTOMS = {
|
147 |
+
"GENERAL_CONCERNS": [
|
148 |
"anxiety",
|
149 |
"restlessness",
|
150 |
"lethargy",
|
151 |
"mood_swings",
|
|
|
152 |
"irritability",
|
153 |
"lack_of_concentration",
|
154 |
"fatigue",
|
|
|
157 |
"increased_appetite",
|
158 |
"weight_loss",
|
159 |
"loss_of_appetite",
|
160 |
+
"excess_body_fat",
|
161 |
"excessive_hunger",
|
|
|
|
|
|
|
|
|
|
|
162 |
"ulcers_on_tongue",
|
163 |
"shivering",
|
164 |
"chills",
|
|
|
168 |
"sweating",
|
169 |
"internal_itching",
|
170 |
"mild_fever",
|
|
|
171 |
"acute_liver_failure",
|
172 |
"dehydration",
|
173 |
"headache",
|
174 |
+
"frequent_unprotected_sexual_intercourse_with_multiple_partners",
|
175 |
"drying_and_tingling_lips",
|
176 |
"altered_sensorium",
|
|
|
|
|
|
|
|
|
|
|
177 |
"family_history",
|
178 |
"receiving_blood_transfusion",
|
179 |
"receiving_unsterile_injections",
|
180 |
+
"chronic_alcohol_abuse",
|
|
|
181 |
]
|
182 |
}
|
183 |
|
184 |
SYMPTOMS_LIST = [
|
185 |
+
SKIN_SYMPTOMS,
|
186 |
EYES_SYMPTOMS,
|
187 |
ORL_SYMPTOMS,
|
188 |
THORAX_SYMPTOMS,
|
189 |
+
DIGESTIVE_SYSTEM_SYMPTOMS,
|
190 |
UROLOGICAL_SYMPTOMS,
|
191 |
VASCULAR_LYMPHATIC_SYMPTOMS,
|
192 |
MUSCULOSKELETAL_SYMPTOMS,
|
193 |
+
GENERAL_SYMPTOMS,
|
|
|
|
|
194 |
]
|
utils.py
CHANGED
@@ -16,7 +16,7 @@ INPUT_BROWSER_LIMIT = 635
|
|
16 |
SERVER_URL = "http://localhost:8000/"
|
17 |
|
18 |
CURRENT_DIR = Path(__file__).parent
|
19 |
-
DEPLOYMENT_DIR = CURRENT_DIR / "
|
20 |
KEYS_DIR = DEPLOYMENT_DIR / ".fhe_keys"
|
21 |
CLIENT_DIR = DEPLOYMENT_DIR / "client_dir"
|
22 |
SERVER_DIR = DEPLOYMENT_DIR / "server_dir"
|
@@ -31,8 +31,12 @@ TESTING_FILENAME = "./data/Testing_preprocessed.csv"
|
|
31 |
|
32 |
# pylint: disable=invalid-name
|
33 |
|
|
|
34 |
|
35 |
-
|
|
|
|
|
|
|
36 |
"""
|
37 |
Prettify and sort the input as a list of string.
|
38 |
|
@@ -43,20 +47,21 @@ def pretty_print(inputs):
|
|
43 |
List: The prettified and sorted list of inputs.
|
44 |
|
45 |
"""
|
46 |
-
# Convert to a list if necessary
|
47 |
-
if not isinstance(inputs, (List, Tuple)):
|
48 |
-
inputs = list(inputs)
|
49 |
-
|
50 |
# Flatten the list if required
|
51 |
pretty_list = []
|
52 |
for item in inputs:
|
53 |
if isinstance(item, list):
|
54 |
-
pretty_list.extend(
|
55 |
else:
|
56 |
-
pretty_list.append(
|
57 |
|
58 |
-
# Sort
|
59 |
pretty_list = sorted(list(set(pretty_list)))
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
return pretty_list
|
62 |
|
@@ -113,7 +118,12 @@ def load_data() -> Union[Tuple[pandas.DataFrame, numpy.ndarray], List]:
|
|
113 |
y_test = df_test[TARGET_COLUMNS[0]]
|
114 |
X_test = df_test.drop(columns=TARGET_COLUMNS, axis=1, errors="ignore")
|
115 |
|
116 |
-
return (
|
|
|
|
|
|
|
|
|
|
|
117 |
|
118 |
|
119 |
def load_model(X_train: pandas.DataFrame, y_train: numpy.ndarray):
|
|
|
16 |
SERVER_URL = "http://localhost:8000/"
|
17 |
|
18 |
CURRENT_DIR = Path(__file__).parent
|
19 |
+
DEPLOYMENT_DIR = CURRENT_DIR / "deployment_logit_11"
|
20 |
KEYS_DIR = DEPLOYMENT_DIR / ".fhe_keys"
|
21 |
CLIENT_DIR = DEPLOYMENT_DIR / "client_dir"
|
22 |
SERVER_DIR = DEPLOYMENT_DIR / "server_dir"
|
|
|
31 |
|
32 |
# pylint: disable=invalid-name
|
33 |
|
34 |
+
from typing import List, Tuple
|
35 |
|
36 |
+
|
37 |
+
def pretty_print(
|
38 |
+
inputs, case_conversion=str.title, which_replace: str = "_", to_what: str = " ", delimiter=None
|
39 |
+
):
|
40 |
"""
|
41 |
Prettify and sort the input as a list of string.
|
42 |
|
|
|
47 |
List: The prettified and sorted list of inputs.
|
48 |
|
49 |
"""
|
|
|
|
|
|
|
|
|
50 |
# Flatten the list if required
|
51 |
pretty_list = []
|
52 |
for item in inputs:
|
53 |
if isinstance(item, list):
|
54 |
+
pretty_list.extend(item)
|
55 |
else:
|
56 |
+
pretty_list.append(item)
|
57 |
|
58 |
+
# Sort
|
59 |
pretty_list = sorted(list(set(pretty_list)))
|
60 |
+
# Replace
|
61 |
+
pretty_list = [item.replace(which_replace, to_what) for item in pretty_list]
|
62 |
+
pretty_list = [case_conversion(item) for item in pretty_list]
|
63 |
+
if delimiter:
|
64 |
+
pretty_list = f"{delimiter.join(pretty_list)}."
|
65 |
|
66 |
return pretty_list
|
67 |
|
|
|
118 |
y_test = df_test[TARGET_COLUMNS[0]]
|
119 |
X_test = df_test.drop(columns=TARGET_COLUMNS, axis=1, errors="ignore")
|
120 |
|
121 |
+
return (
|
122 |
+
(X_train, X_test),
|
123 |
+
(y_train, y_test),
|
124 |
+
X_train.columns.to_list(),
|
125 |
+
df_train[TARGET_COLUMNS[1]].unique().tolist(),
|
126 |
+
)
|
127 |
|
128 |
|
129 |
def load_model(X_train: pandas.DataFrame, y_train: numpy.ndarray):
|