Agrupar valores categóricos

Agrupa dados de várias categorias em uma nova categoria

Categoria: transformação/manipulação de dados

Observação

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

Esse conteúdo pertence apenas ao estúdio (clássico). Módulos de arrastar e soltar semelhantes foram adicionados ao designer de Azure Machine Learning. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo Agrupar valores categóricos no Azure Machine Learning Studio (clássico) para criar uma tabela de pesquisa in-loco.

O uso típico para agrupar valores categóricos é mesclar vários valores de cadeia de caracteres em um único nível novo. Por exemplo, você pode atribuir códigos postais individuais em uma região a um único código regional ou agrupar vários produtos em uma categoria.

Para usar esse módulo, você digita os valores de pesquisa que deseja usar e mapeia os valores existentes para os valores de substituição. Você pode criar agrupamentos somente para colunas categóricas, não para colunas de tipo numérico ou colunas designadas como rótulos ou recursos.

Os valores de coluna que não são explicitamente mapeados para um novo nível são atribuídos a um nível padrão. Por exemplo, se você não mapeou todos os códigos postais individuais, eles seriam agrupados em um nível para valores não mapeados, os quais você pode nomear como desconhecido.

Observação

Um máximo de 20 novos níveis podem ser criados, incluindo o nível padrão. Se você precisar de mais valores ou precisar definir mapeamentos dinamicamente, é recomendável usar o script R personalizado no módulo Executar script r . Ou use instruções SQL no módulo aplicar transformação SQL .

Como usar valores categóricos de grupo

Recomendamos que você prepare a lista de valores existentes e as novas categorias, com antecedência. Para cada categoria, você deve preparar um novo nome de categoria e uma lista separada por vírgulas de valores para incluir na categoria.

  1. Adicione o módulo Agrupar valores categóricos ao seu experimento. Você pode encontrar o módulo em transformação de dados, manipulação.

  2. Conecte um conjunto de um DataSet que tenha os valores que você deseja transformar.

  3. No painel Propriedades de Agrupar valores categóricos, use o seletor de coluna para escolher a coluna que tem os níveis que você deseja reduzir.

    • Recomendamos que você clique em Iniciar com e nenhuma coluna para iniciar e, em seguida, adicione colunas por nome. Caso contrário, muitas colunas podem ser adicionadas como candidatos, levando a um erro.

    • A coluna deve ser uma coluna categórica. Se não estiver, adicione Editar metadados upstream e altere o tipo de coluna.

    • Certifique-se de remover da entrada quaisquer colunas para as quais a substituição de cadeia de caracteres não deve ser aplicada.

  4. Para o modo de saída, indique se deseja gerar apenas os novos níveis ou anexe as alterações para ver a coluna original, com as substituições lado a lado.

    O padrão, ResultOnly, mostra apenas os novos valores. A opção local substitui os valores de coluna existentes pelos novos níveis.

  5. Para nome de nível padrão, digite um valor de cadeia de caracteres a ser usado como a substituição para todos os valores que não são mapeados explicitamente. Você pode usar algo como "desconhecido" ou "padrão".

    Observação

    Esse valor de nível padrão é aplicado a todos os valores que não podem ser mapeados. Se você acidentalmente incluísse colunas que você não pretendia mapear, o valor será aplicado a todos os valores nas colunas. Portanto, verifique se a seleção da coluna é precisa antes do processamento.

  6. Para o novo número de níveis, digite um número que indique o número total de novas categorias (níveis), incluindo o nível padrão para valores não mapeados.

  7. Para o nome do novo nível 1, forneça o novo nome de grupo para a primeira categoria.

  8. Na caixa de texto que segue imediatamente, lista separada por vírgulas de níveis antigos para mapear para o novo nível 1, digite ou cole uma lista completa de todos os valores para mapear para o novo nível. Caracteres curinga e expressões regulares não são permitidos.

  9. Continue a digitar novos nomes de nível e digite ou cole os valores que devem ser mapeados para o novo nível.

    Recomendamos que você salve sua lista de valores em um arquivo separado enquanto estiver trabalhando. Se você alterar o número de níveis, todas as cadeias de caracteres que você digitou anteriormente serão removidas e você deverá começar novamente.

    No entanto, se estiver editando um módulo salvo anteriormente, você poderá reverter para as configurações originais.

  10. Execute o experimento.

Resultados

Para exibir os resultados, clique com o botão direito do mouse no módulo Agrupar valores categóricos , selecione conjuntos de resultados e clique em Visualizar.

Exemplos

Para obter exemplos de aprendizado de máquina em ação, consulte a Galeria de ia do Azure.

Você também pode experimentar este módulo para você mesmo, usando um pequeno conjunto de um com algumas variáveis de cadeia de caracteres que podem ser facilmente agrupadas, como o conjunto de módulos (em inglês) de preço do automóvel que é fornecido no Azure Machine Learning Studio (clássico).

Vamos supor que você queira agrupar carros no conjunto de acordo com o preço do carro por tamanho do mecanismo, usando o número de cilindros. Em vez de vários tamanhos de mecanismos diferentes, você criará os novos níveis, "Big", "Small" e "other" da seguinte maneira:

  • Motores grandes: seis cilindros ou maiores
  • Mecanismos pequenos: dois ou quatro cilindros
  • Outros: qualquer outra coisa
  1. Adicione o módulo selecionar colunas no conjunto de módulos e selecione apenas a num-of-cylinders coluna.
  2. Adicione o módulo Editar metadados e altere a num-of-cylinders coluna para categórico.
  3. Adicione o módulo Agrupar valores categóricos e conecte o conjunto de conjuntos modificado.
  4. Para nome de nível padrão, digite other . Você não precisa fornecer valores para esse nível.
  5. Para o nome do novo nível 1, digite big . Na lista de níveis antigos para mapear para o nível 1, Cole six, eight, twelve .
  6. Para o nome do novo nível 2, digite small . Para os valores mapeados, cole em two, four .
  7. Execute o experimento.
  8. Ao Visualizar os resultados, você percebe que o conjunto de um original tinha alguns tamanhos de mecanismos estranhos que você não contava, como five e three . Todos esses itens são mapeados para o other nível.

Observações técnicas

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

  • Você pode encontrar a mensagem de erro "a coluna com o nome" <columnname> "não está em uma categoria permitida."

    Essa mensagem indica que a coluna selecionada não é uma coluna categórica. Você pode marcar a coluna como Categorical usando Editar metadadosou selecionar uma coluna diferente que contenha valores de categoria apropriados.

Entradas esperadas

Nome Tipo Descrição
Conjunto de dados Tabela de Dados Dados a serem agrupados

Parâmetros do módulo

Name Intervalo Type Padrão Descrição
Colunas Selecionadas any ColumnSelection CategoricalAll Selecione as colunas que serão agrupadas.
Modo de saída any OutputTo ResultOnly Especifique como os rótulos de categoria devem ser gerados.
Nome do nível padrão any String Indica o nível padrão a ser usado se não houver correspondência de mapeamento.
Novo número de níveis Lista Número de grupos Especifique o número de níveis após o agrupamento dos valores, incluindo o nível padrão.

Saída

Nome Tipo Descrição
Conjunto de dados de resultados Tabela de Dados Dados agrupados

Consulte também

Manusei
Transformação de dados
Lista de Módulo A-Z