import sklearn import requests import pandas as pd import gradio as gr url = 'https://data.mendeley.com/public-files/datasets/wmhctcrt5v/files/959a4949-b1c2-4858-b361-2602bb60a07a/file_downloaded' localfile = 'df.csv' response = requests.get(url) with open(localfile, 'wb') as file: file.write(response.content) df = pd.read_csv('df.csv') from sklearn.ensemble import RandomForestClassifier input, output = df.drop(['Result'], axis=1), df['Result'] from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(input, output, train_size=.85) random = RandomForestClassifier( n_estimators=20, max_depth=4, bootstrap=True ) random.fit(X_train, y_train) maps = { 'negative':0, 'positive':1 } dfx = df['Result'].map(maps) dfx = pd.DataFrame(dfx, columns=['Result']) def fn(Age, Gender, HeartRate, BP_sys, BP_dias, blood_sugar, ck_mb, troponin): inputs = [Age, Gender, HeartRate, BP_sys, BP_dias, blood_sugar, ck_mb, troponin] pred = random.predict([inputs]) if pred[0] == 'positive': return ('Positive Risk') else: return ('No Risk!') interface = gr.Interface( fn=fn, title='Heart Attack Prediction', inputs=[gr.Slider(1,100, label='Age', ), gr.Text(placeholder='1 for Male 0 for Female'), gr.Slider(0,200, label='Heart Rate'), gr.Slider(0,200, label='Blood Pressure(Sys)'), gr.Slider(0,200, label='Blood Pressure(dias)'), gr.Slider(50,250,label='Blood Sugar'), gr.Slider(0,100, label='CK-MB'), gr.Slider(0,5,label='Troponin')], outputs=gr.Text(placeholder=r'99.9% accurate estimates...'), description='Fill in the categories and find an estimate for heart attack (/associated risk level)' ) interface.launch()