Para entender o problema, realize as seguintes tarefas:
- Declare a meta do produto que você está desenvolvendo ou refatorando.
- Determinar se a meta é melhor resolvida usando ML preditivo, uma solução que não usa 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 |
---|---|
Aplicativo Weather | Calcular a precipitação em incrementos de seis horas para uma região geográfica. |
App de moda | Gere uma variedade de designs de camisas. |
App de vídeo | Recomendar vídeos úteis. |
App de e-mail | Detectar spam. |
App de finanças | Resumir informações financeiras de várias fontes de notícias. |
App Mapa | Calcular o tempo de viagem. |
App de banco | Identifique transações fraudulentas. |
App de jantar | Identificar a culinária pelo cardápio de um restaurante. |
Aplicativo de e-commerce | Responda às avaliações com informações úteis. |
Caso de uso claro de ML
Algumas pessoas consideram o aprendizado de máquina como uma ferramenta universal que pode ser aplicada a todos os problemas. Em realidade, o ML é uma ferramenta especializada adequada apenas para problemas específicos. Você Você pode querer implementar uma solução de ML complexa quando uma solução não ML mais simples vai funcionar.
Os sistemas de ML podem ser divididos em duas categorias amplas: ML preditivo e IA generativa. A tabela a seguir lista as características definidoras:
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. Normalmente, o resultado pode ser comparado com a realidade. | Em geral, usa muitos dados para treinar um modelo não supervisionado, ou de reforço, para realizar para uma tarefa específica. |
IA generativa |
Texto Imagem Áudio Vídeo Numérico |
Gera saída com base na intenção do usuário, por exemplo, resumir um artigo ou produzir 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. Depois, o modelo pode ser usado para tarefas que podem ser enquadradas como tarefas de preenchimento de lacunas ou podem ser ajustado por meio de 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 não relacionada a 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 não ML é o comparativo de mercado 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 não ML à 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 pode justificar o aumento no 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, o ML e as implementações 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 e dados preditivos
Os dados são a força motriz do ML preditivo. Para compensar previsões, você precisa de dados que contém recursos com previsão poder Os dados precisam ter as seguintes características:
Abundante. Quanto mais exemplos relevantes e úteis em seu dataset, melhor para o modelo.
Consistentes e confiáveis. Ter dados de maneira consistente e confiável coletados vai produzir um modelo melhor. Por exemplo, um modelo de previsão vai se beneficiar dos dados coletados ao longo de muitos anos das mesmas instrumentos.
Confiável. Entenda de onde seus dados virão. Os dados serão de fontes confiáveis que você controla, como registros do seu produto, ou serão de fontes sobre as quais você não tem muito insight, como a saída de outro em um sistema de ML?
Disponível. Certifique-se de que todas as entradas estejam disponíveis no momento da previsão no no formato correto. Se for difícil obter certos valores de atributos em na hora da previsão, omita esses atributos dos conjuntos de dados.
Correto. Em conjuntos de dados grandes, é inevitável que algumas labels terão valores incorretos, mas se mais de uma pequena porcentagem de rótulos estiver incorreto, o modelo ou não produzem previsões ruins.
Representante. Os conjuntos de dados precisam ser o mais representativo possível do mundo real. Em outras palavras, os conjuntos de dados devem refletir com precisão os eventos, comportamentos de usuários e/ou fenômenos do mundo real sendo modelados. O treinamento em conjuntos de dados não representativos pode prejudicar o desempenho quando o modelo é solicitado a fazer previsões do mundo real.
Se você não conseguir os dados necessários no formato exigido, o modelo 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 correlacionado um atributo é com um rótulo, maior a probabilidade é fazer a previsão.
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.
O poder de previsão de um recurso pode mudar porque o contexto ou
o domínio muda. Por exemplo, no app de vídeo, um recurso como upload_date
podem, em geral, ter uma correlação fraca com o rótulo. No entanto, em
o subdomínio de vídeos sobre jogos, upload_date
pode estar fortemente correlacionado a
o rótulo.
Determinar quais recursos têm poder preditivo pode ser um processo demorado. É possível analisar 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 os 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 ajuda os usuários. Ou seja, seu produto deve realizar uma ação saída do modelo.
Por exemplo, um modelo que prevê se um usuário vai achar um vídeo útil precisam alimentar 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 em uma grande organização é responsável por gerenciar chamadas telefônicas recebidas.
A meta: informar aos autores da chamada quanto tempo eles vão aguardar em espera. o volume atual da chamada.
Eles ainda não têm uma solução, mas acham que uma heurística é dividir o valor atual número de clientes em espera pelo número de funcionários atendendo telefones, e depois multiplique por 10 minutos. No entanto, ela sabe que alguns clientes têm seus problemas resolvidos em dois minutos, enquanto outros podem demorar até 45 minutos ou mais.
A heurística provavelmente não vai fornecer um número preciso o suficiente. Eles
você pode criar um conjunto de dados com as seguintes colunas:
number_of_callcenter_phones
, user_issue
.
time_to_resolve
, call_time
,
time_on_hold
.
time_on_hold
.