Módulo de Divisão de Dados

Este artigo descreve um módulo no designer do Azure Machine Learning.

Você pode usar o módulo Divisão de Dados para dividir um conjunto de dados em dois conjuntos distintos.

Esse módulo é útil quando você precisa separar dados em conjuntos de treinamento e teste. Você também pode personalizar a maneira como os dados são divididos. Algumas opções dão suporte à randomização de dados. Outras são adaptadas para um determinado tipo de dados ou de modelo.

Configurar o módulo

Dica

Antes de escolher o modo de divisão, leia todas as opções para determinar o tipo de divisão de que você precisa. Se você alterar o modo de divisão, todas as outras opções poderão ser redefinidas.

  1. Adicione o módulo Divisão de Dados ao seu pipeline no designer. Você pode encontrar esse módulo em Transformação de Dados, na categoria Exemplo e Divisão.

  2. Modo de Divisão: escolha um dos seguintes modos, dependendo do tipo de dados que você tem e de como deseja dividi-lo. Cada modo de divisão tem opções diferentes.

    • Dividir linhas: use essa opção se desejar apenas dividir os dados em duas partes. Você pode especificar a porcentagem de dados a serem colocados em cada divisão. Por padrão, os dados são divididos 50/50.

      Você também pode tornar aleatória a seleção de linhas em cada grupo e usar a amostragem estratificada. Na amostragem estratificada, você deve selecionar uma única coluna de dados para a qual você deseja que os valores sejam distribuídos igualmente entre os dois conjuntos de dados de resultado.

    • Dividir Expressão Regular: escolha essa opção quando desejar dividir o conjunto de dados ao testar uma única coluna para um valor.

      Por exemplo, se estiver analisando sentimentos você poderá verificar a presença de um nome de produto específico em um campo de texto. Com isso você pode dividir o conjunto de registros em linhas com o nome e as linhas do produto de destino sem o nome do produto de destino.

    • Dividir Expressão de Linguagem: use essa opção sempre que desejar aplicar uma condição a uma coluna de número. O número pode ser um campo de data/hora, uma coluna que contém valores de idade, moeda ou porcentagem. Por exemplo, talvez você queira dividir seu conjunto de dados com base no custo dos itens, agrupar pessoas por intervalos de idade ou separar os dados por uma certa data.

Linhas de divisão

  1. Adicione o módulo Divisão de Dados ao seu pipeline no designer e conecte o conjunto que você deseja dividir.

  2. No Modo de divisão, selecione Dividir linhas.

  3. Fração de linhas no primeiro conjunto de resultados de saída: use esta opção para determinar quantas linhas entrarão na primeira saída (lado esquerdo). Todas as outras linhas entrarão na segunda saída (lado direito).

    A taxa representa a porcentagem de linhas enviadas para o primeiro conjunto de dados de saída, portanto, você deve inserir um número decimal entre 0 e 1.

    Por exemplo, se você inserir 0,75 como o valor, o conjunto de valores será dividido em 75/25. Nessa divisão, 75% das linhas serão enviadas para o primeiro conjunto de dados de saída. Os 25% restantes serão enviados para o segundo conjunto de dados de saída.

  4. Selecione a opção Divisão aleatória se desejar tornar aleatória a seleção de dados nos dois grupos. Essa é a opção preferível quando você está criando conjuntos de dados de treinamento e de teste.

  5. Semente aleatória: insira um valor inteiro não negativo para iniciar a sequência pseudoaleatória de instâncias a serem usadas. Essa propagação padrão é usada em todos os módulos que geram números aleatórios.

    A especificação de uma semente torna os resultados reproduzíveis. Se precisar repetir os resultados de uma operação de divisão você deverá especificar uma semente para o gerador de números aleatórios. Caso contrário, a semente aleatória é definida por padrão como 0, o que significa que o valor inicial da semente é obtido a partir do relógio do sistema. Como resultado, a distribuição de dados pode ser ligeiramente diferente cada vez que você executar uma divisão.

  6. Divisão estratificada: defina essa opção como True para garantir que os dois conjuntos de dados de saída contenham uma amostra representativa dos valores na coluna estratificada ou na coluna principal de estratificação.

    Com a amostragem estratificada, os dados são divididos para que cada conjunto de dados de saída obtenha quase a mesma porcentagem de cada valor de destino. Por exemplo, talvez você queira ter certeza de que seus conjuntos de dados de treinamento e teste estejam quase equilibrados em relação ao resultado ou a alguma outra coluna (como a de gênero).

  7. Envie o pipeline.

Selecione uma expressão regular

  1. Adicione o módulo Divisão de Dados ao seu pipeline e conecte o como saída para o conjunto de dados que você deseja dividir.

  2. Para o Modo de divisão, selecione Dividir expressão regular.

  3. Na opção Expressão regular, insira uma expressão regular válida.

    A expressão regular deve seguir a sintaxe para expressões regulares do Python.

  4. Envie o pipeline.

    Com base na expressão regular que você fornece, o conjunto de dados é dividido em dois conjuntos de linhas: linhas com valores que correspondem à expressão e todas as linhas restantes.

Os exemplos a seguir demonstram como dividir um conjunto de dados usando a opção de Expressão regular.

Palavra inteira única

Este exemplo coloca no primeiro conjunto de dados todas as linhas que contêm o texto Gryphon na coluna Text. Ele coloca as outras linhas na segunda saída de Divisão de Dados.

    \"Text" Gryphon  

Subcadeia de caracteres

Este exemplo procura a cadeia de caracteres especificada em qualquer posição dentro da segunda coluna do conjunto de dados. A posição é indicada aqui pelo valor de índice de 1. A correspondência diferencia maiúsculas e minúsculas.

(\1) ^[a-f]

O primeiro conjunto de dados resultantes contém todas as linhas nas quais a coluna de índice começa com um destes caracteres: a, b, c, d, e, f. Todas as outras linhas são direcionadas para a segunda saída.

Selecionar uma expressão relativa

  1. Adicione o módulo Divisão de Dados ao seu pipeline e conecte o como saída para o conjunto de dados que você deseja dividir.

  2. Para o Modo de divisão, selecione Expressão Relativa.

  3. Na opção Expressão relacional, insira uma expressão que executa uma operação de comparação em uma única coluna.

    Para a Coluna numérica:

    • A coluna contém números de qualquer tipo de dados numéricos, incluindo tipos de dados de data e hora.
    • As expressões relativas podem fazer referência a no máximo um nome de coluna.
    • Use o caractere especial de e comercial, &, para a operação E. Use o caractere de barra, |, para a operação OU.
    • Há suporte para os seguintes operadores: <, >, <=, >=, ==, !=.
    • Você não pode agrupar operações usando ( e ).

    Para uma Coluna de cadeia de caracteres:

    • Há suporte para os seguintes operadores: ==, !=.
  4. Envie o pipeline.

    A expressão divide o conjunto de dados em dois conjuntos de linhas: linhas com valores que atendem à condição e todas as linhas restantes.

Os exemplos a seguir demonstram como dividir um conjunto de dados usando a opção Expressão Relativa no módulo Divisão de Dados.

Ano calendário

Um cenário comum é dividir um conjunto de dados por anos. Por exemplo, a seguinte expressão seleciona todas as linhas onde os valores na coluna Year são maiores do que 2010.

\"Year" > 2010

A expressão de data deve considerar todas as partes da data incluídas na coluna de dados. O formato das datas na coluna de dados deve ser consistente.

Por exemplo, em uma coluna de data que usa o formato mmddyyyy, a expressão deve ser algo assim:

\"Date" > 1/1/2010

Índice da coluna

A expressão a seguir demonstra como você pode usar o índice da coluna para selecionar todas as linhas na primeira coluna do conjunto de dados que contém valores menores ou iguais a 30, mas não iguais a 20.

(\0)<=30 & !=20

Próximas etapas

Confira o conjunto de módulos disponíveis no Azure Machine Learning.