Preparação de dados para aprendizado de máquina em Python
Modelos de aprendizado de máquina aprendem com números, e aprendem melhor quando as variáveis estão em escalas parecidas. Normalização e padronização reescalam os dados, e a multiplicação de matrizes é como os modelos combinam muitas variáveis de uma vez.
O conceito em palavras simples
Modelos de aprendizado de máquina aprendem com números, e aprendem melhor quando as variáveis estão em escalas parecidas. Normalização e padronização reescalam os dados, e a multiplicação de matrizes é como os modelos combinam muitas variáveis de uma vez.
Redimensione variáveis com normalização min-max e padronização z-score, e multiplique matrizes à mão.
Ideias principais
- Variáveis em escalas muito diferentes deixam os números grandes dominarem o modelo.
- Min-max mantém os valores entre 0 e 1; os z-scores mantêm a forma, mas centram em 0.
- Calcule os valores de escala nos dados de treinamento e reutilize-os para dados novos.
- Um produto de matrizes A × B exige que o número de colunas de A seja igual ao de linhas de B.
Quando usar?
- Entender o que acontece dentro das redes neurais e das bibliotecas de IA.
- Aprender a ideia antes de implementá-la nos desafios correspondentes.
- Se preparar para cursos de aprendizado de máquina, entrevistas e projetos.
Veja na prática
Arraste x5 para criar um valor fora da curva e compare como min-max e z-score reagem. Aponte para uma célula de A·B para ver qual linha e qual coluna ela usa.
Código de exemplo
import statistics
heights = [150, 160, 170, 180, 190]
# Min-max scaling squeezes values into the range 0..1.
low, high = min(heights), max(heights)
print("min-max:", [round((h - low) / (high - low), 2) for h in heights])
# Z-score standardization centres values on 0 with a spread of 1.
mean = statistics.mean(heights)
std = statistics.pstdev(heights)
print("z-scores:", [round((h - mean) / std, 2) for h in heights])
# Matrix multiplication: each output is a row of A dotted with a column of B.
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
product = [[sum(A[i][k] * B[k][j] for k in range(2)) for j in range(2)] for i in range(2)]
print("A x B:", product)
Saída esperada
min-max: [0.0, 0.25, 0.5, 0.75, 1.0]
z-scores: [-1.41, -0.71, 0.0, 0.71, 1.41]
A x B: [[19, 22], [43, 50]]
Como funciona
A escala min-max leva a menor altura a 0 e a maior a 1. Os z-scores subtraem a média e dividem pelo desvio padrão, então os valores ficam centrados em 0. No produto de matrizes, cada célula é uma linha de A multiplicada elemento a elemento por uma coluna de B e depois somada.
Altere os valores e execute o programa no compilador Python online CodeUtility sem instalar Python.
Exercícios práticos
Altere as entradas e teste casos de borda antes de usar conjuntos de dados maiores.
- Mude as entradas ou os pesos e preveja a saída antes de executar.
- Imprima os valores intermediários para acompanhar cada passo do cálculo.
- Resolva os desafios indicados abaixo para implementar a ideia você mesmo.
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
- Multiplicação de matrizes Multiplique duas matrizes, a operação por trás de cada camada de uma rede neural. Fácil
- Normalização min-max Reescale uma variável para que o menor valor vire 0 e o maior vire 1. Fácil
- Padronização por z-score Centralize uma variável em 0 e ajuste para desvio padrão 1. Fácil