Componente Agrupar Dados em Discretizações

Este artigo descreve como utilizar o componente Agrupar Dados em Discretizações no estruturador do Azure Machine Learning para agrupar números ou alterar a distribuição de dados contínuos.

O componente Agrupar Dados em Contentores suporta várias opções para a discretização de dados. Pode personalizar a forma como as arestas de discretização são definidas e como os valores são distribuídos nas classes. Por exemplo, pode:

  • Escreva manualmente uma série de valores para servir como limites de discretizações.
  • Atribua valores a classes com quantiles ou classificações de percentil.
  • Forçar uma distribuição uniforme de valores nas classes.

Mais informações sobre discretização e agrupamento

A discretização ou agrupamento de dados (por vezes denominada quantização) é uma ferramenta importante na preparação de dados numéricos para machine learning. É útil em cenários como estes:

  • Uma coluna de números contínuos tem demasiados valores exclusivos para modelar eficazmente. Assim, atribui automaticamente ou manualmente os valores a grupos, para criar um conjunto mais pequeno de intervalos discretos.

  • Quer substituir uma coluna de números por valores categóricos que representam intervalos específicos.

    Por exemplo, poderá querer agrupar valores numa coluna etária ao especificar intervalos personalizados, como 1-15, 16-22, 23-30 e assim sucessivamente 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 preparado. Para mitigar o preconceito no modelo, pode transformar os dados numa distribuição uniforme com o método quantiles.

    Com este método, o componente Agrupar Dados em Discretizações determina as localizações de discretização ideais e as larguras das classes para garantir que aproximadamente o mesmo número de amostras cai em cada classe. Em seguida, dependendo do método de normalização que escolher, os valores nas classes são transformados em percentis ou mapeados para um número de discretização.

Exemplos de discretização

O diagrama seguinte mostra a distribuição de valores numéricos antes e depois da discretização com o método quantiles . Tenha em atenção que, em comparação com os dados não processados à esquerda, os dados foram discretizados e transformados numa escala unitário normal.

Visualização de resultados

Uma vez que existem muitas formas de agrupar dados, todas personalizáveis, recomendamos que experimente diferentes métodos e valores.

Como configurar Dados de Grupo em Classes

  1. Adicione o componente Agrupar Dados em Contentores ao pipeline no estruturador. Pode encontrar este componente na categoria Transformação de Dados.

  2. Ligue o conjunto de dados que tem dados numéricos ao agrupamento. A quantização só pode ser aplicada a colunas que contenham dados numéricos.

    Se o conjunto de dados contiver colunas não numéricas, utilize o componente Selecionar Colunas no Conjunto de Dados para selecionar um subconjunto de colunas com o qual trabalhar.

  3. Especifique o modo de discretização. O modo de discretização determina outros parâmetros, por isso certifique-se de que seleciona primeiro a opção Modo de discretização . São suportados os seguintes tipos de discretização:

    • Quantiles: o método quantile atribui valores a classes com base em classificações de percentil. Este método também é conhecido como discretização de altura igual.

    • Largura Igual: com esta opção, tem de especificar o número total de classes. Os valores da coluna de dados são colocados nas classes de modo a que cada classe tenha o mesmo intervalo entre os valores de início e de fim. Como resultado, algumas classes poderão ter mais valores se os dados estiverem agrupados em torno de um determinado ponto.

    • Arestas Personalizadas: pode especificar os valores que iniciam cada classe. O valor do limite é sempre o limite inferior da classe .

      Por exemplo, suponha que pretende agrupar valores em duas classes. Um terá valores superiores a 0 e um terá valores menores ou iguais a 0. Neste caso, para arestas de discretizações, introduza 0 na lista separada por vírgulas das arestas da classe. O resultado do componente será 1 e 2, indicando o índice do contentor para cada valor de linha. Tenha em atenção que a lista de valores separados por vírgulas tem de estar por ordem ascendente, como 1, 3, 5, 7.

    Nota

    O modo Entropy MDL é definido no Studio (clássico) e ainda não existe um pacote de open source correspondente que possa ser aproveitado para suportar no Estruturador.

  4. Se estiver a utilizar os modos de discretização quantiles e largura igual , utilize a opção Número de classes para especificar quantas classes ou quantiles pretende criar.

  5. Para Colunas a discretizá-lo, utilize o seletor de colunas para escolher as colunas que têm os valores que pretende colocar. As colunas têm de ser um tipo de dados numérico.

    A mesma regra de discretização é aplicada a todas as colunas aplicáveis que escolher. Se precisar de discretização de algumas colunas através de um método diferente, utilize uma instância separada do componente Agrupar Dados em Contentores para cada conjunto de colunas.

    Aviso

    Se escolher uma coluna que não seja um tipo permitido, é gerado um erro de runtime. O componente devolve um erro assim que encontra qualquer coluna de um tipo não permitido. Se receber um erro, reveja todas as colunas selecionadas. O erro não lista todas as colunas inválidas.

  6. Para o Modo de saída, indique como pretende exportar os valores quantizados:

    • Acrescentar: cria uma nova coluna com os valores binários e acrescenta-a à tabela de entrada.

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

    • ResultOnly: devolve apenas as colunas de resultado.

  7. Se selecionar o modo de discretização quantiles , utilize a opção de normalização Quantile para determinar como os valores são normalizados antes de ordenar em quantiles. Tenha em atenção que normalizar valores transforma os valores, mas não afeta o número final de classes.

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

    • Percentagem: 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 classes].

  8. Se escolher a opção Arestas Personalizadas , introduza uma lista de números separada por vírgulas para utilizar como arestas de discretização na caixa de texto Lista separada por vírgulas de limites da classe.

    Os valores marcam o ponto que divide as classes. Por exemplo, se introduzir um valor de limite de discretizações, serão geradas duas classes. Se introduzir dois valores de limite de discretizações, serão geradas três classes.

    Os valores têm de ser ordenados pela ordem em que as classes são criadas, da mais baixa para a mais alta.

  9. Selecione a opção Etiquetar colunas como categóricas para indicar que as colunas quantizadas devem ser processadas como variáveis categóricas.

  10. Submeta o pipeline.

Resultados

O componente Agrupar Dados em Contentores devolve um conjunto de dados no qual cada elemento foi discretizado de acordo com o modo especificado.

Também devolve uma transformação de discretização. Essa função pode ser transmitida ao componente Aplicar Transformação para discretizar novas amostras de dados através do mesmo modo de discretização e parâmetros.

Dica

Se utilizar a discretização nos seus dados de preparação, tem de utilizar o mesmo método de discretização nos dados que utiliza para testes e predição. Também tem de utilizar as mesmas localizações de discretização e largura da discretização.

Para garantir que os dados são sempre transformados com o mesmo método de discretização, recomendamos que guarde transformações de dados úteis. Em seguida, aplique-os a outros conjuntos de dados com o componente Aplicar Transformação .

Passos seguintes

Veja o conjunto de componentes disponíveis para o Azure Machine Learning.