Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Ideia de Técnica | Engenharia de Recursos
Pré-processamento de Dados
course content

Conteúdo do Curso

Pré-processamento de Dados

Pré-processamento de Dados

1. Breve Introdução
2. Processamento de Dados Quantitativos
3. Processamento de Dados Categóricos
4. Processamento de Dados de Séries Temporais
5. Engenharia de Recursos
6. Passando para as Tarefas

bookIdeia de Técnica

Engenharia de características - é um processo utilizado em aprendizado de máquina que envolve o uso de dados disponíveis para gerar variáveis adicionais que não existem no conjunto de dados original. Essa técnica pode ser aplicada tanto na aprendizagem supervisionada quanto não supervisionada, com o objetivo de otimizar e acelerar o processamento de dados e também melhorar a precisão do modelo. O objetivo é construir novas características que possam aprimorar o poder preditivo do modelo.

Dependendo da tarefa, o algoritmo de preparação de dados pode mudar, mas o pipeline completo de engenharia de características geralmente se apresenta da seguinte forma:

Vamos passar imediatamente para um exemplo simples para entender a essência da abordagem. Podemos criar novas funcionalidades a partir dos dados de preços de ações usando as bibliotecas pandas e numpy:

123456789101112131415161718192021222324
import pandas as pd import numpy as np # Read the dataset df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/9c23bf60-276c-4989-a9d7-3091716b4507/datasets/stock_prices.csv') # Remove missing values df.dropna(inplace=True) # Normalize the data df['price'] = (df['price'] - df['price'].mean()) / df['price'].std() # Create new features df['price_sq'] = df['price'] ** 2 df['price_diff'] = df['price'].diff() df['price_pct_change'] = df['price'].pct_change() # Create interactive features df['price_company_mean'] = df.groupby('company')['price'].transform('mean') df['price_company_std'] = df.groupby('company')['price'].transform('std') # Convert categorical data to numerical data df = pd.get_dummies(df, columns=['company']) print(df)
copy

Neste exemplo, criamos 5 novas funcionalidades com base nas 2 variáveis originais.

Outro exemplo do que novos dados podemos extrair do que já possuímos. Suponha que você tenha um conjunto de dados com vendas online na sua loja. Ele se parece com isto:

Com base na variável 'Date', você pode criar um token booleano para um fim de semana:

Devido a isso, por exemplo, um modelo ARIMA para previsão de vendas funcionará melhor pois será capaz de detectar a relação entre o valor positivo da coluna 'Weekend' e o aumento das vendas.

Vários métodos são utilizados na implementação de engenharia de recursos, incluindo a remoção de valores discrepantes e faltantes, a normalização de dados, a criação de novos recursos baseados em existentes, a conversão de dados categóricos para numéricos, a criação de recursos interativos, entre outros.

Como avaliar a eficácia de novos ou até mesmo de recursos existentes?

  • O desempenho do modelo pode então ser comparado com e sem os novos recursos para ver se eles melhoraram a precisão do modelo;
  • Outra abordagem é usar técnicas de importância de recursos, como a importância de permutação ou pontuações de importância de recursos, para determinar a contribuição de cada recurso para a precisão do modelo.
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 1
some-alt