Pular para o conteúdo principal

Engenharia de recursos em machine learning: Um guia prático

Aprenda a engenharia de recursos com este guia prático. Explore técnicas como codificação, dimensionamento e manipulação de valores ausentes em Python.
Actualizado 20 de mar. de 2025  · 15 min de leitura

A engenharia de recursos consiste em selecionar ou criar recursos significativos que melhorem o desempenho de um modelo. Independentemente do seu algoritmo de ML, você provavelmente dependerá de técnicas de engenharia de recursos para a preparação de dados.

Neste artigo, exploraremos a engenharia de recursos e seus métodos e entenderemos como aplicá-los usando um exemplo prático de previsão de preços de imóveis. 

O que é engenharia de recursos no machine learning?

Lembro-me de criar um modelo para melhorar as taxas de entrega no prazo para um projeto de tempo em trânsito no meu local de trabalho. Em vez de treinar modelos de conjuntos complexos, usamosum algoritmo de regressão simples com apenas três recursos adicionais derivados de dados existentes.

Essa abordagem, por si só, melhorou nossa taxa de entrega no prazo de 48% para 56%. É um grande avanço, considerando 10 milhões de registros. Essa é a grande diferença que as técnicas de engenharia de recursos, como a extração de recursos, podem fazer!

Em termos simples, a engenharia de recursos significa selecionar os recursos certos a partir dos dados existentes.

Considere um conjunto de dados meteorológicos com colunas para temperatura, local, mês, ano e data. A coluna de data pode não agregar valor significativo à captura de tendências de sazonalidade, pois a coluna de mês já fornece essas informações. A remoção da coluna de data pode reduzir a dimensionalidade do conjunto de dados sem afetar negativamente a precisão das previsões meteorológicas.

Torne-se um cientista de ML

Aperfeiçoe suas habilidades em Python para se tornar um cientista de aprendizado de máquina.
Comece a aprender de graça

Tipos de recursos no machine learning

Antes de mergulhar nas diferentes técnicas de engenharia de recursos, vamos primeiro entender os tipos de recursos disponíveis.

Recursos numéricos 

Como o nome sugere, os recursos numéricos representam dados em números. São variáveis quantitativas contínuas. Os exemplos incluem altura, idade e salário. 

Características categóricas

Uma coluna categórica pode conter apenas recursos discretos. Por exemplo, o gênero de uma pessoa é uma coluna categórica, pois só pode ter alguns tipos de gênero. O mês de nascimento é outro exemplo, pois os valores devem estar entre janeiro e dezembro. 

As variáveis categóricas são ainda divididas em tipos binários e não binários. As variáveis binárias têm duas categorias possíveis, enquanto os recursos não binários podem ter várias categorias. 

Recursos textuais e de séries temporais 

As colunas textuais contêm apenas dados de texto. Os exemplos incluem análises de produtos ou colunas de descrição de produtos em um conjunto de dados de varejo. 

Por outro lado, os recursos de séries temporais representam dados oportunos, como vendas semanais ou flutuações de preços de ações ao longo de um ano.

Tipos de recursos no machine learning

Imagem do autor

Técnicas de engenharia de recursos

A engenharia de recursos oferece várias técnicas avançadas para converter colunas brutas em recursos desejáveis. Aqui, discutiremos alguns dos mais importantes. 

Manuseio de valores ausentes

Os valores ausentes podem distorcer o desempenho do modelo, portanto, é fundamental lidar com eles adequadamente. Há duas abordagens principais:

  • Imputação: A imputação é o processo de preenchimento de valores ausentes usando as informações disponíveis. Por exemplo, você pode usar a média, a moda e a mediana para substituir os valores ausentes. 
  • Exclusão: Esse método remove as linhas com valores ausentes e é mais adequado quando os dados ausentes são menores que 10% do tamanho do conjunto de dados. 

Para obter um guia detalhado sobre como lidar com dados ausentes, leia este tutorial Técnicas para lidar com dados ausentes ou explore este curso Lidando com dados ausentes em Python.

Manuseio de valores discrepantes 

Os outliers são valores anormais significativamente diferentes do restante dos pontos de dados. Por exemplo, se você tiver um conjunto de dados de salário com a maioria das observações entre US$ 90 mil e US$ 120 mil, um número de salário como US$ 400 mil ou US$ 10 mil é um valor atípico. 

  • Substituir: Você pode substituir os valores discrepantes por um número estatístico, como o máximo ou o mínimo da coluna.
  • Transformações: Aplique transformações como logaritmo ou raiz quadrada para reduzir o impacto. 
  • Modelos robustos: Use modelos que sejam menos sensíveis a valores discrepantes. As árvores de decisão, o aumento de gradiente e a regressão de cumeeira são menos afetados por outliers. 
  • Excluir: Se nenhum dos métodos funcionar, a última opção é eliminar os outliers do conjunto de dados.

Codificação de variáveis categóricas

Os modelos de machine learning não podem processar diretamente variáveis categóricas, portanto, elas devem ser convertidas em representações numéricas. A seguir, discutiremos algumas técnicas populares de codificação. 

  • Codificação de um ponto: Cada categoria em um recurso categórico é representada como uma coluna separada, com um valor de 1 se a categoria estiver presente na amostra e 0 para todas as outras colunas. O exemplo abaixo explica isso.

Considere um conjunto de dados com o seguinte recurso categórico:

Nome 

Gênero

John 

Masculino

Rachel

Feminino

Emma 

Feminino

Usando a codificação one-hot, criamos colunas separadas para cada categoria possível no recurso Gender:

Nome

Feminino

Masculino

John

0

1

Richale

1

0

Emma

1

0

Como John é do sexo masculino, a coluna "Male" recebe um 1, enquanto a coluna "Female" permanece 0. Da mesma forma, Rachel e Emma são do sexo feminino, portanto a coluna "Female" é 1 e a coluna "Male" é 0.

Para obter um tutorial completo sobre codificação one-hot em Python, confira este Tutorial de codificação one-hot.

  • Codificação de rótulos: A codificação de rótulos atribui um valor numérico exclusivo a cada categoria em um recurso categórico. Essa abordagem é útil para dados ordinais (em que as categorias têm uma ordem significativa), mas pode apresentar problemas em variáveis categóricas não ordinais, pois o modelo pode interpretar erroneamente os valores numéricos como tendo uma classificação inerente.

Considere um conjunto de dados com uma coluna Location contendo valores categóricos:

Localização 

Valor codificado

Nova York 

1

Califórnia 

2

Texas

3

Califórnia

2

Texas

3

Cada local exclusivo é atribuído a um valor numérico distinto. No entanto, como a Califórnia (2) não está inerentemente "entre" Nova York (1) e Texas (3), o uso da codificação de rótulos para dados não ordinais pode levar a suposições de modelo enganosas. Nesses casos, a codificação de um único ponto é geralmente preferida para evitar a implicação de uma relação numérica não intencional entre as categorias.

  • Codificação ordinal: A codificação ordinal é semelhante à codificação de rótulo, mas é usada especificamente quando os valores categóricos têm uma ordem significativa. Em vez de atribuir valores numéricos arbitrários, ele mapeia categorias com base em sua classificação. Isso garante que valores mais altos correspondam a categorias com classificação mais alta.

Considere uma coluna Education level com as seguintes categorias:

Nível de escolaridade

Valor codificado

UG (Graduação)

1

PG (Pós-graduação)

2

PhD

3

Como o PhD representa um nível mais alto de educação do que o PG, que, por sua vez, é mais alto do que o UG, os valores numéricos atribuídos refletem essa classificação.

  • Codificação de destino: Substitui cada valor categórico pela média de seus valores de variável de destino correspondentes. A variável-alvo é a variável dependente que o modelo está tentando prever. Essa técnica é particularmente útil ao lidar com recursos categóricos de alta cardinalidade (ou seja, aqueles com muitos valores exclusivos), pois ajuda a reduzir a dimensionalidade e, ao mesmo tempo, a reter informações relevantes.

Considere um conjunto de dados em que Location é um recurso categórico e o Target variable representa algum resultado numérico:

Localização

Variável-alvo

Nova York 

2

Califórnia 

3

Texas

5

Califórnia

1

Texas

4

Para codificar a coluna Location, calculamos a média do Target variable para cada categoria exclusiva:

  • Califórnia: (3 + 1) / 2 = 2
  • Texas: (5 + 4) / 2 = 4.5
  • Nova York: Apenas um valor (2), portanto, permanece 2

Localização

Valor codificado

Nova York 

2

Califórnia 

2

Texas

4.5

Califórnia

2

Texas

4.5

Se você estiver procurando um guia mais amplo sobre como lidar com dados categóricos, este Tutorial de manipulação de dados categóricos fornece insights adicionais.

Dimensionamento de recursos 

O escalonamento de recursos garante que os recursos numéricos estejam dentro de um intervalo padronizado, evitando que alguns recursos dominem o processo de aprendizado devido a seus valores maiores.

Os modelos de machine learning que dependem de cálculos baseados em distância (por exemplo, regressão linear, k-nearest neighbors e redes neurais) podem ser afetados quando os recursos têm escalas muito diferentes.

Por exemplo, considere um conjunto de dados de funcionários com os seguintes recursos:

  • A idade varia de 20 a 60 anos
  • A renda varia de US$ 30.000 a US$ 150.000

Como a renda tem valores muito maiores do que a idade, um modelo pode atribuir mais importância à renda simplesmente por causa de sua escala, e não porque ela seja realmente mais relevante.

Aqui estão algumas técnicas comuns:

  • Normalização (escalonamento mínimo-máximo): Esse método dimensiona todos os valores de recursos para que fiquem entre 0 e 1. Ele subtrai o valor mínimo da coluna de cada ponto de dados e, em seguida, divide-o pelo intervalo dessa coluna, que é a diferença entre os valores máximo e mínimo. A fórmula é a seguinte:

Valor escalonado =( ponto de dados - min(coluna))/(max(coluna) - min(coluna))

  • Padronização (escala de escore Z): Isso transforma todos os recursos para que tenham uma média de 0 e um desvio padrão de 1. A fórmula é a seguinte: a média de uma coluna é subtraída de cada ponto de dados dessa coluna, e o resíduo é dividido pelo desvio padrão desse recurso. 

Valor escalonado =( ponto de dados - média(coluna))/(std(coluna))

Para obter uma comparação detalhada entre normalização e padronização, consulte o site Normalização vs. padronização. Guia de padronização.

Criação de novos recursos

A criação de recursos novos e significativos a partir de dados existentes fornece insights mais lógicos sobre o modelo. 

Por exemplo, em um conjunto de dados de previsão de preços de imóveis, se você tiver as colunas length e breadth separadamente, poderá derivar um novo recurso: area = length * breath, que pode se relacionar diretamente com a variável de destino, price. A inserção desse recurso area no modelo simplifica a descoberta de padrões ocultos. 

Seleção de recursos

A seleção de recursos mantém apenas os recursos relevantes, removendo colunas desnecessárias. O foco nos dados mais informativos ajuda a evitar o excesso de ajuste, reduz a complexidade computacional e melhora o desempenho do modelo. Aqui estão algumas técnicas:

  • Métodos de filtragem: Esse método seleciona recursos importantes com base em suas propriedades estatísticas. Por exemplo, podemos remover recursos que contêm as mesmas informações usando um mapa de calor de correlação. Outras técnicas incluem teste de qui-quadrado, ANOVA e métodos de ganho de informações.
  • Métodos de wrapper: Esses métodos treinam um modelo preditivo iterativamente usando diferentes combinações de subconjuntos de recursos, e o melhor subconjunto com desempenho otimizado do modelo é escolhido. Os métodos de seleção direta, seleção reversa e eliminação recursiva se enquadram nessa categoria. 

Engenharia de recursos em Python: Um exemplo prático

A engenharia de recursos é melhor compreendida por meio da implementação prática.

A "previsão de preços de imóveis" é um enorme conjunto de dados do mundo real com 81 colunas. Eu o selecionei por sua variedade de recursos, que podem ajudar você a entender melhor as técnicas de engenharia de recursos na prática.

Como começar:

  1. Baixe o conjunto de dados do Kaggle.
  2. Carregue-o em um DataFrame do Pandas para análise e engenharia de recursos.

Manipulação de valores ausentes categóricos

O código a seguir identifica colunas categóricas no conjunto de dados e substitui seus valores ausentes pela categoria mais frequente:

import pandas as pd

# Load dataset (replace 'your_file.csv' with the actual file name)
df = pd.read_csv('your_file.csv')

# Select categorical columns
categorical_cols = df.select_dtypes(include=['object']).columns

# Replace missing values with the most frequent category (mode)
for col in categorical_cols:
    mode = df[col].mode()[0]  # Get the most common value
    df[col].fillna(mode, inplace=True)  # Fill missing values

Tratamento de valores numéricos ausentes

Lidamos com valores numéricos ausentes substituindo-os pela média ou mediana. A média é uma opção mais popular para dados distribuídos estatisticamente, enquanto a mediana funciona bem quando a coluna tem valores discrepantes. Portanto, verificaremos se há valores discrepantes e decidiremos sobre o método. 

Para visualizar possíveis outliers, podemos usar gráficos de caixa, que ajudam a identificar valores extremos. Abaixo você encontra uma implementação em Python para detectar outliers em colunas numéricas selecionadas:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

features = ['LotFrontage', 'MasVnrArea', 'GarageYrBlt']  

# Plot box plots
df[features]=np.log(df[features])
df[features].boxplot(figsize=(8, 4))

plt.title('Box Plot for Outlier Detection')
plt.ylabel('Values')
plt.xticks(rotation=45)
plt.show()

Saída:

Gráfico de caixa para detecção de outlier

Os boxplots acima mostram pontos fora dos bigodes - esses são chamados de outliers. Portanto, vamos substituir os valores ausentes pela mediana.

Código para substituir nulos por valores medianos:

import pandas as pd
# Select numerical columns
numerical_columns = df.select_dtypes(include=['number']).columns
for col in numerical_columns:
    median = df[col].median()  
    df[col].fillna(median, inplace=True)  # Replace nulls with median

Criação de novos recursos

Colunas como YearBuilt, YearRemodAdd, GarageYrBlt e YrSold contêm anos (por exemplo, 2001, 1976) que não influenciam diretamente a variável de destino. Embora esses valores absolutos de ano possam não afetar diretamente os preços dos imóveis, podemos obter insights mais úteis calculando a idade da casa ou da reforma no momento da venda.

Por exemplo, em vez de usar YearBuilt, podemos criar um novo recurso: House Age=YrSold-YearBuilt

Código para criar esses novos recursos:

# Get columns that contain 'Yr' or 'Year'
year_columns = [feature for feature in numerical_columns if 'Yr' in feature or 'Year' in feature]

# Convert year values into age-related features
for col in year_columns:
    df[col] = df['YrSold'] - df[col]

Transformação de recursos

No machine learning, os recursos numéricos distorcidos podem afetar negativamente o desempenho do modelo, especialmente para modelos que assumem uma distribuição normal (por exemplo, regressão linear). Para corrigir isso, aplicamos a transformação de log.

Antes de aplicar uma transformação de log, devemos identificar os recursos distorcidos. No entanto, excluímos as colunas que contêm zeros, pois o logaritmo de zero é indefinido.

Aqui está uma implementação em Python para que você identifique colunas distorcidas:

import pandas as pd

# Get numerical columns
numerical_columns = df.select_dtypes(include=['number']).columns

# Identify columns containing zeros
numerical_0s = df.loc[:, (df == 0).any()].select_dtypes(include=['number']).columns

# Remove columns that contain zeros from consideration
numerical_columns = numerical_columns.difference(numerical_0s)

# Calculate skewness for the remaining numerical columns
skewness = df[numerical_columns].skew()

# Set threshold for skewness (e.g., absolute value > 1 indicates high skewness)
skewed_columns = skewness[abs(skewness) > 1]

# Display skewed columns
print("Skewed Columns:")
print(skewed_columns)

Saída:

Usaremos a distribuição log-normal para converter essas cinco colunas distorcidas emuma distribuição gaussiana:

import numpy as np

# The list of highly skewed features identified earlier
skew_features = ['LotFrontage', 'LotArea', '1stFlrSF', 'GrLivArea', 'SalePrice']

# Apply log transformation to each skewed feature
for col in skew_features:
    df[col] = np.log(df[col])

Converter características categóricas em valores numéricos

Discutimos anteriormente várias técnicas de codificação; neste exemplo, aplicaremos a codificação de destino.

# Select categorical variables
categorical_columns = df.select_dtypes(include=['object', 'category']).columns

# Apply target encoding
for col in categorical_columns:
    # Compute mean SalePrice for each category
    labels_ordered = df.groupby([col])['SalePrice'].mean().sort_values().index
    
    # Assign numerical values based on target variable mean
    labels_ordered = {x: i for i, x in enumerate(labels_ordered, 0)}
    
    # Map encoded values back to the dataframe
    df[col] = df[col].map(labels_ordered)

No código acima, a variável de destino é SalePrice, portanto, agrupamos os dados por cada coluna categórica e calculamos a média SalePrice para cada grupo. Esses valores médios foram então atribuídos aos valores categóricos correspondentes nessa coluna.

Agora, nosso conjunto de dados está pronto para o machine learning! 

Se você quiser aumentar sua compreensão dos conceitos de aprendizagem supervisionada e de como os modelos utilizam recursos projetados, este curso de aprendizagem supervisionada com Scikit-Learn é umexcelente recurso.

Ferramentas e bibliotecas para engenharia de recursos

Nesta seção, examinaremos as bibliotecas Python e as ferramentas de automação mais usadas para implementar a engenharia de recursos. 

Pandas

O Pandas é a estrutura Python mais usada para lidar com dados estruturados. Ele executa várias etapas de engenharia de recursos, como transformação, agregação de dados e extração de recursos. O Pandas também facilita a limpeza e a manipulação de dados.

Se você ainda não conhece o pandas, este curso Manipulação de dados com pandas é um ótimo ponto de partida.

Scikit-Learn

O Scikit-learn é uma biblioteca avançada de machine learning com várias ferramentas para engenharia de recursos. Ele contém métodos como OneHotEncoder e LabelEncoder para converter variáveis categóricas em numéricas. Ele também oferece métodos de dimensionamento de recursos, como StandardScaler e Minmaxscaler

Mecanismo de recursos

Feature-engine é uma biblioteca Python de código aberto que oferece uma variedade de transformadores para simplificar a engenharia de recursos. Esses transformadores são ferramentas especializadas para tarefas específicas, como imputação de dados ausentes, tratamento de outlier, seleção de recursos e discretização. Totalmente compatíveis com o scikit-learn, esses transformadores podem ser passados como parâmetros de entrada para ajuste de hiperparâmetros.

Ferramentas automatizadas de engenharia de recursos

  • Ferramentas de recursos: Featuretools é uma biblioteca de código aberto para automatizar a engenharia de recursos. A estrutura é usada principalmente para criar novos recursos a partir de um banco de dados relacional. Ele se baseia no algoritmo DFS (síntese profunda de recursos), que cria novos recursos com base em operações de transformação e agregação. 
  • TSFresh: O TSFresh, conhecido como Time Series Feature Extraction based on Scalable Hypothesis Tests, foi especialmente projetado para extrair recursos significativos de dados de séries temporais. A biblioteca realiza testes de hipóteses para selecionar recursos estatisticamente significativos para a previsão. 
  • Autofeat: Abiblioteca Autofeatautomatiza a seleção, a criação e a transformação de recursos para melhorar a precisão do modelo linear. Por exemplo, em vez de fit(), a biblioteca oferece um método fit_transform() que executa simultaneamente operações de ajuste e transformação nos dados de entrada. Além disso, os modelos FeatureSelector e AutoFeatLight estão disponíveis para seleção e dimensionamento de recursos.

Práticas recomendadas para engenharia de recursos

Para implementar com eficácia a engenharia de recursos, concentre-se nestas práticas recomendadas.

Conheça seus dados

Compreender o significado e a importância de cada recurso torna muito mais fácil para você executar técnicas como seleção ou extração de recursos. Sugiro que você pesquise seus dados e o conhecimento de domínio relevante para uma engenharia de recursos eficaz.

Conduzir análise exploratória de dados (EDA)

Utilize as bibliotecas Python, como Pandas e Matplotlib, para realizar análises exploratórias de dados abrangentes,como explorar informações estatísticas, visualizações e correlações para encontrar padrões e possíveis relações nos dados.

Criar recursos de interação

A criação de recursos de interação envolve a identificação de relações entre os recursos existentes e a derivação de novos recursos. Por exemplo, na previsão de preços de imóveis, o cálculo da idade de um imóvel subtraindo o ano em que foi construído do ano atual destaca tendências, como a diminuição dos preços dos imóveis com o passar do tempo. 

Escolha seu modelo com antecedência

Diferentes modelos de machine learning exigem diferentes etapas de engenharia de recursos. Por exemplo, modelos como regressão linear ou múltipla, SVM e KNN geralmente se beneficiam da padronização de recursos, mas essa técnica não ajuda os modelos baseados em árvores. 

Portanto, decidir o modelo com antecedência pode ajudar você a criar um pipeline de engenharia de recursos eficaz para o seu caso de uso. 

Conclusão

A engenharia de recursos é parte integrante da criação de soluções de machine learning, permitindo que você aproveite os recursos da maneira mais eficiente. O processo é realizado por cientistas de dados ou engenheiros de ML ao lidar com qualquer conjunto de dados. Se você é um profissional de dados ou pretende se tornar um, dominar todas as técnicas mencionadas neste artigo o ajudará a avançar em sua carreira!

Para explorar essas técnicas em mais detalhes, confira oscursos do DataCampsobre engenharia de recursos para machine learning e engenharia de recursos para NLP. Há também um curso sobre engenharia de recursos para programadores de R.

Desenvolver habilidades de aprendizado de máquina

Eleve suas habilidades de aprendizado de máquina ao nível de produção.

Perguntas frequentes

Como a engenharia de recursos é diferente da seleção de recursos?

A engenharia de recursos envolve a criação de novos recursos ou a transformação dos existentes para melhorar o desempenho do modelo. A seleção de recursos, por outro lado, é o processo de escolher os recursos mais relevantes e descartar os irrelevantes ou redundantes para evitar o excesso de ajuste e reduzir a complexidade do modelo.

A engenharia de recursos pode ser automatizada?

Sim! Ferramentas automatizadas de engenharia de recursos, como FeatureTools, bibliotecas AutoML (por exemplo, Auto-sklearn, H2O.ai) e tabelas AutoML do Google, podem criar e transformar recursos automaticamente, economizando tempo e esforço. No entanto, o conhecimento do domínio ainda é crucial para interpretar e selecionar os melhores recursos.

Como a engenharia de recursos afeta a interpretabilidade do modelo?

A engenharia de recursos pode melhorar ou reduzir a interpretabilidade, dependendo das técnicas usadas. Por exemplo:

  • A criação de recursos significativos (por exemplo, "Idade da casa" em vez de "Ano de construção") melhora a interpretabilidade.
  • A aplicação de transformações como a PCA (Análise de Componentes Principais) pode tornar os recursos menos interpretáveis, mas melhora o desempenho do modelo.

A engenharia de recursos depende do tipo de modelo de machine learning?

Sim! Diferentes modelos se beneficiam de diferentes técnicas de engenharia de recursos:

  • Modelos lineares (por exemplo, regressão linear, regressão logística) - Exigem escalonamento de recursos e geralmente se beneficiam de transformações polinomiais de recursos.
  • Modelos baseados em árvores (por exemplo, Árvores de decisão, Random Forest, XGBoost) - Lidam bem com dados não dimensionados e geralmente se beneficiam mais da seleção de recursos do que das transformações.
  • Modelos de aprendizagem profunda - Prefira recursos brutos e transformações como camadas de incorporação ajudam com dados categóricos.

O que é o cruzamento de recursos e quando devo usá-lo?

O cruzamento de recursos é o processo de combinação de dois ou mais recursos para criar um novo recurso que capture as interações entre eles. Exemplo:

  • Em vez de usar "Age" (Idade) e "Income" (Renda) separadamente, crie a "Income-to-Age Ratio" (Razão entre Renda e Idade) para captar a estabilidade financeira entre as faixas etárias.
  • Use o cruzamento de recursos quando as relações entre as variáveis afetarem a variável-alvo de forma não linear.

Como posso avaliar se um recurso melhora o desempenho do modelo?

Você pode avaliar a importância do recurso usando:

  • Importância da permutação - mede como o embaralhamento de um recurso afeta a precisão do modelo.
  • Importância de recursos em modelos baseados em árvores - Muitos modelos, como o Random Forests, fornecem pontuações de importância de recursos incorporadas.
  • Desempenho de validação cruzada - Compare a precisão do modelo com e sem um recurso.

O que é engenharia de recursos de interação?

A engenharia de recursos de interação envolve a criação de novos recursos com base nas interações entre os recursos existentes. Isso pode incluir:

  • Multiplicação (recursos do produto): Combinação de dois recursos (por exemplo, "Altura × Peso" para IMC).
  • Proporções: Dividir um recurso por outro (por exemplo, "Preço por pé quadrado").
  • Características polinomiais: Elevar os recursos a uma potência (por exemplo, "Idade²" para relacionamentos não lineares).

Como você lida com variáveis categóricas com alta cardinalidade?

Para variáveis categóricas com muitos valores exclusivos (por exemplo, códigos postais, IDs de usuário):

  • Codificação de destino: Substitua as categorias pela média da variável de destino.
  • Camadas de incorporação (para aprendizagem profunda): Aprenda representações de categorias em dimensões inferiores.
  • Codificação de hashing: Atribua categorias a compartimentos usando uma função de hash.

Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana é redatora freelancer de tecnologia e tem um diploma de quatro anos em Ciência da Computação. Escrever sobre vários tópicos, incluindo ciência de dados, computação em nuvem, desenvolvimento, programação, segurança e muitos outros, é algo natural para ela. Ela gosta de literatura clássica e de explorar novos destinos.

Temas

Aprenda mais sobre machine learning com estes cursos!

Curso

Preprocessing for Machine Learning in Python

4 hr
54.6K
Learn how to clean and prepare your data for machine learning!
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado
Machine Learning

blog

25 projetos de aprendizado de máquina para todos os níveis

Projetos de aprendizado de máquina para iniciantes, estudantes do último ano e profissionais. A lista consiste em projetos guiados, tutoriais e exemplos de código-fonte.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Tutorial

Uma introdução ao Q-Learning: Um tutorial para iniciantes

Saiba mais sobre o algoritmo mais popular de aprendizado por reforço sem modelo com um tutorial em Python.
Abid Ali Awan's photo

Abid Ali Awan

11 min

Tutorial

Tutorial de manipulação de dados categóricos de aprendizado de máquina com Python

Aprenda os truques comuns para lidar com dados categóricos e pré-processá-los para criar modelos de aprendizado de máquina!
Moez Ali's photo

Moez Ali

14 min

Python

Tutorial

Tutorial para entender a regressão logística em Python

Aprenda sobre a regressão logística, suas propriedades básicas e crie um modelo de aprendizado de máquina em um aplicativo do mundo real em Python.
Avinash Navlani's photo

Avinash Navlani

10 min

Tutorial

21 ferramentas essenciais do Python

Aprenda sobre as ferramentas Python essenciais para o desenvolvimento de software, raspagem e desenvolvimento da Web, análise e visualização de dados e aprendizado de máquina.
Abid Ali Awan's photo

Abid Ali Awan

6 min

Tutorial

Desenvolvimento de back-end em Python: Um guia completo para iniciantes

Este guia completo ensina a você os fundamentos do desenvolvimento de back-end em Python. Aprenda conceitos básicos, estruturas e práticas recomendadas para você começar a criar aplicativos da Web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

15 min

Ver maisVer mais