abdoulayee's picture
Update app.py
cba49df verified
# Fonction de prédiction
import gradio as gr
import joblib
import pandas as pd
import numpy as np
# importer les encodeurs
encoder = joblib.load('encoder_Extracurricular.joblib')
#for i in range(len(cat_data.columns)):
# encoders.append(joblib.load(f'{cat_data.columns[i]}_encoder.joblib'))
# importer le modèle
from keras.models import load_model
model = load_model('DNN_model.h5')
# importer le scaler
scaler = joblib.load('scaler.joblib')
# Fonction de prédiction simple
def prediction_func(Hours_Studied,Previous_Scores,Extracurricular_Activities,Sleep_Hours,Sample_Question_Papers_Practiced):
#encoder
Extracurricular_Activities = encoder.transform([Extracurricular_Activities])[0]
x_new = np.array([Hours_Studied,Previous_Scores,Extracurricular_Activities,Sleep_Hours,Sample_Question_Papers_Practiced]).reshape(1, -1)
# normaliser les valeurs
x_new = scaler.transform(x_new)
# prédire la valeur
y_pred = np.round(model.predict(x_new))[0][0]
# retourner
return y_pred
# load les valeurs uniques
#uniques = []
#for i in range(len(cat_data.columns)):
# uniques.append(joblib.load(f'{cat_data.columns[i]}_unique.joblib'))
# créer les inputs Hours_Studied,Previous_Scores,Extracurricular_Activities,Sleep_Hours,Sample_Question_Papers_Practiced,Performance_Index
inputs = [
gr.Number(label="hours Studies"),
gr.Number(label="Previous score"),
gr.Dropdown(choices=['No', 'Yes'], label="Extracurricular_Activities"),
gr.Number( label="Sleep_Hours"),
gr.Number(label="Sample_Question_Papers_Practiced")
]
# créer les outputs
outputs = gr.Textbox(label = 'Performance')
# Interface
Interface =gr.Interface(fn = prediction_func,
inputs = inputs,
outputs = outputs,
title = 'Student Performance'
,theme='NoCrypt/miku')
Interface.launch()