O componente Lorenz Curve plota a distribuição acumulada de um conjunto de dados para revelar desigualdades. Originalmente usada na economia para visualizar a distribuição de renda e riqueza, essa técnica também se aplica ao machine learning para avaliar a imparcialidade de previsões e detectar viés na alocação de recursos. A curva representa graficamente a parcela acumulada de um valor medido (eixo y) em relação à parcela acumulada da população (eixo x), ordenada do menor para o maior valor.
Configure o componente
Método 1: configure no Machine Learning Designer
Na página de detalhes do pipeline no Machine Learning Designer, adicione o componente Lorenz Curve e configure os parâmetros a seguir.
Fields Setting tab
|
Parâmetro |
Descrição |
|
Selecione Fields |
Coluna de recurso para análise. Selecione uma coluna numérica com valores como renda, riqueza ou pontuação de previsão. |
Parameters Setting tab
|
Parâmetro |
Descrição |
|
Quantile |
Número de intervalos de probabilidade igual usados para plotar a curva. Valores maiores geram uma curva com maior granularidade. |
Tuning tab
|
Parâmetro |
Descrição |
|
Computing Cores |
Número de núcleos usados para computação. Deve ser um número inteiro positivo. |
|
Memory Size per Core (Unit: MB) |
Memória alocada para cada núcleo, em MB. |
Método 2: usar comandos PAI
Transmita parâmetros diretamente por meio de comandos do Platform for AI (PAI). Use o componente SQL Script para execute o comando. Para mais detalhes, consulte Cenário 4: Executar comandos PAI dentro do componente SQL script.
PAI -name LorenzCurve
-project algo_public
-DinputTableName=maple_test_lorenz_basic10_input
-DcolName=col0
-DoutputTableName=maple_test_lorenz_basic10_output
-DcoreNum=20
-DmemSizePerCore=110;
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Nome da tabela de entrada. |
|
|
Sim |
— |
Nome da tabela de saída. |
|
|
Não |
— |
Colunas para análise. Separe vários nomes de coluna com vírgulas ( |
|
|
Não |
100 |
Número de intervalos de quantil. Um valor maior resulta em uma curva mais detalhada. |
|
|
Não |
— |
Partições para leitura na tabela de entrada. Formatos suportados: |
|
|
Não |
28 |
Período de retenção da tabela de saída, em dias. Deve ser um número inteiro. |
|
|
Não |
Determinado pelo sistema |
Número de núcleos de computação. Usado em conjunto com |
|
|
Não |
Determinado pelo sistema |
Tamanho da memória por núcleo, em MB. Deve ser um inteiro positivo. Valores recomendados: (1024, 64 × 1024). |
Exemplo
Este exemplo usa um conjunto de dados com 11 linhas e valores de 0 a 10 para demonstrar como o componente gera uma tabela de distribuição de quantis.
Etapa 1: Preparar os dados de entrada
|
col0:double |
|
4 |
|
7 |
|
2 |
|
8 |
|
6 |
|
3 |
|
9 |
|
5 |
|
0 |
|
1 |
|
10 |
Etapa 2: Execute o comando PAI
PAI -name LorenzCurve
-project algo_public
-DinputTableName=maple_test_lorenz_basic10_input
-DcolName=col0
-DoutputTableName=maple_test_lorenz_basic10_output
-DcoreNum=20
-DmemSizePerCore=110;
Etapa 3: Analisar a saída
A tabela de saída contém duas colunas: quantile (o percentil da população, de 0 a 100) e col0 (a parcela acumulada do valor total desse grupo de percentil). Veja abaixo uma amostra da saída:
|
quantile |
col0 |
|
0 |
0 |
|
1 |
0.01818181818181818 |
|
10 |
0.01818181818181818 |
|
11 |
0.05454545454545454 |
|
... |
... |
|
85 |
0.8181818181818182 |
|
90 |
1 |
|
100 |
1 |
Interpretação da saída: O valor de col0 em um determinado quantil indica a parcela acumulada do total concentrada nos X% inferiores da população. Por exemplo, no quantil 85, os 85% menores representam aproximadamente 81,8% do total. No quantil 90, a parcela acumulada atinge 1 (100%), o que significa que todos os valores estão concentrados nos 90% inferiores.