Noms par défaut ici (1); dt = Ouvert("$SAMPLE_DATA/Big Class.jmp"); // ajoute une valeur aberrante pour M dt << Add Rows({name = "OUTLIER", age = 1, sex = "M", taille = 500, poids = 500}); // ajoute des limites dt << Nouvelle colonne ("LSL", Numérique, Continue, << Définir chaque valeur (50)); dt << Nouvelle colonne ("USL", Numérique, Continu, << Définir chaque valeur (60)); dt << Nouvelle colonne("ColMean_height", Numérique, Continue, Formule (Col Mean(:height, :sex, Exclusive()) )); dt << Nouvelle colonne("ColMedian_height", Numérique, Continue, Formule (Col Median(:height, :sex, Exclusive()) )); dt << Nouvelle colonne("ColStdDev_height", Numeric, Continu, Formula( Col Std Dev(:height, :sex, Exclusive()) )); dt << Nouvelle colonne("ColIQR_height", Numérique, Continue, Formule( Col Quantile(:hauteur, 0,75, :sexe, Exclu()) - Col Quantile(:hauteur, 0,25, :sexe, Exclus()) )); dt << Nouvelle colonne("ColStandardize_height", Numeric, Continu, Formula( Col Standardize(:height, :sex, Exclusive()) )); // Exemple
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.RobustScaler.html // utilisant IQR ici, mais cela pourrait être une bonne idée de pouvoir changer les quantiles (par défaut sur IQR) dt << Nouvelle colonne ("ColStandardizeRobust_height", Numeric, Continu, Formula( (:height - Col Median(:height, :sex, Exclusive())) / :ColIQR_height )); //
https://en.wikipedia.org/wiki/Feature_scaling#Rescaling_(min-max_normalization) dt << Nouvelle colonne("ColNormalize_01", Numérique, Continue, Formule ( 0 + (:hauteur - Col Min(:hauteur, :sexe, Exclus())) / (Col Max(:hauteur, :sexe, Exclus()) - Col Min(:hauteur, :sexe, Exclus())) )); dt << Nouvelle colonne("ColNormalize_11", Numérique, Continue, Formule( -1+(:hauteur - Col Mean(:hauteur, :sexe, Exclus()))*(1-(-1)) / (Col Max (:hauteur, :sexe, exclus()) - Col Min(:hauteur, :sexe, exclus())) )); dt << Nouvelle colonne("ColNormalize_limits", Numérique, Continue, Formule( ColMin(:LSL, :sex)+(:height - Col Mean(:height, :sex, Exclusive()))*(ColMax(:USL, :sexe)-(ColMin(:LSL, :sex))) / (Col Max(:hauteur, :sexe, Exclusion()) - Col Min(:hauteur, :sexe, Exclusion())) )); // peut-être même Robust Sigma, le diviseur serait par défaut à 1,35 //
http://www.aecouncil.com/Documents/AEC_Q001_Rev_D.pdf // et limites robustes, le multiplicateur sigma par défaut à 6