import pandas as pd import numpy as np import joblib import gradio as gr #importer l'encoder encoder = joblib.load('encoder.joblib') #importer le scaler scaler = joblib.load('scaler.joblib') #importer le model ls = joblib.load('ls.joblib') def pred_func(HS, PS, EA, SH, SQPP): EA = encoder.transform([EA])[0] x_new = np.array([HS, PS, EA, SH, SQPP]) x_new = x_new.reshape(1, -1) x_new = scaler.transform(x_new) y_pred = ls.predict(x_new) y_pred = round(y_pred[0], 2) return f"la performance de cet etudiant est: {str(y_pred)}" def pred_func_csv(file): df = pd.read_csv(file) prediction = [] for row in df.iloc[:, :].values: new_row = np.array([row[0], row[1], encoder.transform([row[2]])[0], row[3], row[4]]) new_row = new_row.reshape(1, -1) new_row = scaler.transform(new_row) y_pred = ls.predict(new_row) y_pred = round(y_pred[0], 2) prediction.append(y_pred) df['Performance Index'] = prediction df.to_csv('predictions.csv', index= False) return 'predictions.csv' demo = gr.Blocks(theme= gr.themes.Origin()) inputs = [ gr.Number(label= 'Hours Studied'), gr.Number(label= 'Previous Scores'), gr.Radio(choices= ['Yes', 'No'], label= 'Extracurricular Activities'), gr.Number(label= 'Sleep Hours'), gr.Number(label= 'Sample Question Papers Practiced') ] outputs = gr.Textbox(label='Performance Index') interface1 = gr.Interface(fn= pred_func, inputs= inputs, outputs= outputs, title = "Predire les performance de l'etudiant en saisant les données", description= """Cette modele permet de predire les performation d'un etudiant a partir de quelques un de ces informations""" ) interface2 = gr.Interface( fn = pred_func_csv, inputs = gr.File(label= 'Telecharger le document csv'), outputs= gr.File(label= 'Telecharger le documents csv'), title= "Predictions multiple en inserant un fichier csv", description= """Cette modele permet de predire les performation d'un etudiant a partir de quelques un de ces informations""" ) with demo: gr.TabbedInterface([interface1, interface2], ['Predictions simple', 'Predictions multiple']) demo.launch()