Conceitos de IA em Python

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

Executar código →
main.py
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.

  1. Mude as entradas ou os pesos e preveja a saída antes de executar.
  2. Imprima os valores intermediários para acompanhar cada passo do cálculo.
  3. Resolva os desafios indicados abaixo para implementar a ideia você mesmo.
Executar no IDE Python →

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.

Todos os desafios