Agrupar dados em compartimentos
Importante
O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.
A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).
- Confira informações sobre como mover projetos de machine learning do ML Studio (clássico) para o Azure Machine Learning.
- Saiba mais sobre o Azure Machine Learning.
A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.
Coloca os dados numéricos em compartimentos
Categoria: Dimensionar e reduzir
Observação
Aplica-se a: somente Machine Learning Studio (clássico)
Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.
Visão geral do módulo
Este artigo descreve como usar os Dados de Grupo no módulo Bins no Machine Learning Studio (clássico), para agrupar números ou alterar a distribuição de dados contínuos.
O módulo Agrupar dados em compartimentos dá suporte a várias opções para dados compartimentalização. Você pode personalizar como as bordas de compartimento são definidas e como os valores são particionados nos compartimentos. Por exemplo, você pode:
- Digite manualmente uma série de valores para servir como limites de compartimento.
- Calcule as pontuações de entropia para determinar valores de informações para cada intervalo, para otimizar as lixeiras no modelo preditivo. + Atribuir valores a compartimentos usando quantiles ou classificações de percentil.
- Controlar o número de valores em cada compartimento também pode ser controlado.
- Force uma distribuição uniforme de valores nos compartimentos.
Mais sobre compartimentalização e agrupamento
O binning ou agrupamento de dados (às vezes chamado de quantização) é uma ferramenta importante na preparação de dados numéricos para machine learning e é útil em cenários como estes:
Uma coluna de números contínuos tem muitos valores exclusivos para modelar com eficiência, de modo que você atribui automática ou manualmente os valores a grupos, para criar um conjunto menor de intervalos discretos.
Por exemplo, você pode usar pontuações de entropia geradas pelos Dados de Grupo em Compartimentos para identificar os agrupamentos ideais de valores de dados e usar esses grupos como recursos em seu modelo.
Substitua uma coluna de números por valores categóricos que representem intervalos específicos.
Por exemplo, você pode querer agrupar valores em uma coluna de idade especificando intervalos personalizados como 1 a 15, 16 a 22, 23 a 30 e assim por diante para os dados demográficos do usuário.
Um conjunto de dados tem alguns valores extremos, tudo bem fora do intervalo esperado, e esses valores têm uma influência muito grande no modelo treinado. Para atenuar o viés no modelo, você pode transformar os dados em uma distribuição uniforme, usando o método quantiles (ou de altura igual).
Com esse método, o módulo Agrupar dados em compartimentos determina os locais de compartimentos e as larguras de compartimento ideais para garantir que aproximadamente o mesmo número de amostras se enquadrem em cada compartimento. Em seguida, dependendo do método de normalização escolhido, os valores nos compartimentos são transformados em percentis ou mapeados para um número de compartimento.
Exemplos de compartimentalização
O diagrama a seguir mostra a distribuição de valores numéricos antes e depois da compartimentalização com o método quantis. Observe que, em comparação com os dados brutos à esquerda, os dados foram compartimentalizados e transformados em uma escala normal de unidade.
Outra abordagem para o binning é demonstrada na amostra de detecção de câncer de mama , na qual os Dados de Grupo em Lixeiras são usados para atribuir pacientes a vários grupos de controle e teste, para garantir que cada grupo tenha um número igual de pacientes.
Como há muitas maneiras de agrupar dados, tudo personalizável, recomendamos que você teste com diferentes métodos e valores. A seção Exemplos contém links para experimentos de exemplo que demonstram como usar os diferentes algoritmos de binning.
Como configurar Agrupar dados em compartimentos
Adicione o módulo Dados de Grupo em Lixeiras ao experimento no Studio (clássico). Você pode encontrar este módulo na categoria Transformação de Dados, em Escala e Redução.
Conecte o conjunto de dados que tem os valores numéricos ao compartimento. A quantificação pode ser aplicada somente a colunas que contêm dados numéricos.
Se o conjunto de dados contiver colunas não numéricas, use o módulo Selecionar Colunas no Conjunto de Dados para selecionar um subconjunto de colunas com o qual trabalhar.
Especifique o modo de compartimentalização. O modo de binning determina outros parâmetros, portanto, certifique-se de selecionar a opção de modo Binning primeiro! Há suporte para os seguintes tipos de compartimentalização:
Entropy MDL: esse método exige que você selecione a coluna que deseja prever e as colunas ou colunas que você deseja agrupar em compartimentos. Em seguida, ele faz uma passagem sobre os dados e tenta determinar o número de compartimentos que minimiza a entropia. Em outras palavras, ele escolhe um número de compartimentos que permite que a coluna de dados preveja melhor a coluna de destino. Em seguida, ele retorna o número do compartimento associado a cada linha de seus dados em uma coluna chamada
<colname>quantized
.Se o método MDL de Entropia não conseguir encontrar uma maneira de armazenar inicialmente os dados para fazer uma boa previsão, ele atribuirá todos os dados a uma lixeira uniforme. Isso não significa que a coluna não seja um bom preditor. Nesse caso, você pode usar outros métodos para localizar o número de compartimentos que minimizariam a entropia e tornar os dados um melhor preditor.
Esse método não retorna as pontuações de entropia reais.
Quantis: O método quantile atribui valores aos compartimentos com base nas classificações percentuais. Quantis também é conhecido como compartimentalização de mesma altura.
Mesma largura: Com essa opção, você deve especificar o número total de compartimentos. Os valores da coluna de dados são colocados em compartimentos, de modo que cada um tenha o mesmo intervalo entre os valores inicial e final. Como resultado, alguns compartimentos podem ter mais valores se os dados estiverem concentrados em torno de um determinado ponto.
Bordas personalizadas: Você pode especificar os valores que iniciam cada compartimento. O valor de borda sempre é o limite inferior do compartimento. Por exemplo, suponha que você deseja agrupar valores em dois compartimentos, um com valores maiores que 0 e outro com valores menores que ou iguais a 0. Nesse caso, para bordas de compartimento, você digitaria 0 na lista separada por vírgulas de bordas de compartimento. A saída do módulo seria 1 e 2, indicando o índice de compartimento para cada valor de linha.
Largura Igual com Início e Parada Personalizados: esse método é como a opção Largura Igual , mas você pode especificar limites de compartimento inferior e superior.
Número de compartimentos: se você estiver usando os modos de binamento MDL, Quantiles e Largura Igual , use essa opção para especificar quantas lixeiras ou quantiles você deseja criar.
Para Colunas a agrupar, use o seletor de coluna para escolher as colunas que têm os valores que você deseja guardar. As colunas devem ser um tipo de dados numérico.
A mesma regra compartimentalização é aplicada a todas as colunas aplicáveis que você escolher. Portanto, se você precisar agrupar colunas usando um método diferente, use uma instância separada de Agrupar dados em compartimentos para cada conjunto de colunas.
Aviso
Se você escolher uma coluna que não seja um tipo permitido, um erro de tempo de execução será gerado. O módulo retorna um erro assim que encontra qualquer coluna de um tipo não permitido. Se você receber um erro, examine todas as colunas selecionadas. O erro não lista todas as colunas inválidas.
Para o Modo de saída, indique como você deseja gerar os valores quantificados.
Append: Cria uma nova coluna com os valores guardados e anexa para aquela tabela de entrada.
Inplace: Substitui os valores originais com os novos valores no conjunto de dados.
ResultOnly: Retorna apenas as colunas de resultados.
Se você selecionar o modo de compartimentalização Quantis, use a opção Normalização de quantis para determinar como os valores são normalizados antes da classificação para quantis. Observe que normalizar valores transforma os valores, mas não afeta o número final de compartimentos. Para obter um exemplo, consulte Efeitos de diferentes métodos de normalização.
Os seguintes tipos de normalização são compatíveis:
Percent: Os valores são normalizados dentro do intervalo [0,100]
PQuantile: Os valores são normalizados dentro do intervalo [0,1]
QuantileIndex: os valores são normalizados dentro do intervalo [1,número de compartimentos]
Se você escolher a opção Bordas personalizadas, digite uma lista separada por vírgulas de números a serem usados como limites de compartimentalização na caixa de texto + Lista de limites de compartimentalização separados por vírgula. Os valores marcam o ponto que divide os compartimentos; portanto, se você digitar um valor de limite de compartimentalização, serão gerados dois compartimentos; se você digitar dois valores de limite de compartimentalização, três compartimentos serão gerados e assim por diante.
Os valores devem ser classificados para que os compartimentos sejam criados, do menor para o maior.
Se você usar a opção, Largura Igual a Iniciar e Parar Personalizado, deverá especificar os limites das lixeiras.
Defina o limite inferior da primeira lixeira digitando um valor na caixa de texto primeira posição de borda .
Defina o limite inferior da última lixeira digitando um valor na caixa de texto última posição de borda .
Marcar colunas como categóricas: selecione essa opção para adicionar automaticamente um sinalizador de metadados à coluna de valores binados. O sinalizador de metadados indica que as colunas quantizadas devem ser tratadas como variáveis categóricas.
Execute o experimento ou selecione este módulo e clique em Executar selecionado.
Resultados
O módulo Agrupar dados em compartimentos retorna um conjunto de dados em que cada elemento foi guardado de acordo com o modo especificado.
Ele também retorna uma Compartimentação de transformação, que é uma função que pode ser passada para o módulo Aplicar Transformação para guardar novos exemplos de dados usando o mesmo modo e os parâmetros de compartimentalização.
Para ver o quão bem o método binning funciona como um preditor, você pode clicar na saída do conjunto de dados de Dados de Grupo com Lixeiras e comparar a coluna de rótulo com a coluna binada. Se o agrupamento em compartimentos for preditivo, os valores na matriz entre guias deverão se concentrar em algumas células.
Dica
Lembre-se de que, se você usar a compartimentalização em seus dados de treinamento, deverá usar o mesmo método de compartimentalização nos dados que você usa para teste e previsão. Isso inclui o método de compartimentalização, os locais de compartimentos e as larguras de compartimento.
Para garantir que os dados sempre sejam transformados usando o mesmo método de compartimentalização, recomendamos que você salve transformações de dados úteis e, em seguida, aplique-os a outros conjuntos de dados usando o módulo Aplicar Transformação.
Exemplos
Para obter exemplos de como a quantização é aplicada em cenários de machine learning, consulte a Galeria de IA do Azure:
- Detecção de câncer de mama: neste exemplo, o binning é usado para dividir os pacientes em grupos iguais usando o campo ID do paciente.
- Previsão de atraso de voo: usa a normalização quantile para classificar casos em 10 compartimentos.
- Análise de sentimento do Twitter: As pontuações são agrupadas em cinco compartimentos que representam as pontuações de classificação.
Observações técnicas
Esta seção contém detalhes de implementação, dicas e respostas para perguntas frequentes.
Efeitos de diferentes métodos de normalização
Se você selecionar a opção, normalização do Quantile, os valores serão transformados antes do binning. Assim, o método escolhido para normalização tem um forte efeito sobre os valores numéricos.
Por exemplo, a tabela a seguir ilustra como os valores em uma única coluna, do conjunto de dados do Telescópio, fLength
são transformados com cada um dos métodos de normalização. A coluna foi fLength
escolhida aleatoriamente para ilustração dos valores de saída de cada opção e não tem uma distribuição normal.
Origem (fLength) | pQuantile | QuantileIndex | Percent |
---|---|---|---|
28.7967 | 0.363636 | 4 | 36.363636 |
31.6036 | 0.454545 | 5 | 45.454545 |
162.052 | 0.909091 | 10 | 90.909091 |
23.8172 | 0.272727 | 3 | 27.272727 |
Os resultados do binning são semelhantes para cada método.
O gráfico a seguir mostra a distribuição de valores na coluna antes e depois do binning, usando o padrão de 10 compartimentos.
Detalhes de implementação
Durante a quantificação, cada número é mapeado para uma lixeira, comparando seu valor com os valores das bordas da lixeira.
Por exemplo, se o valor for 1,5 e as bordas da lixeira forem 1, 2 e 3, o elemento será mapeado para o bin número 2. O valor 0,5 seria mapeado para o bin número 1 (a lixeira de fluxo inferior) e o valor 3,5 seria mapeado para o bin número 4 (o compartimento de estouro).
Se a coluna para o compartimento (quantizar) for esparsa, então o deslocamento do índice de compartimento (deslocamento de quantis) será usado quando a coluna resultante for preenchida. O deslocamento é escolhido para que o esparso 0 sempre vá para o compartimento com um índice de 0 (em outras palavras, o quantile com o valor 0).
Zeros esparsos são propagados a partir da entrada para a coluna de saída.
Processamento de colunas densas sempre produz resultados com um índice de compartimento mínimo igual a 1. Ou seja, o valor mínimo de quantile equivale ao valor mínimo na coluna. Ao mesmo tempo, o processamento de uma coluna esparsa produz um resultado com índice de compartimento mínimo variável (valor mínimo quantile).
Todos os NaNs e valores ausentes são propagados a partir da coluna de entrada para a coluna de saída. A única exceção é o caso em que o módulo retorna índices de quantis. Nesse caso, todos os NaNs são promovidos para valores ausentes.
Os índices de compartimentos são baseados em 1. Essa é a convenção natural para quantis (1º quantil, 2º quantil e assim por diante). A única exceção é o caso em que a coluna para agrupar é esparsa.
Entradas esperadas
Nome | Tipo | Descrição |
---|---|---|
Dataset | Tabela de Dados | Conjunto de dados a ser analisado |
Parâmetros do módulo
Nome | Intervalo | Type | Padrão | Descrição |
---|---|---|---|---|
Modo de agrupamento | Lista | QuantizationMode | Quantis | Escolha um método de agrupamento |
Colunas a agrupar | any | ColumnSelection | NumericAll | Escolher colunas para quantização |
Modo de saída | any | OutputTo | Indicar como deve ser a saída de coluna quantizadas | |
Colunas de marcas como categóricas | any | Boolean | true | Indica se colunas de saída devem ser marcadas como categóricas |
Número de gavetas | >=1 | Integer | 10 | Especificar o número de gavetas |
Normalização de quantis | any | BinningNormalization | Escolha o método de normalização de quantis | |
Posição da primeira borda | any | Float | 0,0 | Especifique o valor para a primeira borda da gaveta |
Largura da gaveta | any | Float | 0,5 | Especificar uma largura de gaveta personalizada |
Posição da última borda | any | Float | 1.0 | Especifique o valor para a última borda da gaveta |
Lista separada por vírgulas de bordas da gaveta | any | String | Digite uma lista separada por vírgulas de números a serem usados como bordas da gaveta |
Saídas
Nome | Tipo | Descrição |
---|---|---|
Conjunto de dados quantizados | Tabela de Dados | Conjunto de dados com colunas quantizadas |
Transformação do agrupamento | Interface ITransform | Transformação que aplica quantização ao conjunto de dados |
Exceções
Exceção | Descrição |
---|---|
Erro 0003 | Ocorrerá uma exceção se uma ou mais das entradas for nula ou estiver vazia. |
Erro 0004 | Ocorrerá uma exceção se o parâmetro for inferior ou igual ao valor específico. |
Erro 0011 | Ocorrerá uma exceção se o argumento de conjunto de colunas passado não se aplicar a nenhuma das colunas do conjunto de dados. |
Erro 0021 | Ocorrerá uma exceção se o número de linhas em alguns dos conjuntos de dados passados para o módulo for muito pequeno. |
Erro 0024 | Ocorrerá uma exceção se o conjunto de dados não contiver uma coluna de rótulo. |
Erro 0020 | Ocorrerá uma exceção se o número de colunas em alguns dos conjuntos de dados transmitidos para o módulo for muito pequeno. |
Erro 0038 | Ocorrerá uma exceção se o número de elementos esperado tiver de ser um valor exato, mas não for. |
Erro 0005 | Ocorrerá uma exceção se o parâmetro for menor que um valor específico. |
Erro 0002 | Ocorrerá uma exceção se um ou mais parâmetros não puder ser analisado ou convertido do tipo especificado no exigido pelo tipo de método de destino. |
Erro 0019 | Ocorrerá uma exceção se for esperado que a coluna contenha valores classificados, mas ela não contiver. |
Erro 0039 | Ocorrerá uma exceção se a operação tiver falhado. |
Erro 0075 | Ocorrerá uma exceção quando uma função de agrupamento inválida for usada ao quantizar um conjunto de dados. |
Para obter uma lista de erros específicos dos módulos do Studio (clássico), consulte Machine Learning códigos de erro.
Para obter uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.