Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pandas as pd | |
from sklearn.linear_model import Lasso | |
from sklearn.model_selection import train_test_split | |
from algo import description, article | |
# Load the data | |
data = pd.read_csv('hearing.csv') | |
data = data.drop("AGE",axis=1) | |
data = data.dropna(axis=0) | |
# Split the data into features and target | |
X = data.drop('HEARING LOSS(100)/LESS', axis=1) | |
y = data['HEARING LOSS(100)/LESS'] | |
# Split the data into training and test sets | |
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) | |
# Train the model | |
model = Lasso(alpha=0.1,random_state=42) | |
model.fit(X_train, y_train) | |
def predict_hearing_loss(NAME,AGE,GENDER, ES, GENETICAL, MENARIKAM, PROBLEM_PRENATAL, PROBLEM_POSTNATAL, DURING_BIRTH, SIBLINGS_PROBLEM, LEFT_EAR, RIGHT_EAR): | |
# Create a DataFrame from the inputs | |
input_data = pd.DataFrame([{ | |
'GENDER': 1 if GENDER == 'Male' else 0, | |
'GENETICAL': 1 if GENETICAL == 'Yes' else 0, | |
'MENARIKAM': 1 if MENARIKAM == 'Yes' else 0, | |
'PROBLEM_PRENATAL': 1 if PROBLEM_PRENATAL == 'Yes' else 0, | |
'PROBLEM_POSTNATAL': 1 if PROBLEM_POSTNATAL == 'Yes' else 0, | |
'DURING_BIRTH': 1 if DURING_BIRTH == 'Yes' else 0, | |
'SIBLINGS_PROBLEM': 1 if SIBLINGS_PROBLEM == 'Yes' else 0, | |
'LEFT_N': LEFT_EAR, | |
'RIGHT_N': RIGHT_EAR | |
}]) | |
# Make the prediction | |
prediction = model.predict(input_data) | |
rec = "" | |
if prediction[0] >= 77: | |
rec = "Severe hearing loss detected later. Immediate attention needed. Seek professional medical advice if not taken already and consider hearing aids or cochlear implants" | |
elif prediction[0] >=50: | |
rec = "Moderate hearing loss detected. Schedule regular hearing assessments and consider using hearing aids if necessary." | |
else: | |
rec = "Minor hearing loss detected. Keep monitoring the child's hearing and consult a doctor if there are any concerns." | |
return round(prediction[0],2),rec | |
interface = gr.Interface( | |
fn=predict_hearing_loss, | |
# inputs=[ | |
# gr.Textbox(label="Patient Id"), | |
# gr.Number(label="AGE"), | |
# gr.Radio(['Male', 'Female'], label="GENDER"), | |
# gr.Radio(['Yes', 'No'], label="GENETICAL"), | |
# gr.Radio(['Yes', 'No'], label="Consanguineous Marriages"), | |
# gr.Radio(['Yes', 'No'], label="PRENATAL PROBLEM "), | |
# gr.Radio(['Yes', 'No'], label="POSTNATAL PROBLEM"), | |
# gr.Radio(['Yes', 'No'], label="DURING BIRTH"), | |
# gr.Radio(['Yes', 'No'], label="SIBLINGS PROBLEM"), | |
# gr.Number(label="LEFT EAR"), | |
# gr.Number(label="RIGHT EAR") | |
# ], | |
inputs=[ | |
gr.Textbox(label="Child Identification number"), | |
gr.Number(label="Age"), | |
gr.Radio(['Male', 'Female'], label="Gender"), | |
gr.Radio(['Poor', 'BPL', 'Middle Class', 'Upper Class'], label="Economic Status"), | |
gr.Radio(['Yes', 'No'], label="Any Known Genetic Hearing Loss in Family?"), | |
gr.Radio(['Yes', 'No'], label="Is the parent marriage a Consanguineous Marriage?"), | |
gr.Radio(['Yes', 'No'], label="Any Prenatal Problems?"), | |
gr.Radio(['Yes', 'No'], label="Any Postnatal Problems?"), | |
gr.Radio(['Yes', 'No'], label="Any Complications During Birth?"), | |
gr.Radio(['Yes', 'No'], label="Any Siblings with Hearing Problems?"), | |
gr.Number(label="Left Ear Hearing Loss Severity (in dB)"), | |
gr.Number(label="Right Ear Hearing Loss Severity (in dB)") | |
], | |
outputs=[gr.Textbox(label="HEARING LOSS %", type="text"),gr.Textbox(label="Recommendation", type="text")], | |
title="A Predictive Model to Find Hearing Loss in Children Using Machine Learning Algorithms", | |
theme="gradio/monochrome", | |
allow_flagging=False, | |
css="footer {display: none !important}", | |
article=article, | |
description=description | |
) | |
interface.launch() | |