O que é aprendizado de máquina
Em vez de escrever regras, mostramos exemplos ao computador e deixamos ele descobrir os padrões. O desafio não é acertar nos dados que ele viu — é generalizar para os que ainda não viu.
Aprender de exemplos, não de regras
Imagine ensinar alguém a reconhecer um gato. Você não lista regras ("tem bigodes, orelhas triangulares, quatro patas...") — você mostra muitas fotos de gatos e a pessoa passa a reconhecer gatos novos, inclusive raças que nunca viu. Machine learning faz o mesmo: a partir de exemplos, o modelo ajusta parâmetros internos até capturar o padrão.
A grande questão não é "o modelo acerta os exemplos de treino?" — isso é fácil, basta decorar. A questão é generalização: ele acerta dados novos? Um modelo que decora cada exemplo de treino mas erra o resto é como um aluno que memoriza o gabarito sem entender a matéria.
Subajuste, bom ajuste e sobreajuste
Arraste o grau do polinômio. Pontos cheios (azuis) são o treino; os ocos (laranjas) são dados de teste que o modelo nunca viu. Observe que o erro de teste é mínimo num grau intermediário — nem rígido demais, nem flexível demais.
● treino (o modelo vê) ○ teste (o modelo nunca viu). Grau baixo → reta rígida que erra todo mundo (subajuste). Grau alto → a curva passa por cada ponto de treino mas serpenteia loucamente e erra os de teste (sobreajuste). O segredo está no meio.
Programação tradicional vs. ML
// Programação tradicional vs. machine learning // Tradicional: humano escreve as REGRAS def eh_spam(email): if "ganhe dinheiro" in email: return True if email.count("!") > 5: return True return False // → frágil: spammers mudam, você reescreve regras para sempre // Machine learning: humano dá EXEMPLOS, máquina acha as regras modelo = treinar( exemplos = [(email1, "spam"), (email2, "ok"), ...], // dados rotulados ) modelo.prever(novo_email) // → generaliza para e-mails nunca vistos // A "regra" agora é um conjunto de PARÂMETROS aprendidos, // ajustados para minimizar o erro nos exemplos de treino.
Treino, validação, teste e o tradeoff viés-variância
// A regra de ouro: separe treino de teste dados = embaralhar(todos_os_dados) treino = dados[:70%] // o modelo aprende aqui validacao = dados[70:85%] // ajusta hiperparâmetros (ex: complexidade) teste = dados[85:] // medição final, usada UMA vez // Por que separar? Decorar ≠ aprender. // Um modelo que decora o treino tem erro ~0 no treino // e erro ALTO no teste → sobreajuste (overfitting). // Tradeoff viés-variância: // viés alto = modelo simples demais → subajuste // variância alta = modelo complexo demais → sobreajuste // objetivo: o ponto doce no meio (menor erro de teste)
Seu primeiro classificador
Mini projeto: use scikit-learn com o dataset Iris. Carregue com load_iris(), separe treino/teste com train_test_split(test_size=0.3), treine um DecisionTreeClassifier e imprima a acurácia em treino e em teste. Compare: por que a acurácia de treino costuma ser maior?
Projeto principal: reproduza a demo acima do zero. Gere 12 pontos de uma função (ex: y = sin(2x) + ruído), ajuste polinômios de grau 1 a 9 com numpy.polyfit, e plote o erro de treino e o erro num conjunto de teste separado em função do grau. Encontre o grau que minimiza o erro de teste — você vai redescobrir o tradeoff viés-variância empiricamente.
Desafio extra: implemente k-fold cross-validation à mão: divida os dados em k partes, treine em k−1 e valide na restante, rodando k vezes. Calcule a média e o desvio-padrão da acurácia. Por que isso é mais confiável do que uma única divisão treino/teste, especialmente com poucos dados?
Teste sua intuição
Onde você encontra isso
Filtros de spam
O Gmail classifica bilhões de e-mails por dia com modelos treinados em exemplos rotulados pelos próprios usuários (marcar "spam" / "não é spam"). Como spammers evoluem, o modelo é re-treinado continuamente — exatamente o cenário onde regras fixas falham e ML brilha.
Recomendações
Netflix, Spotify e YouTube aprendem dos seus cliques e do histórico de usuários parecidos para prever o que você vai gostar. O desafio de generalização aparece aqui: recomendar algo novo que você ainda não viu, não só repetir o que já assistiu.
Apoio ao diagnóstico
Modelos treinados em milhares de imagens médicas rotuladas por especialistas ajudam a detectar tumores em mamografias e retinopatia em exames de fundo de olho. A validação rigorosa em dados não vistos é vital — um modelo que sobreajusta poderia falhar perigosamente em pacientes novos.