cliente_id
Distingue linhas, mas a distância entre 101 e 102 geralmente não carrega informação útil.
normalmente remover de XMACHINE LEARNING · PREPARAÇÃO DE DADOS
Preparar dados significa transformar registros brutos em entradas coerentes, numéricas e compatíveis com o algoritmo, sem permitir que informações do teste vazem para o treinamento.
Entendersignificado, unidade e tipo
Limparausências, duplicatas e erros
Transformarcodificar e ajustar escalas
Validartreino, validação e teste
01 · PRIMEIRO: LEIA A TABELA
Uma coluna inteira pode ser uma contagem, uma categoria codificada ou apenas um identificador. O tratamento correto muda em cada caso.
| cliente_id | renda_mensal | atrasos | escolaridade | cidade | aprovado |
|---|---|---|---|---|---|
| 101 | R$ 4.850,50 | 2 | Superior | Uberaba | Sim |
| 102 | R$ 2.100,00 | 5 | Médio | Franca | Não |
| 103 | — | 0 | Fundamental | Uberlândia | Não |
Distingue linhas, mas a distância entre 101 e 102 geralmente não carrega informação útil.
normalmente remover de XValor medido que pode assumir casas decimais. Precisa converter moeda e tratar a ausência.
"R$ 4.850,50" → 4850.50Contagem inteira: 0, 1, 2… É numérica e sua diferença possui significado.
5 − 2 = 3 atrasosEscolaridade possui ordem; cidade é nominal. Elas não devem receber a mesma codificação automaticamente.
ordinal ≠ nominal02 · FLUXO DE TRATAMENTO
X contém as características usadas para prever. y é a resposta esperada: classe, valor contínuo, contagem etc.
X = [renda, atrasos, escolaridade, cidade]
y = aprovadoFaça a separação antes de aprender média, desvio, categorias ou qualquer estatística de transformação.
dados → treino | validação | testeA média usada para imputar, a escala e o vocabulário de categorias são aprendidos no conjunto de treino.
transformador.fit(X_treino)Validação, teste e dados futuros recebem exatamente o transformador já ajustado.
X_teste_pronto = transformador.transform(X_teste)03 · PRINCIPAIS TRATAMENTOS
Investigue por que faltam. Depois remova, use constante ou impute com mediana, média, moda ou outro método.
renda ausente → mediana do treinoUse Ordinal Encoding somente quando existe ordem. Para categorias nominais, One-Hot é uma opção comum.
cidade → três colunas 0/1Padronização ajuda modelos baseados em distância, gradiente, produto escalar e regularização.
z = (x − μ) / σDiferencie valor extremo verdadeiro de erro de cadastro. Corrigir, limitar ou manter exige contexto.
idade = 250 → verificar origemLIMPEZA E DESEMPENHO COMPUTACIONAL
O custo de treinamento cresce com a quantidade de exemplos, características e bytes processados. Limpar não serve somente para melhorar a qualidade estatística: também pode reduzir memória, leituras do disco, multiplicações e tempo de cada época.
Duplicatas fazem o algoritmo processar o mesmo exemplo várias vezes e ainda podem dar peso exagerado a um caso repetido.
1.000.000 − 200.000 duplicatas
= 800.000 linhasIDs, campos constantes e informações sem relação com o alvo aumentam matrizes e cálculos sem necessariamente fornecer sinal ao modelo.
cliente_id → avaliar e remover de XNúmeros guardados como texto precisam ser interpretados repetidamente. Convertê-los permite operações numéricas vetorizadas e representações compactas.
"R$ 4.850,50" → 4850.50Imagens, textos e categorias podem ser reduzidos ou representados de forma esparsa quando a tarefa permitir, evitando carregar milhares de zeros.
matriz esparsa: guardar só ≠ 0| Problema | Antes | Transformação | Por que pode ficar mais rápido? | Cuidado necessário |
|---|---|---|---|---|
| Linhas duplicadas | 1 milhão de registros; 200 mil repetidos | Deduplicar → 800 mil registros | Cerca de 20% menos exemplos processados por época. | Repetições podem ser eventos reais; confirme a chave da duplicidade. |
| Número armazenado como texto | "1.250,75" | Converter para número | Evita parsing repetido e permite cálculo numérico eficiente. | Trate moeda, separadores e unidades antes da conversão. |
| ID com alta cardinalidade | 100 mil clientes diferentes | Remover o ID quando ele apenas identifica a linha | Evita um One-Hot com até 100 mil colunas sem significado preditivo. | Não remova uma variável que realmente carregue informação válida. |
| Imagem maior que a entrada do modelo | 4.000 × 3.000 = 12 milhões de pixels | Redimensionar para 224 × 224 = 50.176 pixels | Aproximadamente 239 vezes menos pixels por imagem. | Reduzir demais pode apagar detalhes importantes. |
| Coluna constante | país = "Brasil" em todas as linhas | Remover da matriz de entrada | Economiza armazenamento e operações; a coluna não separa exemplos. | Confirme se continuará constante nos dados futuros. |
Uma época percorre todas as linhas, inclusive duplicatas, e todas as características, inclusive colunas sem informação.
custo aproximado ∝ linhas × característicasCom 20% menos linhas repetidas e 10 de 50 colunas inúteis removidas:
antes: 1.000.000 × 50 = 50 milhões
depois: 800.000 × 40 = 32 milhões
36% menos valores por época04 · ESCALA COM NÚMEROS
| renda | atrasos |
|---|---|
| 2.000 | 1 |
| 5.000 | 3 |
| 8.000 | 5 |
Em uma distância euclidiana, a renda pode dominar quase toda a comparação.
| renda_z | atrasos_z |
|---|---|
| −1,225 | −1,225 |
| 0 | 0 |
| 1,225 | 1,225 |
z = (x − média) / desvioCentraliza usando a média e divide pelo desvio padrão.
média ≈ 0 · desvio ≈ 1Mapeia o intervalo observado no treino, geralmente para [0,1].
x'=(x−mín)/(máx−mín)Usa mediana e intervalo interquartil, sendo menos influenciado por extremos.
x'=(x−mediana)/IQR05 · EMBEDDINGS, VETORES E GRAFOS
Alguns dados não chegam como medidas prontas. Palavras, produtos, imagens e usuários precisam ser representados de uma forma que permita ao algoritmo calcular semelhança e aprender padrões.
VETORES · COMO O ALGORITMO COMPARA?
Mede a distância em linha reta. Quanto menor, mais próximos são os vetores.
d(a,b) = √Σ(aᵢ−bᵢ)²Compara o ângulo e reduz a influência do comprimento do vetor.
cos(a,b) = (a·b) ÷ (‖a‖‖b‖)Combina direção e magnitude. É comum em atenção e recomendação.
a·b = ΣaᵢbᵢConsulta q = [1; 0], produto A [0,9; 0,1] e produto B [0,2; 0,8].
GRAFOS · COMO ACELERAR A BUSCA?
Em uma busca exata ingênua, uma consulta é comparada com cada item. Em bases grandes, índices aproximados organizam atalhos para visitar somente uma parte promissora do espaço.
Para N vetores de dimensão d, o custo aproximado de uma varredura é:
comparações ≈ N × dVantagem: encontra o vizinho exato.Cada vetor vira um nó; arestas ligam vizinhos. A busca navega por camadas e conexões em direção às regiões mais próximas.
Vantagem: menor latência em bases grandes.Índice vetorial em grafo: as arestas são criadas para acelerar a busca por similaridade, como no HNSW. Dado naturalmente em grafo: as arestas já existem no problema — amizade, compra, citação ou transação. Nesse segundo caso, podemos criar características de conectividade, embeddings de nós ou usar redes neurais de grafos.
PIPELINE CORRETO
06 · QUAL MODELO PRECISA DO QUÊ?
“Precisa” abaixo significa a prática geral da implementação comum; bibliotecas específicas podem oferecer suporte adicional.
| Modelo | Categorias em texto | Escala numérica | Ausências | Observação |
|---|---|---|---|---|
| Regressão linear / logística | Codificar | Recomendada | Tratar | One-Hot para nominais; escala é especialmente útil com regularização. |
| SVM | Codificar | Muito importante | Tratar | Margens e kernels são sensíveis à escala. |
| k-NN / k-means / LVQ / RBF | Codificar | Essencial | Tratar | Distâncias ficam distorcidas quando uma coluna domina a escala. |
| MLP / Perceptron / ADALINE | Codificar | Recomendada | Tratar | Escalas semelhantes favorecem o gradiente e a convergência. |
| Árvore / Random Forest | Depende da biblioteca | Geralmente dispensável | Depende | No scikit-learn, categorias normalmente precisam virar números. |
| XGBoost / LightGBM / CatBoost | Pode haver suporte nativo | Geralmente dispensável | Depende | Consulte a configuração da biblioteca antes de codificar. |
| Naive Bayes | Depende da variante | Depende | Tratar | GaussianNB, MultinomialNB e CategoricalNB esperam representações diferentes. |
| CNN | Não é a entrada típica | Pixels normalizados | Conforme dado | Imagens costumam ser convertidas para [0,1] ou outra escala consistente. |
| Transformer de texto | Tokenização + embeddings | Tratamento próprio | Máscara / token especial | Tokens viram IDs e depois vetores aprendidos. |
07 · PIPELINE
numéricas → mediana → StandardScaler
ordinais → valor mais frequente → OrdinalEncoder
nominais → valor mais frequente → OneHotEncoder
↓
modelo final