Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

A codificação categórica é uma técnica para codificar dados categóricos. Tenha em mente que os dados categóricos são os conjuntos de variáveis que contêm variáveis de etiqueta em vez de valores numéricos. Muitos algoritmos de aprendizagem de máquina são incapazes de processar variáveis categóricas. Portanto, é importante codificar os dados em uma forma adequada para que você possa pré-processar essas variáveis. Como você precisa se ajustar e avaliar seu modelo, você deve codificar os dados categóricos e converter todas as variáveis de entrada e saída em numéricas. Conseqüentemente, o modelo será capaz de compreender e extrair as informações que geram a saída desejada. Um conjunto diferente de dados varia de acordo com o número de valores possíveis.

A maioria das variáveis categóricas são nominais. Estas variáveis ajudam a categorizar e rotular os atributos. As variáveis contêm valores diferentes, e cada valor representa uma categoria separada. Por exemplo, a cor é uma variável, e inclui valores diferentes como azul, verde, amarelo. Da mesma forma, um animal de estimação é uma variável, mas gatos e cães são valores separados que representam categorias diferentes. Em outro exemplo, um lugar é uma variável, mas o primeiro, o segundo e o terceiro são os valores. Estas categorias podem ou não ter uma relação natural entre si. No exemplo acima de um lugar, você pode ver que o lugar é uma variável e que suas categorias estão na ordem natural. Você pode se referir a estes tipos de variáveis como uma variável ordinal.

Converter dados de etiqueta em numéricos

Há duas etapas para converter dados de etiqueta ou categóricos em dados numéricos:

1. Codificação de números inteiros

Nesta primeira etapa, você atribuirá o valor inteiro para cada valor de categoria. Por exemplo, azul é 1, verde é 2, e amarelo é 3. Você pode facilmente reverter este tipo de codificação. Você também pode se referir à codificação de números inteiros como codificação de etiquetas. Para muitas variáveis, esta etapa é suficiente para processar através do modelo. Existe uma relação ordenada natural entre diferentes valores inteiros. Você pode conectar a relação através de um algoritmo de aprendizagem da máquina. Por exemplo, se você considerar as variáveis ordinais, como lugar, as categorias já estão em ordem. Portanto, você não tem que encontrar a relação entre as variáveis. Portanto, a codificação de etiquetas seria suficiente.

2. Codificação em um único ponto

As variáveis categóricas não incluem nenhuma relação entre variáveis como as variáveis ordinais. Portanto, você precisa levar o processo de codificação para outro nível. Para estes tipos de dados, a codificação de números inteiros não é suficiente. Mesmo se você codificar os dados sem ordem natural, as categorias não se alinharão entre si. Por causa do mau desempenho, o resultado será inesperado.

Subseqüentemente, a codificação de um único ponto é uma técnica a ser aplicada à representação de números inteiros. Ao codificar os dados usando durante esta etapa, o modelo removerá as variáveis inteiras. Então, ele incluirá uma nova variável binária para cada valor inteiro único. Por exemplo, se considerarmos a variável de cor, você precisará codificar 3 categorias. Alcançando esse resultado, você colocará o valor “1” para a variável binária de cor e “0” para a outra.

Como codificar uma codificação a quente

Você pode entender o processo de codificação com o seguinte exemplo. A fim de tornar as tarefas simples e rápidas, você deve utilizar bibliotecas. As bibliotecas são códigos pré-escritos que ajudam a otimizar suas tarefas. Sem utilizar bibliotecas relevantes, suas tarefas se tornarão tediosas. Comece por incluir três bibliotecas comuns no projeto. Estas bibliotecas são sklearn, NumPy e pandas.

do sklearn.preprocessing import LabelEncoder, OneHotEncoder
importação NumPy como np
pandas de importação como pd

Uma vez equipadas as ferramentas, você pode começar a codificar. Para entender o conceito, utilize este conjunto de dados inventado. Use a biblioteca do panda para inserir o conjunto de dados. Você usará .read_csv e o nome do arquivo para abrir o arquivo.

conjunto de dados = pd.read_csv(‘made_up_thing.csv’)

Até agora, você realizava tarefas auto-explicativas. Entretanto, a próxima etapa será um pouco mais complicada. Quando você considera uma planilha como uma entrada, você se importa ou não com algumas colunas. Para manter o processo simples, vamos aceitar todas as colunas, exceto a última. Depois de considerar as colunas a incluir, adicione o .iloc. É uma característica da biblioteca dos pandas. Você o utilizará para escolher os dados de uma coluna específica.

X = conjunto de dados.iloc[:, :-1].valores

Após selecionar o segmento, no código acima, incluiremos os valores usando a função .valores. Você pode entendê-lo, pois a primeira parte deste código selecionará os valores, e a segunda parte considerará os valores desta seção.

Neste exemplo, você inclui um codificador de etiquetas juntamente com um codificador quente. Como um codificador quente converte números em binários, e você inclui categoria como os dados, primeiro você tem que converter as categorias em números. Portanto, usaremos um codificador de etiquetas antes de um codificador a quente. Agora, configure o codificador de etiquetas usando o seguinte código:

le = LabelEncoder()

Após converter as categorias em números, use a função .fit_transform do sklearn. Como o sklearn é uma biblioteca de codificação de uma só vez, ele irá converter esses números em binários para que o modelo possa entender. Use o seguinte código para codificar as primeiras colunas:

X[:, 0] = le.fit_transform(X[:, 0])

Agora você deve incluir um codificador de código para completar a codificação.

ohe = OneHotEncoder(categorical_features = [0])
X = ohe.fit_transform(X).toarray()

Categorical_features é uma função para especificar a coluna a ser codificada com codificação em um ponto. Como estamos codificando a primeira coluna, incluímos [0]. Agora a função fit_transform converterá as variáveis selecionadas em binário.

Terminamos com a conversão. Tenha em mente que incluímos 0 para a primeira coluna. Se você quiser incluir mais colunas, você deve adicionar o número da coluna. Para adicionar mais de uma coluna, você deve adicionar um “para loop”, como segue:

le = LabelEncoder()# para 10 colunas
para i no alcance(10):
X[:,i] = le.fit_transform(X[:,i])

Conclusão

Para resumir, a codificação categórica é uma técnica que converte dados categóricos em binários. Como o modelo de aprendizagem da máquina não pode processar dados categóricos, você deve convertê-los em numéricos ou binários, dependendo do algoritmo. Há duas etapas para encobrir dados categóricos ou rotular dados em dados binários. A codificação de etiquetas é a primeira técnica para a codificação categórica. Ela transforma os dados em forma numérica. Use a codificação de etiquetas para dados ordinais. Para dados não ordinais, use a técnica de codificação de uma só vez. Este é um método eficaz para converter seus dados em forma binária.