Partilhar via


Agrupar Dados em Posições

Importante

O suporte para o Estúdio de ML (clássico) terminará a 31 de agosto de 2024. Recomendamos a transição para o Azure Machine Learning até essa data.

A partir de 1 de dezembro de 2021, não poderá criar novos recursos do Estúdio de ML (clássico). Até 31 de agosto de 2024, pode continuar a utilizar os recursos existentes do Estúdio de ML (clássico).

A documentação do Estúdio de ML (clássico) está a ser descontinuada e poderá não ser atualizada no futuro.

Coloca dados numéricos em caixotes

Categoria: Escala e Redução

Nota

Aplica-se a: Machine Learning Studio (clássico) apenas

Módulos semelhantes de arrasto e queda estão disponíveis em Azure Machine Learning designer.

Visão geral do módulo

Este artigo descreve como utilizar o módulo De Dados do Grupo em Bins no Machine Learning Studio (clássico), para agrupar números ou alterar a distribuição de dados contínuos.

O módulo Dese de Grupo em Bins suporta múltiplas opções para a recolha de dados. Pode personalizar como as bordas do caixote são definidas e como os valores são distribuídos nas caixas. Por exemplo, pode:

  • Digite manualmente uma série de valores para servir como limites do caixote do lixo.
  • Calcular pontuações de entropia para determinar os valores de informação para cada gama, para otimizar os caixotes na modelo preditiva. + Atribua valores a caixotes utilizando quânticos ou classificações percentil.
  • O controlo do número de valores em cada caixa também pode ser controlado.
  • Forçar uma distribuição uniforme dos valores nos caixotes.

Mais sobre o binário e o agrupamento

A binning ou agrupar dados (por vezes chamados de quantificaçã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 demasiados valores únicos para modelo eficazmente, por isso atribua automaticamente ou manualmente os valores aos grupos, para criar um conjunto menor de gamas discretas.

    Por exemplo, pode utilizar as pontuações de entropia geradas pelos Dados do Grupo em Bins para identificar os agrupamentos ideais dos valores de dados e utilizar esses grupos como funcionalidades no seu modelo.

  • Substitua uma coluna de números por valores categóricos que representem gamas específicas.

    Por exemplo, pode querer agrupar valores numa coluna etária especificando gamas personalizadas, tais como 1-15, 16-22, 23-30, e assim por diante para a demografia do utilizador.

  • Um conjunto de dados tem alguns valores extremos, todos bem fora do intervalo esperado, e estes valores têm uma influência desmesurada no modelo treinado. Para mitigar o enviesamento no modelo, pode transformar os dados numa distribuição uniforme, utilizando o método quantiles (ou igual altura).

    Com este método, o módulo De Dados do Grupo em Bins determina as localizações ideais do caixote do lixo e as larguras do caixote do lixo para garantir que aproximadamente o mesmo número de amostras caia em cada caixa. Em seguida, dependendo do método de normalização que escolher, os valores nas caixas são transformados quer em percentiles, quer mapeados para um número de lixo.

Exemplos de vinculação

O diagrama seguinte mostra a distribuição de valores numéricos antes e depois de se ligar ao método quantiles . Note que, em comparação com os dados brutos à esquerda, os dados foram ligados e transformados numa escala unit-normal.

raw data and data binned and normalized

Outra abordagem ao binário é demonstrada na amostra de deteção do cancro da mama , na qual os dados do grupo em caixotes são usados para atribuir pacientes a vários grupos de controlo e teste, para garantir que cada grupo tem um número igual de pacientes.

Como há tantas formas de agrupar dados, todos personalizáveis, recomendamos que experimente com diferentes métodos e valores. A secção Exemplos contém links para experiências de amostra que demonstram como usar os diferentes algoritmos de ligação.

Como configurar dados de grupo em bins

  1. Adicione o módulo de dados do grupo em bins à sua experiência em Studio (clássico). Pode encontrar este módulo na categoria Transformação de Dados, em Escala e Redução.

  2. Ligação o conjunto de dados que tem dados numéricos para o lixo. A quantificação só pode ser aplicada a colunas que contenham dados numéricos.

    Se o conjunto de dados contiver colunas não numéricas, utilize as Colunas Selecionadas no módulo Dataset para selecionar um subconjunto de colunas para trabalhar.

  3. Especifique o modo de ligação. O modo de ligação determina outros parâmetros, por isso certifique-se de selecionar primeiro a opção modo De Ligação ! São suportados os seguintes tipos de vinculação:

    Entropia MDL: Este método requer que selecione a coluna que pretende prever e a coluna ou colunas que pretende agrupar em caixotes. Em seguida, faz uma passagem sobre os dados e tenta determinar o número de caixotes que minimizam a entropia. Por outras palavras, escolhe uma série de caixotes que permitem que a coluna de dados preveja melhor a coluna-alvo. Em seguida, devolve o número do caixote do lixo associado a cada linha dos seus dados numa coluna chamada <colname>quantized.

    Se o método Entropy MDL não conseguir encontrar uma maneira inicial de recolominar os dados para fazer uma boa previsão, atribui todos os dados a um caixote uniforme. Isto não significa que a coluna não seja um bom previsão. Neste caso, pode usar outros métodos para encontrar o número de caixotes que minimizam a entropia, e fazer dos dados um melhor preditor.

    Este método não devolve as pontuações reais de entropia.

    Quantiles: O método quântil atribui valores a caixotes com base em fileiras percentil. Quantiles também é conhecido como igual binário de altura.

    Largura igual: Com esta opção, deve especificar o número total de caixotes. Os valores da coluna de dados são colocados nas caixas de modo a que cada caixa tenha o mesmo intervalo entre valores de arranque e de final. Como resultado, alguns caixotes podem ter mais valores se os dados forem agrupados em torno de um determinado ponto.

    Bordas personalizadas: Pode especificar os valores que começam cada caixote. O valor da borda é sempre o limite inferior do caixote. Por exemplo, assuma que pretende agrupar valores em dois caixotes, um com valores superiores a 0, e outro com valores inferiores ou iguais a 0. Neste caso, para as bordas do caixote do lixo, você escreveria 0 na lista separada de vírgula de bordas de lixo. A saída do módulo seria 1 e 2, indicando o índice de contentores para cada valor de linha.

    Largura igual com Início e Paragem Personalizados: Este método é como a opção Largura Igual , mas pode especificar os limites inferiores e superiores do caixote do lixo.

  4. Número de caixotes: Se estiver a utilizar os modos de ligação Entropy MDL, Quantiles e Equal Width , utilize esta opção para especificar quantos caixotes, ou quantiles, que pretende criar.

  5. Para que as colunas se descodem, utilize o Seletor de Colunas para escolher as colunas que têm os valores que pretende utilizar. As colunas devem ser um tipo de dados numéricos.

    A mesma regra de vinculação é aplicada a todas as colunas aplicáveis que escolher. Portanto, se precisar de colocar algumas colunas utilizando um método diferente, utilize uma instância separada de Dados de Grupo em Caixas para cada conjunto de colunas.

    Aviso

    Se escolher uma coluna que não seja um tipo permitido, é gerado um erro de tempo de execução. O módulo retorna um erro assim que encontra qualquer coluna de um tipo não permitido. Se tiver um erro, reveja todas as colunas selecionadas. O erro não enumera todas as colunas inválidas.

  6. Para o modo saída, indique como pretende des output os valores quantificados.

    • Apêndice: Cria uma nova coluna com os valores e anexados à tabela de entrada.

    • Inplace: Substitui os valores originais pelos novos valores no conjunto de dados.

    • ResultadoS Apenas: Devolve apenas as colunas de resultados.

  7. Se selecionar o modo de ligação quantiles , utilize a opção de normalização quântil para determinar como os valores são normalizados antes de classificar em quantiles. Note que a normalização dos valores transforma os valores, mas não afeta o número final de caixotes. Por exemplo, consulte Efeitos de Diferentes Métodos de Normalização.

    São suportados os seguintes tipos de normalização:

    • Por cento: Os valores são normalizados dentro do intervalo [0,100]

    • PQuantile: Os valores estão normalizados dentro do intervalo [0,1]

    • QuantileIndex: Os valores são normalizados dentro do intervalo [1,número de caixotes]

  8. Se escolher a opção Bordas Personalizadas , digite uma lista de números separados por vírgula para usar como bordas de lixo na lista de textos separados por + comírgula . Os valores marcam o ponto que divide os caixotes, portanto, se escrever um valor de borda de caixa, dois caixotes serão gerados; se escrever dois valores de borda do caixote do lixo, três caixotes serão gerados, e assim por diante.

    Os valores devem ser classificados para que os caixotes sejam criados, do mais baixo ao mais alto.

  9. Se utilizar a opção, "Igual largura" com início e paragem personalizados, tem de especificar os limites dos caixotes.

    Defina o limite inferior do primeiro recipiente digitando um valor na caixa de texto da posição da primeira borda .

    Defina o limite inferior do último recipiente digitando um valor na caixa de texto de última borda .

  10. Tag colunas como categóricas: Selecione esta opção para adicionar automaticamente uma bandeira de metadados à coluna de valores encadados. A bandeira dos metadados indica que as colunas quânticas devem ser manuseadas como variáveis categóricas.

  11. Executar a experiência, ou selecionar este módulo e clicar em Executar selecionado.

Resultados

O módulo Desetor de Dados do Grupo em Bins devolve um conjunto de dados no qual cada elemento foi ligado de acordo com o modo especificado.

Também devolve uma transformação de Binning, que é uma função que pode ser passada para o módulo de Transformação De Aplicar para repor novas amostras de dados usando o mesmo modo de ligação e parâmetros.

Para ver como funciona o método de ligação como um previsão, pode clicar na saída do conjunto de dados de Dados de Grupo para Bins e comparar a coluna de etiqueta com a coluna de ligação. Se o agrupamento aos caixotes for preditivo, os valores na matriz de separadores cruzados devem concentrar-se em algumas células.

Dica

Lembre-se, se utilizar a vinculação nos seus dados de treino, deve utilizar o mesmo método de vinculação nos dados que utiliza para testar e previsão. Isto inclui o método de vinculação, as localizações do caixote do lixo e as larguras do caixote do lixo.

Para garantir que os dados são sempre transformados utilizando o mesmo método de binning, recomendamos que guarde transformações de dados úteis e, em seguida, aplique-os a outros conjuntos de dados, utilizando o módulo De Transformação de Aplicação .

Exemplos

Por exemplo, como a quantificação é aplicada em cenários de aprendizagem automática, consulte a Galeria Azure AI:

Notas técnicas

Esta secção contém detalhes de implementação, dicas e respostas a perguntas frequentes.

Efeitos de diferentes métodos de normalização

Se selecionar a opção, a normalização quântil, os valores são transformados antes da vinculação. Assim, o método que escolhe para a normalização tem um forte efeito sobre os valores numéricos.

Por exemplo, a tabela a seguir ilustra como os valores numa única coluna, fLengtha partir do conjunto de dados do Telescópio são transformados com cada um dos métodos de normalização. A coluna, fLengthfoi escolhida aleatoriamente para ilustração dos valores de saída de cada opção, e não tem uma distribuição normal.

Fonte (fLength) pQuantile QuantileIndex Percentagem
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 de vinculação são semelhantes para cada método.

O gráfico a seguir mostra a distribuição de valores na coluna antes e depois da vinculação, utilizando o padrão de 10 caixas.

Comparison of Normalization Methods for Binning

Detalhes de implementação

  • Durante a quantificação, cada número é mapeado para um caixote, comparando o seu valor com os valores das bordas do caixote do lixo.

    Por exemplo, se o valor for de 1,5 e as bordas do caixote forem 1, 2 e 3, o elemento será mapeado para o caixote número 2. O valor 0.5 seria mapeado para o caixote do lixo número 1 (o caixote do subfluxo), e o valor 3.5 seria mapeado para o caixote do lixo número 4 (o caixote do lixo).

  • Se a coluna para o caixote (quantificar) for escassa, então o índice de caixa offset (a compensação quântica) é utilizado quando a coluna resultante é povoada. O offset é escolhido de modo a que o escasso 0 vá sempre para o caixote com um índice de 0 (ou seja, o quântil com valor 0).

  • Os zeros escassos são propagados da entrada para a coluna de saída.

  • O processamento de colunas densas produz sempre resultados com um índice mínimo de contentores igual a 1; ou seja, o valor quântico mínimo é igual ao valor mínimo na coluna. Ao mesmo tempo, o processamento de uma coluna escassa produz um resultado com índice mínimo variável de contentores (valor quântil mínimo).

  • Todas as NaNs e valores em falta são propagadas da coluna de entrada para a coluna de saída. A única exceção é o caso quando o módulo devolve índices quânticos. Neste caso, todas as NaNs são promovidas a valores em falta.

  • Os índices bin são baseados em 1. Esta é a convenção natural para quânticos (1º quântico, 2º quântil, e assim por diante). A única exceção é o caso quando a coluna para o caixote é escassa.

Entradas esperadas

Nome Tipo Description
Conjunto de dados Tabela de Dados Conjunto de dados a analisar

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Description
Modo de ligação Lista QuantizationMode Quantis Escolha um método de binário
Colunas para o caixote qualquer Seleção de Colunas NumericAll Escolha colunas para quantificar
Modo de saída qualquer OutputTo Indicar como as colunas quantificadas devem ser saídas
Tag colunas como categóricas qualquer Booleano true Indicar se as colunas de saída devem ser marcadas como categóricas
Número de caixotes >=1 Número inteiro 10 Especificar o número desejado de caixotes
Normalização quântica qualquer BinningNormalização Escolha o método para normalizar os quantiles
Primeira posição de borda qualquer Float 0,0 Especificar o valor para a primeira borda do caixote do lixo
Largura do caixote do lixo qualquer Float 0,5 Especifique uma largura de caixa personalizada
Última posição de borda qualquer Float 1.0 Especificar o valor para a última borda do caixote do lixo
Lista separada por vírgula de bordas de contentores qualquer String Digite uma lista de números separados por vírgulas para usar como bordas de contentores

Saídas

Nome Tipo Description
Conjunto de dados quantificado Tabela de Dados Conjunto de dados com colunas quantificadas
Transformação de binário Interface ITransform Transformação que aplica quantificação ao conjunto de dados

Exceções

Exceção Description
Erro 0003 A exceção ocorre se uma ou mais entradas forem nulas ou vazias.
Erro 0004 A exceção ocorre se o parâmetro for inferior ou igual ao valor específico.
Erro 0011 A exceção ocorre se o argumento do conjunto de colunas aprovada não se aplicar a nenhuma das colunas do conjunto de dados.
Erro 0021 A exceção ocorre se o número de linhas em alguns dos conjuntos de dados passados para o módulo for demasiado pequeno.
Erro 0024 A exceção ocorre se o conjunto de dados não contiver uma coluna de etiqueta.
Erro 0020 A exceção ocorre se o número de colunas em alguns dos conjuntos de dados passados para o módulo for demasiado pequeno.
Erro 0038 A exceção ocorre se o número de elementos esperados deve ser um valor exato, mas não é.
Erro 0005 A exceção ocorre se o parâmetro for inferior a um valor específico.
Erro 0002 A exceção ocorre se um ou mais parâmetros não puderem ser analisados ou convertidos do tipo especificado para o tipo-alvo exigido pelo tipo-alvo.
Erro 0019 A exceção ocorre se se espera que a coluna contenha valores classificados, mas não contém.
Erro 0039 A exceção ocorre se a operação tiver falhado.
Erro 0075 A exceção ocorre quando uma função de binário inválido é utilizada ao quantificar um conjunto de dados.

Para obter uma lista de erros específicos dos módulos Studio (clássicos), consulte Machine Learning Códigos de Erro.

Para obter uma lista de exceções da API, consulte Machine Learning CÓDIGOs de Erro da API REST.

Ver também

Escala e Redução
Normalizar Dados
Valores de Clip