File size: 2,982 Bytes
7a82bc6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from joblib import load
from sklearn.preprocessing import PowerTransformer
import os

#ENCODED CLASS IN ORDER
JOB_CLASSE = ['admin.','blue-collar','entrepreneur','housemaid','management','retired','self-employed','services','student','technician','unemployed','unknown']
EDUCATION_CLASSE = ['primary','secondary','tertiary','unknown']
MARITAL_CLASSE = ['divorced','married','single']
CONTACT_CLASSE = ['cellular','telephone','unknown']
MONTH_CLASSE = ['apr','aug','dec','feb','jan','jul','jun','mar','may','nov','oct','sep']
POUTCOME_CLASSE = ['failure','other','success','unknown']
BINARY_CLASSE = ['no','yes']

def transform_data(data):
    # Initialisez PowerTransformer avec la méthode 'yeo-johnson'
    transformer = PowerTransformer(method='yeo-johnson')
    # Ajustez le transformer aux données et transformez les données en les normalisant
    pdays_normalized = transformer.fit_transform(data[['pdays']])
    day_normalized = transformer.fit_transform(data[['day']])
    age_normalized = transformer.fit_transform(data[['age']])
    balance_normalized = transformer.fit_transform(data[['balance']])
    duration_normalized = transformer.fit_transform(data[['duration']])
    campaign_normalized = transformer.fit_transform(data[['campaign']])
    previous_normalized = transformer.fit_transform(data[['previous']])
    # Remplacez les valeurs dans le DataFrame original par les valeurs normalisées
    data['pdays'] = pdays_normalized
    data['age'] = age_normalized
    data['balance'] = balance_normalized
    data['duration'] = duration_normalized
    data['campaign'] = campaign_normalized
    data['day'] = day_normalized
    data['previous'] = previous_normalized
    
    #categorical variable
    data['job'] = [JOB_CLASSE.index(data['job'][0])]
    data['marital'] = [MARITAL_CLASSE.index(data['marital'][0])]
    data['education'] = [EDUCATION_CLASSE.index(data['education'][0])]
    data['default'] = [BINARY_CLASSE.index(data['default'][0])]
    data['housing'] = [BINARY_CLASSE.index(data['housing'][0])]
    data['loan'] = [BINARY_CLASSE.index(data['loan'][0])]
    data['contact'] = [CONTACT_CLASSE.index(data['contact'][0])]
    data['month'] = [MONTH_CLASSE.index(data['month'][0])]
    data['poutcome'] = [POUTCOME_CLASSE.index(data['poutcome'][0])]

    return data

def xg_boost_model(data):
    path = os.path.abspath('models/h5/xgb_model.h5')
    model = load(path)
    return model.predict(data)

def svc_model(data):
    path = os.path.abspath('models/h5/svc_model.h5')
    model = load(path)
    return model.predict(data)

def knn_model(data):
    path = os.path.abspath('models/h5/knn_model.h5')
    model = load(path)
    return model.predict(data)

def ramdom_forest_model(data):
    path = os.path.abspath('models/h5/random_forest_model.h5')
    model = load(path)
    return model.predict(data)

def svc_linear_model(data):
    path = os.path.abspath('models/h5/svc_linear_model.h5')
    model = load(path)
    return model.predict(data)