Spaces:
Sleeping
Sleeping
lucasgbezerra
commited on
Commit
•
d1d6ffa
1
Parent(s):
f675d52
Update app.py
Browse files
app.py
CHANGED
@@ -3,38 +3,31 @@ from fastai.tabular.all import *
|
|
3 |
import pandas as pd
|
4 |
import torch
|
5 |
|
6 |
-
|
|
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
-
return tensor
|
14 |
-
|
15 |
def predict(age, hypertension, heart_disease, avg_glucose_level, bmi, gender, married, work_type, residence_type, smoking_status):
|
16 |
-
|
|
|
17 |
columns_df = ['gender', 'age', 'hypertension', 'heart_disease', 'ever_married', 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi','smoking_status']
|
18 |
-
|
19 |
-
|
20 |
-
data = [gender, age, hypertension, heart_disease, married, work_type, residence_type, avg_glucose_level, bmi, smoking_status]
|
21 |
|
|
|
|
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
hypertension_tensor = convert(hypertension, data)
|
26 |
-
heart_disease_tensor = convert(heart_disease, data)
|
27 |
-
avg_glucose_level_tensor = torch.tensor(avg_glucose_level, dtype=torch.float)
|
28 |
-
bmi_tensor = torch.tensor(bmi, dtype=torch.float)
|
29 |
-
gender_tensor = convert(hypertension, data)
|
30 |
-
married_tensor = convert(married, data)
|
31 |
-
work_type_tensor = convert(work_type, data)
|
32 |
-
residence_type_tensor = convert(residence_type, data)
|
33 |
-
smoking_status_tensor = convert(smoking_status, data)
|
34 |
-
|
35 |
-
tensor = torch.cat([gender_tensor, married_tensor, work_type_tensor, residence_type_tensor, smoking_status_tensor, bmi_tensor, age_tensor, hypertension_tensor, heart_disease_tensor, avg_glucose_level_tensor])
|
36 |
-
prediction = model.predict(tensor)
|
37 |
-
return "O paciente tem a seguinte possibilidade de infarto: " + str(predictions[0])
|
38 |
|
39 |
gr.Interface(
|
40 |
fn=predict,
|
@@ -46,7 +39,7 @@ gr.Interface(
|
|
46 |
gr.Dropdown(["Yes", "No"], label="Hypertension"),
|
47 |
gr.Dropdown(["Yes", "No"], label="Heart disease"),
|
48 |
gr.inputs.Number(default=100, label="Average glucose level"),
|
49 |
-
gr.inputs.Number(default=28.8, label="Body
|
50 |
gr.inputs.Radio(choices=["Female", "Male", "Other"], default="Female", label="Gender"),
|
51 |
gr.Dropdown(["No", "Yes"], label="Married"),
|
52 |
gr.Dropdown(["Governamental", "Never worked", "Private", "Self-employed", "Children"], label="Work type"),
|
|
|
3 |
import pandas as pd
|
4 |
import torch
|
5 |
|
6 |
+
df_framework = pd.read_csv('/kaggle/input/stroke-prediction-dataset/healthcare-dataset-stroke-data.csv')
|
7 |
+
splits = RandomSplitter(seed=42)(df_framework)
|
8 |
|
9 |
+
dls = TabularPandas(
|
10 |
+
df_framework, splits=splits,
|
11 |
+
procs = [Categorify, FillMissing, Normalize],
|
12 |
+
cat_names=["gender","ever_married","work_type","Residence_type", "smoking_status"],
|
13 |
+
cont_names=['age', 'hypertension', 'heart_disease', 'avg_glucose_level', 'bmi'],
|
14 |
+
y_names="stroke", y_block = CategoryBlock(),
|
15 |
+
).dataloaders(path=".")
|
16 |
+
|
17 |
+
learn = tabular_learner(dls, metrics=accuracy, layers=[10,10])
|
18 |
+
learn.fit(16, lr=0.025)
|
19 |
|
|
|
|
|
20 |
def predict(age, hypertension, heart_disease, avg_glucose_level, bmi, gender, married, work_type, residence_type, smoking_status):
|
21 |
+
|
22 |
+
data = [[gender, age, hypertension, heart_disease, married, work_type, residence_type, avg_glucose_level, bmi, smoking_status]]
|
23 |
columns_df = ['gender', 'age', 'hypertension', 'heart_disease', 'ever_married', 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi','smoking_status']
|
24 |
+
df_row = pd.DataFrame(data,columns=columns_df)
|
|
|
|
|
25 |
|
26 |
+
dl = learn.dls.test_dl(df_row)
|
27 |
+
preds,_ = learn.get_preds(dl=dl)
|
28 |
|
29 |
+
return "O paciente tem a seguinte possibilidade de infarto: " + str(preds[0])
|
30 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
gr.Interface(
|
33 |
fn=predict,
|
|
|
39 |
gr.Dropdown(["Yes", "No"], label="Hypertension"),
|
40 |
gr.Dropdown(["Yes", "No"], label="Heart disease"),
|
41 |
gr.inputs.Number(default=100, label="Average glucose level"),
|
42 |
+
gr.inputs.Number(default=28.8, label="Body Mass Index (BMI)"),
|
43 |
gr.inputs.Radio(choices=["Female", "Male", "Other"], default="Female", label="Gender"),
|
44 |
gr.Dropdown(["No", "Yes"], label="Married"),
|
45 |
gr.Dropdown(["Governamental", "Never worked", "Private", "Self-employed", "Children"], label="Work type"),
|