Free Trial

Blog

Insights e ideias das mentes mais brilhantes em análise de dados.
dalobar
Átomo

Preparar um conjunto de dados, principalmente sobre problemas do mundo real, para ser aplicado a um algoritmo de Aprendizagem de Máquina muitas vezes pode ser desafiador. Frequentemente, o modelo recomenda ou exige que variáveis categóricas sejam transformadas em numérica. Nesse post, você entenderá o porquê usar OHE e como fazer isso dentro do Alteryx.

 

O que é uma “variável categórica”

 

Variáveis categóricas são dados que contém valores escritos em texto ao invés de valores numéricos. Veja dois exemplos:

  • “Fruta” variável com conteúdo: “Uva, “Maçã”, “Limão”
  • “Cor” variável com conteúdo: “Roxo”, “Vermelho”, “Verde”

Nesse caso, cada valor representa uma categoria diferente sem uma relação hierárquica naturalmente criada. Veja um exemplo de uma variável categórica com ordenamento hierárquico natural:

  • “Status do Semáforo”: “Verde”, “Amarelo”, “Vermelho”
  • “Premiação”: “Primeiro”, “Segundo”, “Terceiro”

 

Quando usar OHE

 

One Hot Econding é usado para tratar dados categóricos sem ordenamento hierárquico natural. Veja um exemplo:

 

Antes da transformação:

dalobar_0-1604690596947.png

 

Depois da transformação:

dalobar_1-1604690596951.png

 

Como implementar OHE no Alteryx

No Alteryx, o componente responsável por essa transformação é a Tabela de Referência Cruzada:

dalobar_2-1604690596966.png

 

Nela é possível configurar por qual coluna o agrupamento será feito, de qual coluna as categorias vão ser resgatadas para a transformação e qual a coluna de referência (é necessário que seja um valor inteiro), e para aplicar o OHE é preciso selecionar o método de Contagem.

Além de elaborar fluxos para executar esse tratamento em uma coluna especifica, podemos elaborar um fluxo que possa se adequar às necessidades do usuário, dinamizando a escolha da(s) coluna(s) em que o OHE será aplicado.

 

 

 

Exemplo:

dalobar_3-1604690596970.png

 



 

1° Passo: Criar uma Macro em lote para executar as repetições

Resultado:

dalobar_4-1604690596980.png

 

1.1

dalobar_5-1604690596986.png

 

Todo o bloco principal chamado “OHE” vai fazer o processo de transformação e aplicação do One Hot Encoding sem perder os valores das colunas anteriores a ele.

dalobar_6-1604690596998.png

 

 

Foi selecionado na Tabela de referência cruzada, uma coluna para Agrupamento, uma coluna para Cabeçalho (nesse caso qualquer coluna do tipo INT), uma coluna tipo INT para os valores, e o método de Contagem.

Também foram adicionados a seguir, dois componentes de Renomeação Dinâmica. Um responsável por remover o pré-fixo “Count_” do nome da coluna e outro responsável por atualizar o seu nome e incluir qual era o cabeçalho usado na tabela de referência. Ao final um Junção conectando o resultado da transformação às colunas originais dos dados através da forma de

Agrupamento utilizado.

Agora vem a mágica da Macro em Lote, todos esses componentes vão ser responsáveis por dinamizar os valores que vão passar pela transformação ao longo das repetições.

1.2

dalobar_7-1604690597003.png

 

Esses componentes fazem parte do conjunto Ferramentas de Interface, ao adicionar o componente “Parâmetro de Controle” automaticamente seu fluxo de trabalho é transformado em uma macro em lote:

dalobar_8-1604690597010.png

 

 Os componentes de Ação devem “Atualizar valor” nos respectivos atributos, como consta nas anotações ao seu lado:

dalobar_9-1604690597012.png

 

A “Method” atualizando por fórmula o método da transformação com a palavra “Count” já que é o método utilizado no OHE. “Field” atualizando por fórmula com o nome de uma coluna para o Agrupamento, assim como “DataField” atualizando o valor com o nome de uma coluna do tipo INT.

O Parâmetro de controle deve ser conectado a esses dois componentes:

dalobar_10-1604690597017.png

 

Por último a Ação de “Renomear” deve ser configurada para atualizar apenas parte do título da coluna e será conectada ao segundo Renomeação dinâmica que inserimos no fluxo:

 

dalobar_11-1604690597022.png

 


Configuração da Ação “Renomear”:

dalobar_12-1604690597024.png

 

 

Para configuramos a saída da macro, iremos acessar a Janela de Interface Designer (Ctrl + Alt + D), configurando a junção da saída através do nome das colunas, desta forma:

dalobar_13-1604690597027.png

 

 

 

2° Passo: Criar uma Macro para receber as escolhas

Resultado:

dalobar_14-1604690597036.png

 

2.1

dalobar_15-1604690597045.png

 

 

Esse componente de ação será responsável fazer com que uma célula da “Entrada de Texto” receba as “Colunas Selecionadas” na Entrada da Macro através de uma Caixa de Seleção. Nele deve ser selecionado o Value do Data, dentre as opções para atualizar o valor.

 

2.2

 

dalobar_16-1604690597047.png

 

Os dados virão dessa maneira, então é preciso separá-los, limpá-los e extrair apenas os que tiverem o valor Trueassociado, quebrando o resultado em linha e eliminando os demais, que é a função do próximo bloco:

dalobar_17-1604690597052.png

 

 

2.3

dalobar_18-1604690597055.png

 

Após a limpeza os dados serão conectados a uma nova macro, na entrada de parâmetro da Macro em Lote que produzimos anteriormente (representada pelo ponto de interrogação de ponta cabeça), além dessa conexão, a entrada da Macro em Lote representada pelo I receberá os dados direto da entrada da Macro.

 

3. Elaboração do Fluxo principal

 

dalobar_19-1604690597063.png

 

 

Após a criação das duas macros, em um terceiro fluxo (este o principal onde ocorrerá a interação do usuário com o resultado final). Devemos inserir a Macro que fará a seleção das colunas e a ligação com a Macro em Lote, nela deverá aparecer as opções de coluna para serem selecionadas.

O fluxo enviará para Macro as colunas selecionadas onde será tratada e entrará na Macro em Lote uma a uma, a Macro em Lote irá receber esses valores e executará o OHE mas somará os resultados (colunas novas) em uma única saída, gerando a Saída para Macro, é recomendado inserir componentes de Navegar ao longo da construção do fluxo para análise dos resultados.

 

Equipe Horus ITs

Rótulos