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)