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() | |