ML Atlas

Machine learning do zero · Projeto de portfólio · 40 min

Projeto A: triagem

Em resumo

Seu primeiro projeto de portfólio: escolha modelo e limiar de uma triagem em que um caso perdido custa 10 alarmes falsos e confira num teste oculto.

A tarefa

Você está construindo uma primeira peneira: um modelo pontua uma biópsia e decide quem segue para mais exames. Um tumor maligno perdido (FN) custa tanto quanto 10 alarmes falsos (FP).

  1. Escolha um modelo (regressão logística, árvore de decisão ou kNN) e seu único ajuste.
  2. Escolha um limiar: a partir de qual pontuação o modelo diz “para biópsia”.
  3. Escreva uma frase de justificativa: por que este modelo e este limiar.

Você escolhe tudo na validação. O teste oculto confere a escolha no fim, como novos pacientes conferem um modelo depois da implantação.

Dados e divisão

Breast Cancer Wisconsin (Diagnostic), UCI Machine Learning Repository, licença CC BY 4.0: 569 biópsias, 212 delas malignas. O modelo vê as 10 medidas “mean” dos núcleos celulares da imagem da biópsia (raio, textura, concavidade etc.). UCI

  • Aprendizado: 427 biópsias (159 malignas). Validação cruzada em 5 partes: cada parte é a validação uma vez, e o modelo aprende com as outras. Daí vem o custo CV.
  • Teste oculto: 142 biópsias (53 malignas), separadas uma vez, ao acaso, mantendo a proporção das classes (semente 1). O modelo aprende com todas as 427 e só então pontua o teste.

“Oculto” aqui quer dizer “não mostrado na página”, não protegido. O código da página é público e qualquer pessoa pode lê-lo. Seu navegador conta os envios, então apagar os dados do site zera o limite. É um exercício de disciplina, não uma prova.

Como ser aprovado

O custo é contado por 100 pessoas: (10 × casos perdidos + alarmes falsos) × 100 / número de pessoas. A aprovação é automática, com duas regras:

  • o custo no teste oculto é menor que o das duas regras simples: “todos para biópsia” (62,7 por 100 pessoas no teste) e “ninguém para biópsia” (373,2);
  • só o primeiro envio conta. Você tem 3 envios, mas os seguintes são “depois do fato”: mostram o custo no teste e não mudam o resultado.

Por que esta regra. A ferramenta calcula sozinha o custo CV, então a validação não pode ser burlada. O que pode ser burlado é o teste: enviar, ver o resultado e corrigir. Por isso só o primeiro envio conta.

No teste oculto (142 biópsias), um único caso perdido custa 7,0 por 100 pessoas, então o resultado do teste oscila. Antes do envio, a ferramenta mostra a faixa habitual: de CV − 25 a CV + 25. Essa foi a dispersão do teste em torno do CV para as soluções de exemplo das lições em 200 outras divisões aleatórias (95% dos casos). Exemplo: a regressão logística com limiar 0,30 tem CV 18,7 e teste 48,6, fora da faixa. É azar da divisão, não um erro, e a escolha é aprovada mesmo assim porque é mais barata que as duas regras.

As soluções de exemplo são aprovadas em pelo menos 98% dessas 200 divisões. Não há ranking: só você vê o seu resultado.

Sua escolha

A ferramenta roda no navegador com JavaScript ligado. Sem ele, faça o projeto no notebook abaixo.

Cartão de conclusão

Depois da aprovação, você pode baixar um cartão (PNG). Você digita seu nome nesta página, o cartão é feito no seu navegador e o nome nunca vai para o endereço da página nem para um servidor. “Compartilhar no LinkedIn” passa só o endereço desta página.

Para quem programa: o notebook

O notebook faz o mesmo no scikit-learn: o mesmo conjunto, as mesmas 142 linhas do teste oculto (dadas por número de linha), validação cruzada em 5 partes, o custo por 100 pessoas, a faixa habitual em torno do CV e a regra de aprovação. Rode a célula do teste uma vez, depois de escolher: vale a primeira execução. A árvore e o kNN podem diferir da página em casos isolados, porque o scikit-learn desempata de outro jeito.

Modelo de README para o GitHub

Um notebook copiado de um tutorial diz pouco sobre você. Um README com suas próprias decisões e limites diz mais. Copie o modelo e preencha cada seção com suas palavras.

Mostrar o modelo
# Triagem: um modelo e um limiar pelo custo dos erros

Projeto A do curso ML Atlas: https://mlatlas.org/pt/curso/ml/projeto-a/

## Problema
Quem deve ir para biópsia? Perder um tumor maligno custa tanto quanto 10 alarmes falsos. <Com suas palavras: quem usa o modelo e o que acontece depois da decisão dele.>

## Dados e licença
Breast Cancer Wisconsin (Diagnostic), UCI Machine Learning Repository, CC BY 4.0, https://doi.org/10.24432/C5DW2B. 569 biópsias, 212 malignas, 10 medidas “mean”.

## Validação
<Como você dividiu os dados, quantas partes tem a validação cruzada, quantas vezes olhou o teste oculto.>

## Resultado ± dispersão
<Modelo, ajuste, limiar. Custo CV por 100 pessoas e sua dispersão entre as partes; custo no teste.>

## Linha de base
<O custo de “todos para biópsia” e “ninguém” nos mesmos dados.>

## O que o modelo não sabe fazer
<Limites: quantos dados há, de onde vêm, o que muda com outros preços dos erros.>

## Próximos passos
<O que você verificaria em seguida e por quê.>