import joblib from sklearn.preprocessing import StandardScaler import gradio as gr input_module1 = gr.inputs.Textbox(label = "age (integer): ") input_module2 = gr.inputs.Textbox(label = "sex (binary): ") input_module3 = gr.inputs.Textbox(label = "chest pain type: ") input_module4 = gr.inputs.Textbox(label = "resting blood pressure: ") input_module5 = gr.inputs.Textbox(label = "serum cholestoral in mg/dl: ") input_module6 = gr.inputs.Textbox(label = "fasting blood sugar > 120 mg/dl : ") input_module7 = gr.inputs.Textbox(label = "resting electrocardiographic results: ") input_module8 = gr.inputs.Textbox(label = "maximum heart rate achieved: ") input_module9 = gr.inputs.Textbox(label = "exercise induced angina: ") input_module10 = gr.inputs.Textbox(label = "oldpeak: ") input_module11 = gr.inputs.Textbox(label = "slope of the peak exercise ST segment : ") input_module12 = gr.inputs.Textbox(label = "number of major vessels colored by flourosopy ") input_module13 = gr.inputs.Textbox(label = "thal: ") input_module_2 = gr.inputs.Dropdown(choices=['Logistic Regression', 'Support Vector Machine', 'Decision Tree', 'Random Forest', 'Artificial Neural Networks', 'KNN', 'Linear Discriminant Analysis'], label = "ML Models Dropdown") output_module1 = gr.outputs.Label(label = "Predicted Class") lr_model = joblib.load('lr_model.joblib') svc_model = joblib.load('svc_model.joblib') dt_model = joblib.load('dt_model.joblib') rf_model = joblib.load('rf_model.joblib') mlp_model = joblib.load('mlp_model.joblib') knn_model = joblib.load('knn_model.joblib') lda_model = joblib.load('lda_model.joblib') def pred(input1, input2, input3, input4, input5, input6, input7, input8, input9, input10, input11, input12, input13, input14): heart_data = pd.read_csv("heart.csv", header = None, sep=' ') heart_data.columns = ['age', 'sex', 'chest_pain_type', 'resting_blood_pressure', 'serum_cholestoral', 'fasting_blood_sugar', 'resting_ecg_results', 'max_heart_rate_achieved', 'exercise_induced_angina', 'oldpeak', 'slope_peak_exercise_st_segment', 'num_major_vessels_colored_by_flourosopy', 'thal', 'target_variable'] X = heart_data.drop('target_variable', axis=1) y = heart_data['target_variable'] scaler = StandardScaler() X = scaler.fit_transform(X) X_new = scaler.transform(X) if input14 == "Logistic Regression": preds = lr_model.predict(X_new) elif input14 == "Support Vector Machine": preds = svc_model.predict(X_new) elif input14 == "Decision Tree": preds = dt_model.predict(X_new) elif input14 == "Random Forest": preds = rf_model.predict(X_new) elif input14 == "Artificial Neural Networks": preds = mlp_model.predict(X_new) elif input14 == "KNN": preds = knn_model.predict(X_new) elif input14 == "Linear Discriminant Analysis": preds = lda_model.predict(X_new) if preds[0] == 1: results = "No heart disease" elif preds[0] == 2: results = "Heart disease" return results gr.Interface(fn=pred, inputs=[input_module1,input_module2,input_module3,input_module4,input_module5,input_module6,input_module7,input_module8,input_module9,input_module10,input_module11,input_module12,input_module13,input_module_2], outputs=output_module1).launch(debug = True)