File size: 2,313 Bytes
517df19
 
 
 
 
 
 
 
 
 
 
4b6338c
517df19
 
 
 
 
 
 
 
 
 
d7cf9bc
 
 
 
 
ef71b00
517df19
d7cf9bc
517df19
 
 
d7cf9bc
517df19
d7cf9bc
517df19
d7cf9bc
517df19
 
d7cf9bc
 
 
 
517df19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Fonction de prédiction
import gradio as gr
import joblib
import pandas as pd
import numpy as np
from keras.models import load_model
# importer les encodeurs

#importer le cat_data

cat_data_columns = joblib.load('cat_data_columns.joblib')
encoder = joblib.load('encoder.joblib')
# importer le modèle
model = load_model('DNN_model.h5')
# importer le scaler
scaler = joblib.load('scaler.joblib')



#fonction de predictions simple

def pred(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 = model.predict(x_new)
    y_pred = np.round(y_pred[0], 2)[0]

    return f"la performance de cet etudiant est: {str(y_pred)}"


def pred_csv(file):
   df = pd.read_csv(file)

   prediction = []

   for row in df.iloc[:, :].values:
        prediction.append(pred(row[0], row[1], encoder.transform([row[2][0]]), row[3]))

   df['Performance Index']  = prediction
   df.to_csv('perfo_etud.csv', index= False)
   return 'perfo_etud.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,
                          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_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()