0Pricing
Learn AI with Python · Aula

Codificação de variáveis categóricas

Codificação de rótulos, codificação one-hot, codificação ordinal e pd.get_dummies() em comparação com OrdinalEncoder do sklearn.

Codificação de variáveis categóricas é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Por que codificar categorias?

A maioria dos modelos de aprendizado de máquina precisa de NUMBERS, e não de rótulos de texto como "vermelho" ou "pequeno". A codificação converte variáveis categóricas em uma forma numérica, preservando seu significado.

Ordinal versus nominal

As categorias ORDINAL têm uma ordem natural (pequeno < médio < grande). As categorias NOMINAL não têm (vermelho, verde, azul). A codificação correta depende do tipo de categoria que você possui.

Codificação por rótulos para dados ordinais

LabelEncoder mapeia cada categoria para um número inteiro. Ele é apropriado para dados ORDINAL, nos quais a ordem dos números inteiros é significativa.

from sklearn.preprocessing import LabelEncoder
sizes = ["small", "large", "medium", "small"]
le = LabelEncoder()
print(le.fit_transform(sizes))   # integers (alphabetical by default)

O perigo com dados nominais

Aplicar a codificação por rótulos a dados NOMINAL é arriscado: o modelo pode interpretar vermelho=0, verde=1, azul=2 como se verde estivesse "entre" vermelho e azul, inventando uma ordem falsa. Em vez disso, use uma coluna binária por categoria.

Codificação de uma coluna por categoria com get_dummies

pd.get_dummies cria uma coluna binária para cada categoria. Exatamente uma coluna recebe o valor 1 por linha, sem ordem implícita, o que é ideal para variáveis nominais.

import pandas as pd
df = pd.DataFrame({"color": ["red", "green", "blue", "red"]})
print(pd.get_dummies(df, columns=["color"]))

A armadilha das variáveis indicadoras

Quando k categorias geram k colunas, elas são perfeitamente colineares (a soma é sempre 1). Essa armadilha das variáveis indicadoras quebra os modelos lineares. Remova uma coluna para corrigi-la.

drop_first

drop_first=True remove uma categoria, deixando k-1 colunas. A categoria removida torna-se a referência implícita (todos os valores são zero), eliminando a colinearidade.

print(pd.get_dummies(df, columns=["color"], drop_first=True))
# one fewer column; the dropped color is the baseline

sklearn OrdinalEncoder

Para fluxos de processamento, OrdinalEncoder é o equivalente do sklearn à codificação por rótulos para FEATURES e permite especificar explicitamente a ordem das categorias.

from sklearn.preprocessing import OrdinalEncoder
enc = OrdinalEncoder(categories=[["small", "medium", "large"]])
print(enc.fit_transform([["medium"], ["large"], ["small"]]))

sklearn OneHotEncoder

OneHotEncoder é a ferramenta de codificação de uma coluna por categoria adequada a fluxos de processamento. Ele aprende as categorias a partir dos dados de treinamento e aplica o mesmo mapeamento a dados novos, algo essencial em produção.

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"], ["green"], ["blue"]]))

Lidando com categorias desconhecidas

Os dados de teste podem conter categorias nunca vistas durante o treinamento. Defina handle_unknown="ignore" para que OneHotEncoder produza todos os zeros em vez de gerar um erro.

ohe = OneHotEncoder(handle_unknown="ignore", sparse_output=False)
ohe.fit([["red"], ["green"]])
print(ohe.transform([["blue"]]))   # all zeros, no error

Colunas de alta cardinalidade

Fazer a codificação de uma coluna com milhares de valores exclusivos faz o número de características crescer enormemente. Para alta cardinalidade, considere a codificação pelo alvo, a transformação por dispersão ou o agrupamento de categorias raras em "outras".

Verificação rápida

Teste seus conhecimentos sobre codificação.

Recapitulação

Kit de ferramentas de codificação:

  • Dados ordinais -> codificação inteira (LabelEncoder / OrdinalEncoder)
  • Dados nominais -> uma coluna binária por categoria (pd.get_dummies / OneHotEncoder)
  • drop_first=True evita a armadilha das variáveis indicadoras
  • handle_unknown="ignore" para categorias de teste desconhecidas
  • Fique atento ao crescimento do número de colunas em dados de alta cardinalidade

Perguntas Frequentes

A aula “Codificação de variáveis categóricas” é grátis?

Sim — o texto completo de “Codificação de variáveis categóricas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Codificação de variáveis categóricas”?

Codificação de rótulos, codificação one-hot, codificação ordinal e pd.get_dummies() em comparação com OrdinalEncoder do sklearn. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Codificação de variáveis categóricas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Detecção e remoção de valores discrepantes
  2. Codificação de variáveis categóricas
  3. Escalonamento de atributos: normalização e padronização
  4. Construindo pipelines de pré-processamento
← Voltar para Learn AI with Python