Le composant Percentile calcule 101 valeurs de quantiles (du 0e au 100e percentile) pour une ou plusieurs colonnes d'une table MaxCompute. Utilisez-le pour comprendre la distribution des données avant l'entraînement, détecter les valeurs aberrantes dans les colonnes de caractéristiques ou préparer les données pour les étapes de normalisation en aval.
Limites
Types de colonnes pris en charge : BIGINT, DOUBLE et DATETIME uniquement.
Les calculs ignorent les valeurs nulles d'une colonne.
Si toutes les colonnes ne contiennent que des valeurs nulles, le système renvoie une erreur.
Configurer le composant
Méthode 1 : Configuration sur le canevas du pipeline
Ouvrez le composant Percentile dans Machine Learning Designer (anciennement Machine Learning Studio) et définissez les paramètres suivants.
Onglet Parameters Setting
| Paramètre | Description |
|---|---|
| Input Columns | Cliquez sur Select Column pour choisir les colonnes pour lesquelles calculer les percentiles. |
Onglet Tuning
| Paramètre | Description |
|---|---|
| Number of Cores | Nombre de cœurs alloués à la tâche. |
| Memory Size per Core | Mémoire allouée à chaque cœur. |
Méthode 2 : Utilisation des commandes PAI
Exécutez la commande suivante à l'aide du composant SQL Script.
PAI -name Percentile
-project algo_public
-DinputTableName=maple_test_percentile_3col_input
-DcolName=col0,col1,col2 -DoutputTableName=maple_test_percentile_3col_output;
Paramètres obligatoires
| Paramètre | Description |
|---|---|
inputTableName |
Nom de la table d'entrée. |
outputTableName |
Nom de la table de sortie. |
Paramètres facultatifs
| Paramètre | Description |
|---|---|
colName |
Noms des colonnes à calculer. Par défaut : toutes les colonnes. Séparez plusieurs noms de colonnes par des virgules (,). |
inputPartitions |
Partitions de la table d'entrée. Par défaut : toutes les partitions. Format : partition_name=value pour une seule partition, name1=value1,name2=value2 pour plusieurs partitions, ou name1=value1/name2=value2 pour des partitions multiniveaux. |
predictInputTableName |
Nom de la table de prédiction. Si ce paramètre est défini, le composant génère un résultat de prédiction. |
predictInputTablePartitions |
Partitions de la table de prédiction. |
predictSelectedColNames |
Noms des colonnes à utiliser à partir de la table de prédiction. Par défaut : toutes les colonnes. Les noms de colonnes doivent correspondre à ceux de la table d'entraînement. |
predictSelectedOriginalColNames |
Noms des colonnes dont les données doivent être conservées dans la sortie. Par défaut : toutes les colonnes. Séparez plusieurs noms par des virgules (,). |
predictOutputTableName |
Nom de la table de sortie de prédiction. À utiliser avec predictInputTableName. |
lifecycle |
Durée de vie de la table de sortie. Par défaut : aucune durée de vie. Doit être un entier positif. |
coreNum |
Nombre de cœurs. Valeurs valides : 1–9999. Doit être un entier positif. À utiliser avec memSizePerCore. |
memSizePerCore |
Mémoire par cœur, en Mo. Valeurs valides : 1024–65536. Doit être un entier positif. |
Exemple
Table d'entrée : maple_test_percentile_3col_input
| col0:double (1000 lignes) | col1:bigint (100 lignes) | col2:bigint (300 lignes) |
|---|---|---|
| 962 | 88 | Tue Oct 15 00:26:40 CST 1974 |
| 218 | 99 | Thu Jan 04 20:53:20 CST 1973 |
| 565 | 44 | Sat Mar 09 02:40:00 CST 1974 |
| 314 | 68 | Mon Aug 11 22:40:00 CST 1975 |
| 583 | 13 | Sat Aug 23 12:26:40 CST 1975 |
| 615 | 87 | Tue May 25 14:13:20 CST 1971 |
| 70 | 53 | Fri Mar 23 09:20:00 CST 1979 |
| 929 | 63 | Mon Jul 03 16:26:40 CST 1972 |
| 249 | 48 | Thu Mar 15 07:33:20 CST 1973 |
| 428 | 62 | Wed Mar 17 03:33:20 CST 1971 |
| 119 | 1 | Thu Jun 26 15:33:20 CST 1975 |
| 756 | 27 | Mon Jan 30 17:20:00 CST 1978 |
| 490 | 75 | Wed Dec 11 21:20:00 CST 1974 |
| 957 | 12 | Sun Jul 05 12:26:40 CST 1970 |
| 80 | 22 | Wed Oct 04 06:40:00 CST 1972 |
| 681 | 57 | Wed Nov 03 15:06:40 CST 1971 |
| 13 | 95 | Sat Sep 12 23:06:40 CST 1970 |
Commande PAI
PAI -name Percentile
-project algo_public
-DinputTableName=maple_test_percentile_3col_input
-DcolName=col0,col1,col2 -DoutputTableName=maple_test_percentile_3col_output;
Table de sortie : maple_test_percentile_3col_output
La table de sortie contient une ligne par rang de percentile (0–100). La colonne quantile indique le rang ; chaque colonne d'entrée contient la valeur de percentile correspondante. Pour trouver le 95e percentile de col0, repérez la ligne où quantile = 95.
| quantile:bigint | col0:double | col1:bigint | col2:datetime |
|---|---|---|---|
| 0 | 0,0 | 0 | Thu Jan 01 08:00:00 CST 1970 |
| 1 | 9,0 | 0 | Sat Jan 24 11:33:20 CST 1970 |
| 2 | 19,0 | 1 | Sat Feb 28 04:53:20 CST 1970 |
| 3 | 29,0 | 2 | Fri Apr 03 22:13:20 CST 1970 |
| 4 | 39,0 | 3 | Fri May 08 15:33:20 CST 1970 |
| 5 | 49,0 | 4 | Fri Jun 12 08:53:20 CST 1970 |
| 6 | 59,0 | 5 | Fri Jul 17 02:13:20 CST 1970 |
| 7 | 69,0 | 6 | Thu Aug 20 19:33:20 CST 1970 |
| 8 | 79,0 | 7 | Thu Sep 24 12:53:20 CST 1970 |
| 9 | 89,0 | 8 | Thu Oct 29 06:13:20 CST 1970 |
| 10 | 99,0 | 9 | Wed Dec 02 23:33:20 CST 1970 |
| 11 | 109,0 | 10 | Wed Jan 06 16:53:20 CST 1971 |
| 12 | 119,0 | 11 | Wed Feb 10 10:13:20 CST 1971 |
| 13 | 129,0 | 12 | Wed Mar 17 03:33:20 CST 1971 |
| 14 | 139,0 | 13 | Tue Apr 20 20:53:20 CST 1971 |
| 15 | 149,0 | 14 | Tue May 25 14:13:20 CST 1971 |
| 16 | 159,0 | 15 | Tue Jun 29 07:33:20 CST 1971 |
| ... | ... | ... | ... |
| 84 | 839,0 | 83 | Thu Dec 15 10:13:20 CST 1977 |
| 85 | 849,0 | 84 | Thu Jan 19 03:33:20 CST 1978 |
| 86 | 859,0 | 85 | Wed Feb 22 20:53:20 CST 1978 |
| 87 | 869,0 | 86 | Wed Mar 29 14:13:20 CST 1978 |
| 88 | 879,0 | 87 | Wed May 03 07:33:20 CST 1978 |
| 89 | 889,0 | 88 | Wed Jun 07 00:53:20 CST 1978 |
| 90 | 899,0 | 89 | Tue Jul 11 18:13:20 CST 1978 |
| 91 | 909,0 | 90 | Tue Aug 15 11:33:20 CST 1978 |
| 92 | 919,0 | 91 | Tue Sep 19 04:53:20 CST 1978 |
| 93 | 929,0 | 92 | Mon Oct 23 22:13:20 CST 1978 |
| 94 | 939,0 | 93 | Mon Nov 27 15:33:20 CST 1978 |
| 95 | 949,0 | 94 | Mon Jan 01 08:53:20 CST 1979 |
| 96 | 959,0 | 95 | Mon Feb 05 02:13:20 CST 1979 |
| 97 | 969,0 | 96 | Sun Mar 11 19:33:20 CST 1979 |
| 98 | 979,0 | 97 | Sun Apr 15 12:53:20 CST 1979 |
| 99 | 989,0 | 98 | Sun May 20 06:13:20 CST 1979 |
| 100 | 999,0 | 99 | Sat Jun 23 23:33:20 CST 1979 |