Inteligência Artificial · 1.º ano (indicativo)

Como escolher um algoritmo de ML para um problema?

  • 10 min de leitura
  • 4 exemplos resolvidos
  • 5 exercícios com solução
  • Atualizado em

Resposta curta

Primeiro identifique o tipo de problema: prever uma categoria (classificação), prever um número (regressão) ou encontrar grupos sem rótulos (agrupamento). Depois olhe para o tamanho e a natureza dos dados e a necessidade de explicar decisões. Comece com um modelo simples como baseline e só complique se a validação mostrar ganho.

Quando se aplica

Aplica-se sempre que tem dados e uma pergunta, e precisa de decidir que família de modelos experimentar. Não existe um algoritmo melhor em todos os problemas, uma ideia que a literatura resume no teorema «no free lunch». A escolha depende da tarefa, da quantidade e do tipo de dados, do tempo de treino e de quão explicável a decisão tem de ser.

Pré-requisitos

  • Distinguir aprendizagem supervisionada (com rótulos) de não supervisionada (sem rótulos).
  • Saber o que é o conjunto de treino e de teste e o que é sobreajuste.

Mapa de decisão

TarefaExemploAlgoritmos habituais
Classificaçãospam ou não spamregressão logística, árvore de decisão, k-vizinhos mais próximos (k-NN), floresta aleatória, naive Bayes
Regressãopreço de uma casaregressão linear, árvore de regressão, floresta aleatória
Agrupamentosegmentar clientes sem rótulosk-means, agrupamento hierárquico
Redução de dimensãovisualizar 100 colunas em 2análise de componentes principais (PCA)
Imagens, áudio, texto longoreconhecer objetosredes neuronais profundas

Método passo a passo

  1. Formule o problema: o que quer prever, e existe uma coluna com a resposta (rótulo)? Isto define supervisionado ou não.
  2. Classifique a saída: categoria (classificação), número (regressão), grupo (agrupamento).
  3. Descreva os dados: número de linhas, número de colunas, dados tabulares ou imagens/texto, valores em falta, classes equilibradas ou não.
  4. Liste as restrições: precisa de explicar a decisão? O tempo é limitado? Tem poucos dados ou muitos?
  5. Escolha um baseline simples (regressão linear ou logística, árvore rasa, k-NN) e treine-o.
  6. Compare com uma ou duas alternativas usando a mesma divisão de dados e a mesma métrica adequada (exatidão, F1, erro médio…).
  7. Fique com o mais simples que atinja o desempenho necessário e confirme no conjunto de teste uma única vez.

Dica

Um bom baseline é também a referência de honestidade: se um modelo complexo só ganha 0,5% ao baseline, o ganho raramente compensa o custo e a perda de explicabilidade.

Exemplos resolvidos

Exemplo 1 — Prever o preço de um apartamento

Enunciado: Tem 2 000 anúncios de apartamentos em Luanda, com área, número de quartos, bairro e preço em kwanzas. Quer prever o preço. Que família de algoritmos escolhe e porquê?

Resolução:

  1. Há um rótulo (o preço), por isso a aprendizagem é supervisionada.
  2. O preço é um número contínuo: regressão.
  3. Os dados são tabulares e de tamanho médio.
  4. Baseline: regressão linear; alternativa: floresta aleatória (regressão).
  5. Compara-se o erro médio no conjunto de validação e escolhe-se o mais simples que tenha erro aceitável.

Resposta: regressão linear como baseline, e floresta aleatória como comparação. Verificação: a métrica é um erro numérico (por exemplo, o erro absoluto médio) e não a exatidão, que só serve para classes.

Exemplo 2 — Detetar mensagens de spam

Enunciado: Tem 10 000 mensagens já marcadas como spam ou não spam. Que algoritmo experimenta primeiro?

Resolução:

  1. Há rótulo e a saída é uma de duas categorias: classificação binária.
  2. O texto transforma-se em números (por exemplo, contagem de palavras).
  3. Para texto com muitas colunas, um bom ponto de partida é a regressão logística ou o naive Bayes: rápidos e simples.
  4. Como o spam é normalmente a minoria, avalia-se com precisão, recuperação (recall) ou F1, e não só com a exatidão.

Resposta: regressão logística ou naive Bayes como baseline. Verificação: se 5% das mensagens são spam, um modelo que diga sempre «não spam» tem 95% de exatidão e é inútil, por isso a métrica tem de ser outra.

Exemplo 3 — Segmentar clientes sem rótulos

Enunciado: Uma cadeia de lojas tem o histórico de compras de 5 000 clientes, sem nenhuma categoria atribuída, e quer descobrir grupos de clientes semelhantes. Que técnica usa?

Resolução:

  1. Não existe coluna de resposta: aprendizagem não supervisionada.
  2. O objetivo é formar grupos: agrupamento.
  3. Escolhe-se o k-means, que precisa do número de grupos k; testam-se valores como 3, 4 e 5.
  4. Normalizam-se as colunas, porque o k-means usa distâncias.
  5. A qualidade avalia-se por medidas de coesão dos grupos e, sobretudo, pela utilidade dos grupos para o negócio.

Resposta: k-means com dados normalizados. Verificação: o resultado deve ser interpretável (por exemplo, grupos de compra frequente e de baixo valor).

Exemplo 4 — Nível de exame: justificar a escolha com restrições

Enunciado: Um banco quer decidir se aprova créditos. Tem 300 clientes históricos com 8 colunas e o regulador exige explicar cada decisão ao cliente. Escolha entre uma rede neuronal profunda, uma árvore de decisão e a regressão logística, justificando.

Resolução:

  1. Tarefa: classificação binária (aprovar ou recusar).
  2. Dados: só 300 linhas e 8 colunas. Uma rede profunda precisaria de muito mais dados e sobreajustaria.
  3. Restrição: explicabilidade. A regressão logística mostra o peso de cada variável; a árvore mostra regras legíveis.
  4. Escolha: regressão logística como baseline, com uma árvore de profundidade pequena como alternativa.
  5. Avaliar com validação cruzada, pois o conjunto é pequeno.

Resposta: regressão logística (ou árvore rasa); a rede profunda é inadequada pelo tamanho dos dados e pela falta de explicabilidade. Verificação: o modelo escolhido consegue dizer ao cliente quais fatores pesaram na decisão.

Erros frequentes

  • Começar pelo modelo mais complexo em vez de um baseline simples; perde-se tempo e não se sabe o que o ganho vale.
  • Usar a exatidão com classes desequilibradas. Num conjunto com 99% de negativos, responder sempre «negativo» dá 99%.
  • Escolher o algoritmo pela moda (aprendizagem profunda) em vez de pelos dados: com poucas linhas tabulares, modelos simples costumam bastar.
  • Não normalizar colunas em k-NN, k-means ou regressão regularizada, onde as escalas diferentes distorcem o resultado.
  • Comparar modelos em divisões diferentes de dados, o que torna a comparação injusta.
  • Escolher o modelo com base no conjunto de teste. Use validação; o teste é só para a medida final.
  • Ignorar a explicabilidade em áreas como crédito, saúde ou justiça, onde as decisões têm de ser justificadas.

Exercícios propostos

Tente resolver primeiro no caderno; depois confira.

1Exercício 1

Classifique cada problema em classificação, regressão ou agrupamento: (a) prever a temperatura de amanhã em graus; (b) prever se um cliente falha o pagamento; (c) agrupar notícias por tema sem categorias prévias.

Ver solução

(a) Regressão, porque a saída é um número. (b) Classificação (falha ou não falha). (c) Agrupamento, não supervisionado, porque não há rótulos.

2Exercício 2

Tem 100 colunas e quer representar os dados num gráfico de 2 dimensões. Que tipo de técnica usa e dê um exemplo.

Ver solução

Uma técnica de redução de dimensão, como a análise de componentes principais (PCA), que projeta os dados em 2 componentes que conservam a maior parte da variação.

3Exercício 3

Um conjunto tem 990 exemplos negativos e 10 positivos. Um modelo diz sempre «negativo». Qual é a sua exatidão e porque é enganadora?

Ver dica

Exatidão = previsões certas ÷ total.

Ver solução

Acerta nos 990 negativos e falha os 10 positivos: exatidão = 990 ÷ 1 000 = 99%. É enganadora porque o modelo não deteta nenhum positivo (recuperação 0%). Para este problema devem usar-se recuperação, precisão ou F1.

4Exercício 4

Tem 80 linhas de dados tabulares e precisa de explicar as previsões. Escolha um algoritmo adequado e rejeite um inadequado, justificando.

Ver solução

Adequados: regressão linear/logística ou árvore de decisão rasa, simples e explicáveis, que funcionam com poucos dados. Inadequado: rede neuronal profunda, que precisa de muitos dados, sobreajusta com 80 linhas e é difícil de explicar.

5Exercício 5

O modelo A (regressão logística) tem 88% de exatidão na validação e o modelo B (floresta aleatória com 500 árvores) tem 89%. O modelo A treina em segundos e é explicável; o B demora minutos. Que escolhe, e que passo adicional faz antes de decidir?

Ver dica

Pense se a diferença de 1 ponto é significativa.

Ver solução

A diferença de 1 ponto pode ser ruído de uma só divisão. Antes de decidir, repete-se a comparação com validação cruzada e olha-se para a variação entre voltas. Se a diferença for pequena, escolhe-se o A, que é mais simples, mais rápido e explicável. Se o B ganhar de forma consistente e o ganho tiver valor para o problema, justifica-se o B.

Perguntas frequentes

Qual é o melhor algoritmo de machine learning?

Não existe um melhor para todos os problemas. Para dados tabulares, as florestas aleatórias e os modelos de boosting costumam ser fortes; para imagens e texto longo, as redes neuronais profundas. A escolha certa vem da tarefa, dos dados e da validação.

Quando devo usar aprendizagem profunda?

Quando tem muitos dados e dados não estruturados, como imagens, áudio ou texto, ou quando o problema o justifica e há poder de cálculo. Para poucas linhas tabulares, modelos clássicos costumam chegar e são mais fáceis de explicar.

Posso experimentar vários algoritmos e ficar com o melhor?

Pode e deve, desde que compare todos na mesma divisão ou validação cruzada e use o conjunto de teste só no final. Se escolher pelo teste, a medida final fica otimista.

Como sei se o modelo escolhido é bom o suficiente?

Compare com um baseline trivial (por exemplo, prever a média ou a classe mais frequente) e com o nível de erro que o problema aceita. Um modelo só é bom se melhorar de forma útil sobre essas referências.

Resumo

  • Primeiro, o tipo de problema: classificação, regressão ou agrupamento.
  • Depois, os dados (tamanho, tipo, classes equilibradas) e as restrições (explicabilidade, tempo).
  • Comece sempre com um baseline simples e só complique se a validação mostrar ganho útil.
  • Use a mesma divisão e uma métrica adequada; com classes desequilibradas, não confie só na exatidão.
  • Escolha o modelo na validação e confirme no teste uma única vez.

Onde aprofundar

  • O programa e o manual da sua cadeira de Inteligência Artificial.
  • Russell e Norvig, Artificial Intelligence: A Modern Approach, capítulos sobre aprendizagem (confirme a edição).
  • A documentação do scikit-learn, em particular o guia de utilização e o mapa de escolha de algoritmos (confirme a versão); Goodfellow et al., Deep Learning, para redes neuronais.

Continue a estudar

1.º ano (indicativo)9 min

Como dividir os dados em treino e teste?

Separe os dados antes de treinar: uma parte (por exemplo 80%) para o modelo aprender e outra (20%) que ele nunca viu, para medir o desempenho real. Misture as linhas…

4 exemplos5 exercícios com solução

Ver tudo de Inteligência Artificial