Criar transformação de contagem

Cria uma transformação que transforma as tabelas de contagem em recursos, para que você possa aplicar a transformação a vários conjuntos de valores

Categoria: aprendendo com contagens

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 criar transformação de contagem no Azure Machine Learning Studio (clássico) para analisar os dados de treinamento. A partir desses dados, o módulo cria uma tabela de contagem , bem como um conjunto de recursos baseados em contagem que podem ser usados em um modelo de previsão.

Uma tabela de contagem contém a distribuição conjunta de todas as colunas de recurso, dada uma coluna de rótulo especificada. Essas estatísticas são úteis para determinar quais colunas têm o valor mais informações. A personalização baseada em contagem é útil porque esses recursos são mais compactados do que os dados de treinamento originais, mas capturam todas as informações mais úteis. Você pode usar os parâmetros do módulo para personalizar como as contagens são transformadas no novo conjunto de recursos baseados em contagem.

Depois de gerar contagens e transformá-las em recursos, você pode salvar o processo como uma transformação para reutilização nos dados relacionados. Você também pode modificar o conjunto de recursos sem precisar gerar um novo conjunto de contagens ou mesclar as contagens e os recursos com outro conjunto de contagens e recursos.

A capacidade de reutilizar e reaplicar recursos baseados em contagem é útil em cenários como estes:

  • Novos dados tornam-se disponíveis para melhorar a cobertura ou o equilíbrio do DataSet.
  • Suas contagens e recursos originais foram baseados em um conjunto de grandes volumes que você não deseja processar novamente. Mesclando as contagens que você pode atualizar com novos dados.
  • Você deseja garantir que o mesmo conjunto de recursos baseados em contagem seja aplicado a todos os conjuntos de itens que você está usando em seu experimento.

Como configurar a transformação de contagem de compilação

Você pode criar uma transformação de recurso baseada em contagem diretamente de um conjunto de um e executá-lo sempre que executar um experimento. Ou, você pode gerar um conjunto de contagens e, em seguida, mesclá-la com novos dados para criar uma tabela de contagem atualizada.

  • Criar recursos baseados em contagem de um conjunto de uma

    Comece aqui se você não tiver criado contagens antes. Você usa o módulo criar transformação de contagem para criar tabelas de contagem e gerar automaticamente um conjunto de recursos.

    Esse processo cria uma transformação de recurso que você pode aplicar a um conjunto de um, usando o módulo aplicar transformação .

  • Mesclar contagens e recursos de vários conjuntos de os

    Se você já tiver gerado uma tabela de contagem a partir de um conjunto de dados anterior, gere contagens apenas nos novos dados ou importe uma tabela de contagem existente criada em uma versão anterior do Azure Machine Learning. Em seguida, mescle os dois conjuntos de tabelas de contagem

    Esse processo cria uma nova transformação de recurso que você pode aplicar a um conjunto de um, usando o módulo aplicar transformação .

Criar recursos baseados em contagem de um conjunto de uma

  1. No Azure Machine Learning Studio (clássico), adicione o módulo criar transformação de contagem ao seu experimento. Você pode encontrar o módulo em transformação de dados, no aprendizado de categoria com contagens.

  2. Conecte o conjunto de um que você deseja usar como base para nossos recursos baseados em contagem.

  3. Use a opção número de classes para especificar o número de valores na coluna rótulo.

    • Para qualquer problema de classificação binária, digite 2 .
    • Para um problema de classificação com mais de dois resultados possíveis, você deve especificar com antecedência o número exato de classes para contagem. Se você inserir um número menor que o número real de classes, o módulo retornará um erro.
    • Se o conjunto de seus conjuntos de um tiver vários valores de classe e os valores de rótulo de classe forem não sequenciais, você deverá usar Editar metadados para especificar que a coluna contém valores categóricos.
  4. Para a opção, os bits da função de hash indicam quantos bits usar ao fazer o hash dos valores.

    Geralmente, é seguro aceitar os padrões, a menos que você saiba que há muitos valores a serem contados e uma contagem de bits superior pode ser necessária.

  5. Na semente da função de hash, você pode opcionalmente especificar um valor para propagar a função de hash. A definição manual de uma semente é normalmente feita quando você deseja garantir que os resultados de hash sejam determinísticos entre as execuções do mesmo experimento.

  6. Use a opção tipo de módulo para indicar o tipo de dados que você vai contar, com base no modo de armazenamento:

    • Conjunto de dados: escolha esta opção se você estiver contando os dados que são salvos como um Dataset em Azure Machine Learning Studio (clássico).

    • Blob: escolha esta opção se os dados de origem usados para compilar contagens forem armazenados como um blob de blocos no armazenamento do Windows Azure.

    • MapReduce: escolha esta opção se desejar chamar as funções mapear/reduzir para processar os dados.

      Para usar essa opção, os novos dados devem ser fornecidos como um blob no armazenamento do Windows Azure e você deve ter acesso a um cluster HDInsight implantado. Quando você executa o experimento, um trabalho de mapeamento/redução é iniciado no cluster para executar a contagem.

      Para conjuntos de altos de grandes volumes, recomendamos que você use essa opção sempre que possível. Embora você pode incorrer em custos adicionais para usar o serviço HDInsight, a computação em grandes conjuntos de dados pode ser mais rápida no HDInsight.

      Para obter mais informações, confira https://azure.microsoft.com/services/hdinsight/.

  7. Depois de especificar o modo de armazenamento de dados, forneça informações adicionais de conexão para os dados necessários:

    • Se você estiver usando dados do Hadoop ou do armazenamento de BLOB, forneça o local e as credenciais do cluster.
    • Se você usou anteriormente um módulo importar dados no experimento para acessar dados, deverá inserir novamente o nome da conta e suas credenciais. O módulo criar transformação de contagem acessa o armazenamento de dados separadamente para ler os dados e criar as tabelas necessárias.
  8. Para coluna de rótulo ou índice, selecione uma coluna como a coluna de rótulo.

    Uma coluna de rótulo é necessária. A coluna já deve estar marcada como um rótulo ou um erro é gerado.

  9. Use a opção, selecione as colunas a serem contadas e selecione as colunas para as quais as contagens são geradas.

    Em geral, os melhores candidatos são colunas altamente dimensionais, junto com todas as outras colunas correlacionadas com essas colunas.

  10. Use a opção de tipo de tabela Count para especificar o formato usado para armazenar a tabela de contagem.

    • Dicionário: cria uma tabela de contagem de dicionários. Todos os valores de coluna nas colunas selecionadas são tratados como cadeias de caracteres e são transformados em hash usando uma matriz de bits de até 31 bits de tamanho. Portanto, todos os valores de coluna são representados por um inteiro de 32 bits não negativo.

      Em geral, você deve usar essa opção para conjuntos de dados menores (menos de 1 GB) e usar a opção CMSketch para grandes conjuntos.

      Depois de selecionar essa opção, configure o número de bits usados pela função de hash e defina uma semente para inicializar a função de hash.

    • CMSketch: cria uma tabela de esboço mínima de contagem. Com essa opção, várias funções de hash independentes com um intervalo menor são usadas para melhorar a eficiência da memória e reduzir a possibilidade de colisões de hash. Os parâmetros para o tamanho do bit de hash e a propagação de hash não têm nenhum efeito sobre essa opção.

  11. Execute o experimento.

    O módulo cria uma transformação personalização que você pode usar como entrada para o módulo aplicar transformação . A saída do módulo aplicar transformação é um conjunto de resultados transformado que pode ser usado para treinar um modelo.

    Opcionalmente, você pode salvar a transformação se quiser mesclar o conjunto de recursos baseados em contagem com outro conjunto de recursos baseados em contagem. Para obter mais informações, consulte mesclar a transformação de contagem.

Mesclar contagens e recursos de vários conjuntos de os

  1. No Azure Machine Learning Studio (clássico), adicione o módulo criar transformação de contagem ao seu experimento e conecte o conjunto de dados que contém os novos dados que você deseja adicionar.

  2. Use a opção tipo de módulo para indicar a origem dos novos dados. Você pode mesclar dados de fontes diferentes.

    • DataSet: escolha esta opção se os novos dados forem fornecidos como um Dataset em Azure Machine Learning Studio (clássico).

    • Blob: escolha esta opção se os novos dados forem fornecidos como um blob de blocos no armazenamento do Windows Azure.

    • MapReduce: escolha esta opção se desejar chamar as funções mapear/reduzir para processar os dados.

      Para usar essa opção, os novos dados devem ser fornecidos como um blob no armazenamento do Windows Azure e você deve ter acesso a um cluster HDInsight implantado. Quando você executa o experimento, um trabalho de mapeamento/redução será iniciado no cluster para executar a contagem.

      Para obter mais informações, consulte https://azure.microsoft.com/services/hdinsight/

  3. Depois de especificar o modo de armazenamento de dados, forneça informações adicionais de conexão para os novos dados:

    • Se você estiver usando dados do Hadoop ou do armazenamento de BLOB, forneça o local e as credenciais do cluster.

    • Se você usou anteriormente um módulo importar dados no experimento para acessar dados, deverá inserir novamente o nome da conta e suas credenciais. O motivo é que o módulo criar transformação de contagem acessa o armazenamento de dados separadamente para ler os dados e criar as tabelas necessárias.

  4. Ao mesclar contagens, as seguintes opções devem ser exatamente as mesmas em ambas as tabelas de contagens:

    • Número de classes
    • Os bits de função de hash
    • A semente de função de hash
    • Selecione as colunas para contagem

    A coluna de rótulo pode ser diferente, contanto que ela contenha o mesmo número de classes.

  5. Use a opção de tipo de tabela Count para especificar o formato e o destino da tabela de contagem atualizada.

    Dica

    O formato das duas tabelas de contagem que você pretende mesclar deve ser o mesmo. Em outras palavras, se você salvou uma tabela de contagem anterior usando o formato de dicionário , não poderá mesclá-la com contagens salvas usando o formato CMSketch .

  6. Execute o experimento.

    O módulo cria uma transformação personalização que você pode usar como entrada para o módulo aplicar transformação . A saída do módulo aplicar transformação é um conjunto de resultados transformado que pode ser usado para treinar um modelo.

  7. Para mesclar esse conjunto de contagens com um conjunto existente de recursos baseados em contagem, consulte mesclar a transformação de contagem.

Exemplos

Consulte estes artigos para obter mais informações sobre o algoritmo de contagens e a eficácia da modelagem baseada em contagem em comparação com outros métodos.

Os experimentos a seguir no Galeria de ia do Azure demonstram como usar o aprendizado baseado em contagem para criar vários modelos de previsão:

Parâmetros do módulo

Os parâmetros a seguir são usados com todas as opções:

Nome Tipo Intervalo Opcional Padrão Descrição
Número de classes Integer >= 2 Obrigatório 2 O número de classes para o rótulo.
Os bits de função de hash Integer [12; 31] Obrigatório 20 O número de bits do intervalo de função de hash.
A semente de função de hash Integer any Obrigatório 1 A semente da função de hash.
Tipo de módulo Obrigatório Conjunto de dados O tipo de módulo a ser usado ao gerar a tabela de contagem.
Tipo de tabela de contagem CountTableType selecionar da lista Obrigatório Dictionary Especifique o formato da tabela de contagem.

As opções a seguir se aplicam ao selecionar a opção blob .

Nome Tipo Intervalo Opcional Padrão Descrição
Nome de blob String any Obrigatório O nome do blob de entrada. Não inclua o nome do contêiner.
Nome da conta String any Obrigatório O nome da conta de armazenamento.
Chave de conta SecureString any Obrigatório A chave da conta de armazenamento.
Nome do contêiner String any Obrigatório O contêiner de blob do Azure que contém o blob de entrada.
Colunas de contagem String any Obrigatório Os índices com base em um dos grupos de colunas para executar a contagem.
Coluna de rótulo Integer >= 1 Obrigatório 1 O índice baseado em um da coluna de rótulo.
Formato de blob any Obrigatório CSV O formato de arquivo de texto de blob.

Os seguintes parâmetros se aplicam ao usar o MapReduce para gerar contagens:

Nome Tipo Intervalo Opcional Padrão Descrição
Nome da conta de armazenamento padrão String any Obrigatório nenhum O nome da conta de armazenamento que contém o blob de entrada.
Chave da conta de armazenamento padrão SecureString any Obrigatório nenhum A chave da conta de armazenamento que contém o blob de entrada.
Nome do contêiner padrão String any Obrigatório nenhum O nome do contêiner de BLOB para gravar a tabela de contagem.
URI do cluster String any Obrigatório nenhum O URI para o cluster HDInsight Hadoop.
Nome de usuário String any Obrigatório nenhum O nome de usuário para fazer logon no cluster HDInsight Hadoop.

Os parâmetros a seguir definem o formato da tabela de contagem:

Nome Tipo Intervalo Opcional Padrão Descrição
Tipo de tabela de contagem CountTableType Lista Obrigatório Dictionary Tipo da tabela de contagem.
Nome ou índice da coluna de rótulo ColumnSelection Necessário se a tabela de contagem for salva como conjunto de uma nenhum Selecione a coluna rótulo.
Selecione as colunas para contagem ColumnSelection Necessário se a tabela de contagem for salva como conjunto de uma Selecione colunas para contagem. Essas colunas são consideradas como recursos categóricos.
Profundidade da tabela de esboço CM Integer >= 1 Necessário se a tabela de contagem usar o formato CMSketch 4 A profundidade da tabela de esboço CM, que é igual ao número de funções de hash.
Largura da tabela de esboço CM Integer [1; 31] Necessário se a tabela de contagem usar o formato CMSketch 20 A largura da tabela de esboço CM, que é o número de bits do intervalo de funções de hash.
Índice de coluna de rótulo ou NameColumn ColumnSelection Necessário se a tabela de contagem for salva como conjunto de uma Seleciona a coluna de rótulo.
Selecione as colunas para contagem ColumnSelection Necessário se a tabela de contagem for salva como conjunto de uma Seleciona colunas para contagem. Essas colunas são consideradas como recursos categóricos.
Tipo de tabela de contagem Necessário se a tabela de contagem for salva como conjunto de uma Dictionary Especifica o tipo da tabela de contagem.
Profundidade da tabela de esboço CM Integer >= 1 Necessário se a tabela de contagem for salva como CMSketch 4 A profundidade da tabela de esboço CM, que é igual ao número de funções de hash.
Largura da tabela de esboço CM Integer [1; 31] Necessário se a tabela de contagem for salva como CMSketch 20 A largura da tabela de esboço CM, que é o número de bits do intervalo de função de hash.

Saídas

Nome Tipo Descrição
Transformação de contagem Interface ITransform A transformação de contagem.

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 0005 Ocorrerá uma exceção se o parâmetro for menor que um valor específico.
Erro 0007 Ocorrerá uma exceção se o parâmetro for maior que um valor específico.
Erro 0009 Ocorrerá uma exceção se o nome da conta ou o nome do contêiner de armazenamento do Azure for especificado incorretamente.
Erro 0065 Ocorrerá uma exceção se o nome do blob do Azure estiver especificado incorretamente.
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 0049 Ocorrerá uma exceção quando não for possível analisar um arquivo.
Erro 1000 Exceção de biblioteca interna.
Erro 0059 Ocorrerá uma exceção se um índice de coluna especificado em um seletor de colunas não puder ser analisado.
Erro 0060 Ocorrerá uma exceção quando um intervalo de coluna fora do intervalo for especificado em um seletor de colunas.
Erro 0089 A exceção ocorre quando o número especificado de classes for menor que o número real de classes em um conjunto de dados usado para contagem.

Para obter uma lista de erros específicos para módulos do Studio (clássicos), 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.

Confira também

Aprendendo com contagens