Elegbede's picture
Update app.py
51274fc verified
#!/usr/bin/env python
# coding: utf-8
# In[1]:
import warnings
warnings.simplefilter("ignore")
import pandas as pd
import numpy as np
from sklearn.metrics import classification_report, confusion_matrix
from sklearn.model_selection import train_test_split
import xgboost as xgb
from sklearn.preprocessing import LabelEncoder
import joblib
import gradio as gr
import joblib
# Define the Gradio input and output interfaces
inputs = [
gr.inputs.Dropdown(choices=["0", "1"], label="Gender"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you smoke?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have Yellow Fingers?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have Anxiety?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you get influenced by Peer Pressure?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have any Chronic Disease?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have Fatigue?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have an Allergy?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you experience Wheezing?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you drink alcohol?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Are you Coughing?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have Shortness of Breath?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have Swallowing Difficulty?"),
gr.inputs.Dropdown(choices=["0", "1"], label="Do you have Chest Pain?"),
gr.inputs.Number(label='What is your Age')
]
output = gr.outputs.Label(num_top_classes=2)
# Define the predict function
def predict(gender, smoking, yellow_fingers, anxiety, peer_pressure,
chronic_disease, fatigue, allergy, wheezing, alcohol_consuming,
coughing, shortness_of_breath, swallowing_difficulty, chest_pain,
age):
# Create a dataframe with the input values
input_dict = {'GENDER': gender, 'SMOKING': smoking, 'YELLOW_FINGERS': yellow_fingers,
'ANXIETY': anxiety, 'PEER_PRESSURE': peer_pressure,
'CHRONIC DISEASE': chronic_disease, 'FATIGUE ': fatigue,
'ALLERGY ': allergy, 'WHEEZING': wheezing,
'ALCOHOL CONSUMING': alcohol_consuming, 'COUGHING': coughing,
'SHORTNESS OF BREATH': shortness_of_breath,
'SWALLOWING DIFFICULTY': swallowing_difficulty,
'CHEST PAIN': chest_pain, 'AGE': age}
input_df = pd.DataFrame.from_dict([input_dict]).astype("int")
dtest = xgb.DMatrix(input_df)
#make predictions
#load model
model = joblib.load("model.pkl")
prediction = model.predict(dtest)
# Return prediction
return "You exhibit symptomps of Lung cancer,you might want to see the Doctor for proper diagnosis ❤." if prediction >0.99 else "You don't seem to have Lung Cancer, Enjoy and take good care of yourself❤"
# Create and launch the interface
interface = gr.Interface(fn=predict, inputs=inputs, outputs=output,
title='Lung Cancer Prediction', description='Predicting lung cancer using XGBoost Classifier.\nPlease Note:\nFemale = 0, Male= 1\nNo = 0, Yes = 1',
theme = 'darkhuggingface')
interface.launch()