Para entender o problema, realize as seguintes tarefas:
- Estabeleça o objetivo do produto que você está desenvolvendo ou refatorando.
- Determine se o objetivo é melhor resolvido usando ML preditivo, IA generativa ou uma solução que não seja de ML.
- Verifique se você tem os dados necessários para treinar um modelo se estiver usando uma abordagem de ML preditivo.
Estabeleça o objetivo
Comece definindo sua meta em termos que não sejam de ML. A meta é a resposta à pergunta "O que estou tentando alcançar?"
A tabela a seguir define claramente as metas para apps hipotéticos:
Aplicativo | Meta |
---|---|
App Weather | Calcular a precipitação em incrementos de seis horas para uma região geográfica. |
App de moda | Gerar vários designs de camisas. |
App de vídeo | Recomendar vídeos úteis. |
App Mail | Detectar spam. |
App financeiro | Resuma informações financeiras de várias fontes de notícias. |
App Mapa | Calcular o tempo de viagem. |
App bancário | Identifique transações fraudulentas. |
App de restaurantes | Identificar a culinária pelo cardápio de um restaurante. |
Aplicativo de e-commerce | Responda às avaliações com respostas úteis. |
Caso de uso claro para ML
Algumas pessoas consideram o aprendizado de máquina como uma ferramenta universal que pode ser aplicada a todos os problemas. Na realidade, o ML é uma ferramenta especializada adequada apenas para problemas específicos. Não é recomendável implementar uma solução de ML complexa quando uma solução mais simples funciona.
Os sistemas de ML podem ser divididos em duas categorias amplas: ML preditiva e IA generativa. A tabela a seguir lista as características que definem os tipos:
Entrada | Saída | Técnica de treinamento | |
---|---|---|---|
ML preditivo |
Texto Imagem Áudio Vídeo Número |
Faz uma previsão, por exemplo, classificando um e-mail como spam ou não spam, adivinhando a quantidade de chuva de amanhã ou prevendo o preço de uma ação. A saída normalmente pode ser verificada na realidade. | Normalmente usa muitos dados para treinar um modelo de aprendizado supervisionado, não supervisionado ou de reforço para realizar uma tarefa específica. |
IA generativa |
Texto Imagem Áudio Vídeo Números |
Gera saída com base na intenção do usuário, por exemplo, resumindo um artigo ou produzindo um clipe de áudio ou um vídeo curto. | Normalmente, usa muitos dados não rotulados para treinar um grande modelo de linguagem ou gerador de imagens para preencher os dados ausentes. O modelo pode ser usado para tarefas que podem ser enquadradas como tarefas de preenchimento de lacunas ou pode ser ajustado com o treinamento em dados rotulados para alguma tarefa específica, como classificação. |
Para confirmar se a abordagem de ML é a certa, primeiro verifique se a solução atual que não usa ML está otimizada. Se você não tiver uma solução que não seja de ML implementada, tente resolver o problema manualmente usando uma heurística.
A solução que não usa ML é o parâmetro que você vai usar para determinar se o ML é um bom caso de uso para o problema. Considere as seguintes perguntas ao comparar uma abordagem sem ML com uma de ML:
Qualidade. Você acha que uma solução de ML pode ser muito melhor? Se você acha que uma solução de ML pode ser apenas uma pequena melhoria, isso pode indicar que a solução atual é a melhor.
Custo e manutenção. Qual é o custo da solução de ML no curto e no longo prazo? Em alguns casos, o custo é muito maior em termos de recursos de computação e tempo para implementar o aprendizado de máquina. Pense nas seguintes observações:
- A solução de ML justifica o aumento de custo? Pequenas melhorias em sistemas grandes podem justificar facilmente o custo e a manutenção da implementação de uma solução de ML.
- Quanta manutenção a solução vai exigir? Em muitos casos, as implementações de ML precisam de manutenção dedicada de longo prazo.
- Seu produto tem os recursos necessários para apoiar o treinamento ou a contratação de pessoas com experiência em ML?
Teste seu conhecimento
ML preditivo e dados
Os dados são a força motriz do ML preditivo. Para fazer boas previsões, você precisa de dados que tenham recursos com capacidade preditiva. Seus dados precisam ter as seguintes características:
Abundante. Quanto mais exemplos relevantes e úteis no seu conjunto de dados, melhor será o modelo.
Consistente e confiável. Ter dados coletados de forma consistente e confiável vai produzir um modelo melhor. Por exemplo, um modelo meteorológico baseado em ML vai se beneficiar dos dados coletados ao longo de muitos anos com os mesmos instrumentos confiáveis.
Confiável. Entenda de onde vêm seus dados. Os dados serão de fontes confiáveis que você controla, como registros do seu produto, ou de fontes que você não conhece muito bem, como a saída de outro sistema de ML?
Disponível. Verifique se todas as entradas estão disponíveis no momento da previsão no formato correto. Se for difícil conseguir determinados valores de atributos no momento da previsão, omita esses atributos dos seus conjuntos de dados.
Correto. Em grandes conjuntos de dados, é inevitável que alguns rótulos tenham valores incorretos, mas, se mais de uma pequena porcentagem de rótulos estiver incorreta, o modelo vai produzir previsões ruins.
Representante. Os conjuntos de dados precisam ser o mais representativos possível do mundo real. Em outras palavras, os conjuntos de dados precisam refletir com precisão os eventos, os comportamentos do usuário e/ou os fenômenos do mundo real que estão sendo modelados. O treinamento em conjuntos de dados não representativos pode causar um desempenho ruim quando o modelo é solicitado a fazer previsões reais.
Se você não conseguir os dados necessários no formato necessário, o modelo vai fazer previsões ruins.
Poder preditivo
Para que um modelo faça boas previsões, os recursos no conjunto de dados precisam ter poder de previsão. Quanto mais correlacionada uma característica estiver com um rótulo, maior será a probabilidade de ele ser previsto.
Alguns recursos têm mais poder de previsão do que outros. Por exemplo, em um conjunto de dados de clima, recursos como cloud_coverage
, temperature
e dew_point
seriam melhores preditores de chuva do que moon_phase
ou day_of_week
. No exemplo do app de vídeo, você pode supor que recursos
como video_description
, length
e views
podem ser bons preditores de
quais vídeos um usuário gostaria de assistir.
Determinar quais recursos têm poder preditivo pode ser um processo demorado. É possível explorar manualmente o poder preditivo de um recurso removendo e adicionando-o durante o treinamento de um modelo. É possível automatizar a descoberta do poder preditivo de um recurso usando algoritmos como a correlação de Pearson, a informação mútua ajustada (AMI, na sigla em inglês) e o valor de Shapley, que fornecem uma avaliação numérica para analisar o poder preditivo de um recurso.
Teste seu conhecimento
Para mais orientações sobre como analisar e preparar seus conjuntos de dados, consulte Preparação de dados e engenharia de atributos para machine learning.
Previsões x ações
Não há valor em prever algo se você não puder transformar a previsão em uma ação que ajude os usuários. Ou seja, seu produto precisa realizar uma ação com base na saída do modelo.
Por exemplo, um modelo que prevê se um usuário vai achar um vídeo útil precisa ser alimentado em um app que recomenda vídeos úteis. Um modelo que prevê se vai chover precisa ser alimentado em um app de clima.
Teste seu conhecimento
Com base no cenário a seguir, determine se o uso de ML é a melhor abordagem para o problema.
Uma equipe de engenharia de uma grande organização é responsável por gerenciar ligações telefônicas recebidas.
O objetivo: informar aos autores da chamada quanto tempo eles vão esperar em espera, considerando o volume atual de chamadas.
Eles não têm uma solução, mas acham que uma heurística seria dividir o número atual de clientes em espera pelo número de funcionários que atendem ligações e depois multiplicar por 10 minutos. No entanto, ele sabe que alguns clientes têm os problemas resolvidos em dois minutos, enquanto outros podem levar até 45 minutos ou mais.
A heurística provavelmente não vai fornecer um número preciso o suficiente. Eles podem criar um conjunto de dados com as seguintes colunas: number_of_callcenter_phones
, user_issue
, time_to_resolve
, call_time
e time_on_hold
.
time_on_hold
.