Source code for pyphyschemtools.ML

############################################################
#          Machine Learning
############################################################
from .visualID_Eng import fg, bg, hl
from .core import centerTitle, centertxt

[docs] def y2c(mc2i,y): import tensorflow as tf from tensorflow import keras #from keras.utils import np_utils from keras.utils import to_categorical y_array = y.copy() y_array = y_array.to_numpy() # transformation au format numpy # transformation des valeurs de y1 & y2 en entiers for x in range(len(y_array)): #print(x, y_array[x], mapc2i[y_array[x]]) y_array[x] = mc2i[y_array[x]] yohe = to_categorical(y_array) del y_array return yohe
[docs] def categorizeY_2ohe(Ctot, y1, y2): """ one-hot-encodes a pandas column of categorical data input: - Ctot is the reference pandas column, necessary to find all unique categories in this column - y1 and y2 are the actual pandas column that will be categorized. y1 and y2 are supposed to be the ytest and ytrain subsets of Ctot output: - y1ohe and y2ohe are the numpy arrays returned by this routine """ uv = Ctot.unique() print(f"Catégories uniques : {uv}") mapc2i = {} for x in range(len(uv)): mapc2i[uv[x]] = x print(f"Correspondance entre chaque catégorie unique et un entier : {mapc2i}") y1ohe = y2c(mapc2i,y1) y2ohe = y2c(mapc2i,y2) print(f"Structure (shape) des tableaux renvoyés par categorize1C_2ohe. y1 : {y1ohe.shape}, y2 : {y2ohe.shape}") del mapc2i, uv return y1ohe, y2ohe