RahelJadhav's picture
Update app.py (#4)
ee06fbc verified
raw
history blame
4.68 kB
import gradio as gr
import joblib
import numpy as np
# Load the saved models and pipelines
anxiety_model = joblib.load('Anxiety_best_model.pkl')
anxiety_pipeline = joblib.load('Anxiety_best_pipeline.pkl')
depression_model = joblib.load('Depression_best_model.pkl')
depression_pipeline = joblib.load('Depression_best_pipeline.pkl')
insomnia_model = joblib.load('Insomnia_best_model.pkl')
insomnia_pipeline = joblib.load('Insomnia_best_pipeline.pkl')
ocd_model = joblib.load('OCD_best_model.pkl')
ocd_pipeline = joblib.load('OCD_best_pipeline.pkl')
# Define the prediction functions
def Anxiety_predict(input1, input2, input3, input4, input5, input6):
inputs = np.array([input1, input2, input3, input4, input5, input6]).reshape(1, -1)
inputs_scaled = anxiety_pipeline.transform(inputs)
prediction = anxiety_model.predict(inputs_scaled)
return prediction[0], f"The predicted value is {prediction[0]:.2f}"
def Depression_predict(input1, input2, input3, input4, input5, input6):
inputs = np.array([input1, input2, input3, input4, input5, input6]).reshape(1, -1)
inputs_scaled = depression_pipeline.transform(inputs)
prediction = depression_model.predict(inputs_scaled)
return prediction[0], f"The predicted value is {prediction[0]:.2f}"
def Insomnia_predict(input1, input2, input3, input4, input5, input6):
inputs = np.array([input1, input2, input3, input4, input5, input6]).reshape(1, -1)
inputs_scaled = insomnia_pipeline.transform(inputs)
prediction = insomnia_model.predict(inputs_scaled)
return prediction[0], f"The predicted value is {prediction[0]:.2f}"
def OCD_predict(input1, input2, input3, input4, input5, input6):
inputs = np.array([input1, input2, input3, input4, input5, input6]).reshape(1, -1)
inputs_scaled = ocd_pipeline.transform(inputs)
prediction = ocd_model.predict(inputs_scaled)
return prediction[0], f"The predicted value is {prediction[0]:.2f}"
# Define the Gradio interfaces
anxiety_iface = gr.Interface(
fn=Anxiety_predict,
inputs=[
gr.Number(label="Age"),
gr.Number(label="Hours per day"),
gr.Number(label="Depression"),
gr.Number(label="Insomnia"),
gr.Number(label="OCD"),
gr.Number(label="BPM")
],
outputs=[
gr.Number(label="Predicted Value"),
gr.Textbox(label="Prediction Description")
],
title="Music & Mental Health Predictor - Anxiety",
description="Enter 5 numeric values to get a prediction.",
theme=gr.themes.Soft(),
examples=[[18, 3, 0, 1, 0, 156]]
)
depression_iface = gr.Interface(
fn=Depression_predict,
inputs=[
gr.Number(label="Age"),
gr.Number(label="Hours per day"),
gr.Number(label="Insomnia"),
gr.Number(label="Anxiety"),
gr.Number(label="OCD"),
gr.Number(label="BPM")
],
outputs=[
gr.Number(label="Predicted Value"),
gr.Textbox(label="Prediction Description")
],
title="Music & Mental Health Predictor - Depression",
description="Enter 5 numeric values to get a prediction.",
theme=gr.themes.Soft(),
examples=[[18, 3, 0, 1, 0, 156]]
)
insomnia_iface = gr.Interface(
fn=Insomnia_predict,
inputs=[
gr.Number(label="Age"),
gr.Number(label="Hours per day"),
gr.Number(label="Depression"),
gr.Number(label="Anxiety"),
gr.Number(label="OCD"),
gr.Number(label="BPM")
],
outputs=[
gr.Number(label="Predicted Value"),
gr.Textbox(label="Prediction Description")
],
title="Music & Mental Health Predictor - Insomnia",
description="Enter 5 numeric values to get a prediction.",
theme=gr.themes.Soft(),
examples=[[18, 3, 0, 1, 0, 156]]
)
ocd_iface = gr.Interface(
fn=OCD_predict,
inputs=[
gr.Number(label="Age"),
gr.Number(label="Hours per day"),
gr.Number(label="Insomnia"),
gr.Number(label="Anxiety"),
gr.Number(label="Depression"),
gr.Number(label="BPM")
],
outputs=[
gr.Number(label="Predicted Value"),
gr.Textbox(label="Prediction Description")
],
title="Music & Mental Health Predictor - OCD",
description="Enter 5 numeric values to get a prediction.",
theme=gr.themes.Soft(),
examples=[[18, 3, 0, 1, 0, 156]]
)
# Create a tabbed interface
with gr.Blocks(theme=gr.themes.Soft()) as demo:
with gr.Tab("Anxiety"):
anxiety_iface.render()
with gr.Tab("Depression"):
depression_iface.render()
with gr.Tab("Insomnia"):
insomnia_iface.render()
with gr.Tab("OCD"):
ocd_iface.render()
# Launch the interface
demo.launch(debug=True)