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