Label Encoder vs One Hot Encoder em Machine Learning [2022]

Publicados: 2021-01-04

Os modelos de aprendizado de máquina implantados em vários aplicativos geralmente exigem uma série de conversões de dados categóricos ou focos de texto para a descrição numérica. Para atender às necessidades de conversão, são usados ​​dois tipos de codificadores, ou seja , codificadores de etiqueta e um codificador a quente .

A parte complicada é quando escolher o codificador de etiquetas e quando escolher um codificador quente . A escolha da decisão impacta o modelo e também forma o básico de muitas perguntas geralmente feitas para cientistas de dados e entusiastas de aprendizado de máquina.

A escolha da codificação afeta vividamente o quociente de precisão do modelo e, portanto, pode levar a uma solução otimizada. Para entender a diferença que isso fará nos modelos, precisamos entender os codificadores de etiquetas e um codificador a quente .

Através de um gráfico de conhecimento em Inteligência Artificial e Aprendizado de Máquina, um aspecto que a maioria de nós reconheceria é que a maioria dos algoritmos trabalha razoavelmente com entradas numéricas. Assim, o desafio central enfrentado por um analista é transformar dados de texto em dados numéricos e, no entanto, fazer um modelo formular um ponto a partir disso.

Índice

Codificador de Etiquetas

Label Encoding cita a transmogrificação dos rótulos na forma numérica para transformá-la em uma forma que possa ser lida pela máquina. Os algoritmos de aprendizado de máquina podem determinar de maneira correta como esses rótulos devem ser gerenciados. É uma medida crucial de pré-processamento durante o conjunto de dados integrado no aprendizado supervisionado.

Por exemplo, temos um conjunto de dados que possui uma comparação de uma determinada qualidade em uma determinada habilidade na forma de uma comparação superlativa entre irmãos. O conjunto de dados é bom, melhor, melhor. Após a aplicação de um codificador de rótulo, cada qualidade receberá um rótulo 0,1,2 respectivamente. O rótulo para boa qualidade é 0, para melhor o rótulo é 1 e para melhor qualidade, o rótulo é 2.

O exemplo acima mencionado foi básico em termos do conjunto de dados. A conversão pode ser de qualquer conjunto de dados, seja de altura, idade, cor dos olhos, tipo de íris, sintomas, etc.

A codificação de rótulos em Python pode ser implementada usando a Biblioteca Sklearn. Sklearn fornece um método muito eficaz para codificar as categorias de características categóricas em valores numéricos. O codificador de etiquetas codifica etiquetas com crédito entre 0 e n-1 classes onde n é o número de etiquetas diversas. Se um rótulo reiterar, ele indica o mérito exato para conforme indicado anteriormente.

E para renovar esse tipo de dado de texto categórico em dados que podem ser entendidos por dados numéricos do modelo, usamos a classe Label Encoder. Precisamos rotular codificar a coluna inicial, importar a classe LabelEncoder da biblioteca sklearn, equipar e renovar a seção inicial dos dados e, em seguida, reabilitar os dados de texto que ocorrem com os dados codificados frescos.

Esta é uma breve descrição da codificação de rótulos. Apoiando-se nos dados, a codificação de rótulos inicia um novo dilema. Para ilustração, codificamos vários nomes de reinos em dados numéricos. Trata-se de dados inteiramente categóricos e não há associação, de forma alguma, entre as linhas.

Para resolver este obstáculo existe a necessidade de adotar uma nova técnica de codificação. O dilema aqui é que, como há várias quantidades em uma seção semelhante, o protótipo julgará mal os dados para estarem na mesma ordem, 0 < 1 < 2. Mas esse não é o problema. Para mitigar essa dificuldade, empregamos um codificador a quente.

Leitura obrigatória: ideias de projetos de aprendizado de máquina

Um codificador quente

One-Hot Encoding é outro protocolo proeminente para lidar com variáveis ​​categóricas. Apenas estabelece as seguintes características estabelecidas no volume de valores distintos na característica categórica. Valores distintos inteiros na classificação serão ampliados como um esboço. Uma codificação a quente pega uma seção que possui dados categóricos, que possui um rótulo existente codificado e, em seguida, divide a seção em várias seções. Os volumes são reconstruídos por 1s e 0s, contando com qual seção tem qual valor.

O codificador one-hot não aprova matrizes 1-D. A entrada deve ser sempre uma matriz 2-D.

Os dados ratificados para o codificador não devem incluir strings.

Grande parte dos algoritmos de aprendizado de máquina predominantes não podem ser comprometidos com dados categóricos. Em vez disso, os dados categóricos precisam ser modificados para dados numéricos. A codificação one-hot é uma das estratégias utilizadas para realizar essa conversão. Essa técnica é utilizada principalmente onde os métodos de aprendizado profundo são correlacionados a problemas de sucessão sequencial.

A codificação one-hot é praticamente a manifestação de variáveis ​​categóricas como vetores binários. Os valores categóricos são inicialmente mapeados para valores inteiros. Cada valor inteiro é exemplificado como um vetor binário que é todo 0s.

Mas o que acontecerá se tivermos vários arquivos para lidar?

O Scikit-learn é suscetível ao arranjo de seções, portanto, se o conjunto de dados de treinamento e os conjuntos de dados de teste tiverem contradições nele, os resultados serão um absurdo. Isso pode acontecer se um categórico tiver vários números de valores nos dados de treinamento versus os dados de teste.

Certifique-se de que os dados de teste sejam codificados de maneira idêntica aos dados de treinamento com o comando align. O comando align dá a segurança de que as seções apareçam no decreto exato em ambos os conjuntos de dados.

Leia: Modelos de aprendizado de máquina

Conclusão

O globo está repleto de dados categóricos. Um analista será um cientista de dados muito mais benéfico se você souber como usar esses dados. Portanto, qualquer pessoa que pretenda trabalhar em tais modelos deve estar bem familiarizada com o uso do codificador de etiquetas e um codificador quente em aprendizado de máquina.

Se você estiver interessado em aprender mais sobre aprendizado de máquina, confira o PG Diploma in Machine Learning & AI do IIIT-B e upGrad, projetado para profissionais que trabalham e oferece mais de 450 horas de treinamento rigoroso, mais de 30 estudos de caso e atribuições, IIIT- B Status de ex-aluno, mais de 5 projetos práticos práticos e assistência de trabalho com as principais empresas.

Quais algoritmos exigem o uso de uma codificação quente?

Um processo de codificação a quente é usado para lidar com variáveis ​​categóricas. Esse processo converte as variáveis ​​categóricas para tornar mais fácil para os algoritmos de aprendizado de máquina usar as variáveis ​​para uma melhor previsão. Os algoritmos que aceitam apenas valores numéricos como entradas requerem apenas um processo de codificação a quente para converter as variáveis ​​categóricas. Alguns desses algoritmos de aprendizado de máquina são regressão logística, regressão linear, máquina de vetor de suporte, etc. No entanto, alguns algoritmos, como Cadeia de Markov, Naive Bayes, etc., não requerem codificação porque são capazes de lidar com distribuições discretas conjuntas.

Quando é preferível usar uma codificação quente no aprendizado profundo?

One Hot Encoding é uma poderosa abordagem de pré-processamento e transformação de dados que ajuda os modelos de ML a compreender os dados fornecidos. Basicamente, uma codificação a quente é usada quando o algoritmo de ML é incapaz de trabalhar com variáveis ​​categóricas, portanto, uma codificação a quente as converte em uma forma adequada. O uso de uma hot encoding é o mais preferido quando as características das variáveis ​​categóricas a serem convertidas não são ordinais. Além disso, uma codificação a quente funciona efetivamente quando o número de recursos categóricos presentes no conjunto de dados fornecido é muito menor.

O que significa o termo armadilha de variável fictícia?

A armadilha de variável fictícia é um dos problemas enfrentados pelo processo de codificação one-hot. Quando um conjunto de dados categórico tem variáveis ​​fortemente vinculadas, isso ocorre. Como consequência, o resultado de uma variável pode ser facilmente antecipado usando as variáveis ​​restantes quando o procedimento de codificação a quente é usado. Como resultado do Dummy Variable Trap, surge outro problema conhecido como multicolinearidade.