| | |
| | import gradio as gr |
| | import joblib |
| | import pandas as pd |
| | import numpy as np |
| | from keras.models import load_model |
| | |
| | cat_data_columns = joblib.load('cat_data_columns.joblib') |
| | |
| | encoder0 = joblib.load('Extracurricular Activities.joblib') |
| | |
| | model = load_model('DNN_model.h5') |
| | |
| | scaler = joblib.load('scaler.joblib') |
| | |
| | def prediction_func(Hours_Studied,Previous_Scores, Extracurricular_Activities, Sleep_Hours, Sample_Question_Papers_Practiced): |
| | |
| | Extracurricular_Activities = encoder0.transform([Extracurricular_Activities])[0] |
| | |
| | x_new = np.array([Hours_Studied,Previous_Scores, Extracurricular_Activities, Sleep_Hours, Sample_Question_Papers_Practiced]).reshape(1, -1) |
| | |
| | x_new = scaler.transform(x_new) |
| | |
| | y_pred = np.round(model.predict(x_new)) |
| | |
| | return y_pred[0][0] |
| |
|
| | |
| | def prediction_func_csv(file): |
| | |
| | df = pd.read_csv(file) |
| | predictions = [] |
| | |
| | for row in df.iloc[:, :].values: |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | y_pred = prediction_func(row[0], row[1], row[2], row[3], row[4]) |
| | |
| | predictions.append(y_pred) |
| |
|
| | df['Performance'] = predictions |
| | df.to_csv('predictions.csv', index = False) |
| | return 'predictions.csv' |
| |
|
| | |
| | uniques = [] |
| | for i in range(len(cat_data_columns)): |
| | uniques.append(joblib.load(f'{cat_data_columns[i]}_unique.joblib')) |
| | |
| | demo = gr.Blocks(theme='shivi/calm_seafoam') |
| |
|
| | |
| | inputs = [gr.Number(label='Hours Studied'), |
| | gr.Number(label='Previous Score'), |
| | 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') |
| | |
| | interface1 = gr.Interface(fn = prediction_func_csv, |
| | inputs = inputs, |
| | outputs = outputs, |
| | title="Prédire la performance des élèves avec une seule entrée", |
| | description = """Ce modèle d'apprentissage automatique nous permet de prédire la performance des élèves à partir des |
| | Heures étudiées, des Scores précédents, des Activités parascolaires, des Heures de sommeil, des Exemples de sujets d'examen pratiqués . |
| | """) |
| | |
| | interface2 = gr.Interface(fn = prediction_func_csv, |
| | inputs = gr.File(label='Upload a csv file'), |
| | outputs = gr.File(label='Download a csv file'), |
| | title="Prédire la performance des élèves avec plusieurs entrées", |
| | description = """"Ce modèle d'apprentissage automatique nous permet de prédire la performance des élèves à partir des |
| | Heures étudiées, des Scores précédents, des Activités parascolaires, des Heures de sommeil, des Exemples de sujets d'examen pratiqués. |
| | """) |
| |
|
| | |
| | with demo: |
| | gr.TabbedInterface([interface1, interface2], ['Simple Prediction', 'Prédiction multiple']) |
| |
|
| | |
| | demo.launch() |
| |
|