O componente Percentile calcula 101 valores de quantil (do percentil 0 ao 100) para uma ou mais colunas em uma tabela do MaxCompute. Use este recurso para compreender a distribuição dos dados antes do treinamento, detectar outliers nas colunas de features ou preparar os dados para etapas subsequentes de normalização.
Limitações
Tipos de coluna compatíveis: apenas BIGINT, DOUBLE e DATETIME.
O cálculo ignora valores nulos em uma coluna.
Se todas as colunas contiverem apenas valores nulos, o sistema retornará um erro.
Configure o componente
Método 1: Configuração na tela do pipeline
Abra o componente Percentile no Machine Learning Designer (anteriormente Machine Learning Studio) e defina os parâmetros a seguir.
Aba Parameters Setting
|
Parâmetro |
Descrição |
|
Input Columns |
Clique em Select Column para escolha as colunas para cálculo de percentis. |
Aba Tuning
|
Parâmetro |
Descrição |
|
Number of Cores |
Quantidade de núcleos alocados para o job. |
|
Memory Size per Core |
Memória alocada para cada núcleo. |
Método 2: Uso de comandos PAI
Execute o comando abaixo com o componente SQL Script.
PAI -name Percentile
-project algo_public
-DinputTableName=maple_test_percentile_3col_input
-DcolName=col0,col1,col2 -DoutputTableName=maple_test_percentile_3col_output;
Parâmetros obrigatórios
|
Parâmetro |
Descrição |
|
|
Nome da tabela de entrada. |
|
|
Nome da tabela de saída. |
Parâmetros opcionais
|
Parâmetro |
Descrição |
|
|
Nomes das colunas para cálculo. Padrão: todas as colunas. Separe vários nomes de coluna por vírgulas (,). |
|
|
Partições na tabela de entrada. Padrão: todas as partições. Formato: |
|
|
Nome da tabela de predição. Quando definido, o componente gera um resultado de predição. |
|
|
Partições na tabela de predição. |
|
|
Nomes das colunas a usar da tabela de predição. Padrão: todas as colunas. Os nomes devem corresponder aos da tabela de treinamento. |
|
|
Nomes das colunas cujos dados devem ser mantidos na saída. Padrão: todas as colunas. Separe vários nomes por vírgulas (,). |
|
|
Nome da tabela de saída de predição. Usado em conjunto com |
|
|
Ciclo de vida da tabela de saída. Padrão: sem ciclo de vida. Deve ser um número inteiro positivo. |
|
|
Número de núcleos. Valores válidos: 1–9999. Deve ser um número inteiro positivo. Usado em conjunto com |
|
|
Memória por núcleo, em MB. Valores válidos: 1024–65536. Deve ser um número inteiro positivo. |
Exemplo
Tabela de entrada: maple_test_percentile_3col_input
|
col0:double (1000 rows) |
col1:bigint (100 rows) |
col2:bigint (300 rows) |
|
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 |
Comando PAI
PAI -name Percentile
-project algo_public
-DinputTableName=maple_test_percentile_3col_input
-DcolName=col0,col1,col2 -DoutputTableName=maple_test_percentile_3col_output;
Tabela de saída: maple_test_percentile_3col_output
A tabela de saída contém uma linha para cada classificação de percentil (0–100). A coluna quantile armazena a classificação, e cada coluna de entrada apresenta o valor correspondente ao percentil. Para localizar o 95º percentil de col0, encontre a linha onde 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 |