Machine learning do zero · Aula 1.1 · 2 de 33 aulas prontas · 10 min
O que é aprendizado de máquina?
Em resumo
No aprendizado de máquina, o programa descobre a regra a partir de exemplos em vez de recebê-la pronta. A aula mostra a diferença com tumores reais.
Como você escreveria um programa que distingue um tumor perigoso de um inofensivo? Dá para sentar com uma médica e transformar a experiência dela em regras: “se as células forem maiores que tanto, dispare o alarme”. Ou dá para mostrar ao computador centenas de casos antigos com o desfecho conhecido e deixar que ele mesmo descubra a regra. O segundo caminho é o aprendizado de máquina, e este curso é sobre por que ele funciona, quando falha e como diferenciar uma coisa da outra.
Escolha uma resposta e o seu grau de certeza.
Responda para liberar o experimento.
Experimento interativo
Este experimento interativo funciona em um navegador com JavaScript ativado. O texto ao redor descreve o que ele mostra.
Ver a resposta
Resposta certa: Pior do que no treino
O limiar aprendido tem 89,7% de acurácia no treino, mas 86,0% no teste (171 biópsias): uma regra ajustada a um conjunto de dados costuma ir pior em dados novos. Além disso, um limiar escolhido à mão, 15,0, tem 88,3% no teste, ou seja, melhor que o aprendido. O melhor no treino não é necessariamente o melhor em dados novos.
Experimente
- Mova o controle do limiar devagar da esquerda para a direita e observe a acurácia nos dados de treino. Pare onde você acha que a regra funciona melhor.
- Clique em Aprender e compare o limiar escolhido pelo algoritmo com o seu. Olhe os dois números: a acurácia nos dados de treino e nos de teste.
- Leve o controle do limiar até uma das pontas. Agora a regra dá quase a todos os tumores a mesma resposta — e mesmo assim a acurácia não cai a zero. Pense no porquê antes de continuar lendo.
- Depois de clicar em Aprender, veja qual nota é maior, a de treino ou a de teste, e decida em qual delas você confiaria diante de uma paciente de verdade.
A ideia em poucas palavras
Vamos ver agora, em palavras simples, o que você acabou de manipular.
Na programação tradicional, uma pessoa escreve a regra e o computador a aplica. No aprendizado de máquina, uma pessoa fornece exemplos — entradas junto com as respostas corretas — e um algoritmo procura uma regra que reproduza essas respostas. A regra encontrada se chama modelo. Depois de encontrado, o modelo é usado exatamente como uma regra escrita à mão: entra um caso novo, sai uma previsão.
Pense em como você aprende a saber se um abacate está maduro. Ninguém te dá uma fórmula. Você aperta alguns, abre, repara quais estavam bons e, depois de umas doze tentativas, o seu polegar “sabe”. Você nunca escreveu a regra, mas ela existe, e você a construiu com exemplos cujo resultado conhecia. Um algoritmo de aprendizado faz o mesmo, só que com números e com muito mais paciência.
Por que funciona
Os exemplos desta lição vêm de um conjunto de dados médicos real: 569 tumores de mama, cada um descrito por medidas dos núcleos celulares vistos ao microscópio e cada um classificado por um patologista como maligno (212 casos) ou benigno (357 casos). Para começar, usamos só uma dessas medidas e a regra mais simples que se pode imaginar: “acima de um limiar → maligno; abaixo → benigno”.
Escolher o limiar à mão é chutar. Aprender o limiar é testar cada valor candidato nos exemplos e ficar com o que erra menos. É só isso que “aprender” significa aqui: uma busca, guiada pelos dados, pelo ajuste que funciona melhor nos casos que já conhecemos. Todos os modelos que você vai ver depois, de uma reta até um modelo de linguagem com bilhões de parâmetros, seguem a mesma receita: uma família de regras possíveis, um jeito de pontuá-las e a busca pela melhor pontuação.
Existe uma pegadinha, e ela é a ideia mais importante de toda a área. Uma regra que se encaixa bem nos casos conhecidos não é automaticamente boa. O que realmente importa são os casos que ainda não vimos: a próxima paciente. Por isso, antes de aprender, escondemos uma parte dos dados. O modelo aprende com o conjunto de treino e depois recebe uma nota no conjunto de teste, que ele nunca viu. A nota costuma ser a acurácia, a fração de casos em que a regra acerta:
acurácia = previsões corretas / todas as previsões
Uma regra aprendida no conjunto de treino costuma pontuar um pouco menos no teste. Essa diferença é o preço honesto de encarar dados novos, e a nota no teste é a que você mostraria a um médico.
Erro comum
O erro clássico de quem está começando é julgar um modelo pelo desempenho nos dados com que ele aprendeu. Nesses casos o algoritmo teve todas as chances de se ajustar, então a nota o favorece. A segunda armadilha é esquecer a linha de base (baseline). A maioria dos tumores deste conjunto é benigna, então uma “regra” que sempre responde “benigno” já acerta 357 de 569 casos, quase dois terços. Por isso, mesmo quando uma regra dá a quase todos os tumores a mesma resposta, a acurácia dela não cai para zero. Qualquer modelo aprendido precisa superar essa resposta trivial antes de merecer atenção e, na medicina, também precisa cometer o tipo certo de erro — um tema ao qual voltamos na lição 6.
Aprendizado de máquina, portanto, não é mágica nem compreensão. É uma busca disciplinada por uma regra, seguida de uma prova honesta com dados que a busca nunca tocou. Na próxima lição olhamos de perto a matéria-prima — dados, atributos e rótulos — e por que o jeito de dividir os dados muda a nota que você obtém.
Quiz
Três perguntas para você se testar. Escolha uma resposta ou abra a resposta embaixo de cada pergunta. No teclado: as setas escolhem, Enter ou Espaço confirma.
Pontos-chave
- No aprendizado de máquina, a regra vem de exemplos rotulados, não da cabeça de um programador.
- Aprender é buscar: uma família de regras, uma pontuação e o ajuste com a melhor pontuação.
- Um modelo é avaliado num conjunto de teste que nunca viu; a nota de treino o favorece.
- Compare sempre com uma linha de base trivial, como prever sempre a resposta mais comum.
Mais a fundo: fórmula, código, prática
A matemática
A acurácia é accuracy = correct / n. Uma regra de limiar diz “maligno” quando x > t. Aprender escolhe o t com menos erros nas linhas de treino: t* = argmin over t of (mistakes on the training set). Só os pontos médios entre valores vizinhos ordenados podem dar resultados diferentes, então a busca é finita e exata.
- A pontuação no conjunto de treino é enviesada para cima:
t*foi escolhido para deixar esse número o mais alto possível. - A pontuação no conjunto de teste é uma estimativa não enviesada da acurácia futura, porque nenhuma escolha foi feita com ele.
- A baseline é a proporção da maior classe,
max(n₀, n₁) / n. Uma regra aprendida só vale a pena se superá-la com clareza.
No código (Python)
Contagens e a baseline de “sempre benigno” para o conjunto de dados inteiro (o lab usa só o raio médio e uma divisão, então seus 89,7% e 86,0% não são reproduzidos aqui):
from sklearn.datasets import load_breast_cancer
from sklearn.dummy import DummyClassifier
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
print("tumours:", len(y))
print("malignant:", (y == 0).sum(), "benign:", (y == 1).sum()) # no sklearn, 0 = maligno
always_benign = DummyClassifier(strategy="most_frequent").fit(X, y)
print(f"always 'benign': {always_benign.score(X, y):.1%}")
Saída
tumours: 569
malignant: 212 benign: 357
always 'benign': 62.7%
Uma regra que nunca olha para o tumor acerta em 62,7% dos casos. Essa é a barra que qualquer regra aprendida precisa superar.
Baixar o notebook (.ipynb). Abra no Jupyter ou envie para o Google Colab; ele baixa sozinho os dados que faltarem.
Para quem pratica
- Calcule a baseline primeiro.
DummyClassifier(strategy="most_frequent")leva uma linha e diz o que “bom” precisa significar para esses dados. - Divida antes de aprender qualquer coisa, inclusive um limiar. Qualquer escolha feita nas linhas de teste, mesmo pequena, deixa a pontuação de teste otimista.
- Use
stratify=yemtrain_test_splitna classificação, para que treino e teste mantenham a mesma proporção de casos malignos. - A acurácia conta todos os erros por igual. Um tumor maligno não detectado e um alarme falso não custam o mesmo, então olhe também os dois tipos de erro separadamente (lição 6).
- Um conjunto de teste de 171 linhas dá uma pontuação que oscila dois ou três pontos (lição 2: o erro padrão é de cerca de 2,7 pontos em 86%). Não leia uma diferença tão pequena como prova de que uma regra é melhor.
Isto foi útil?
Obrigado! Isso nos ajuda a melhorar.
Vá mais fundo no Atlas
Verbetes da enciclopédia sobre as ideias desta aula: