Lista de verificação do projeto de aprendizado de máquina

imagem



Neste post, montei uma lista de verificação à qual me refiro constantemente enquanto trabalhava em um projeto abrangente de aprendizado de máquina.



Por que eu preciso de uma lista de verificação?



Como você precisa lidar com vários elementos de um projeto (preparação, perguntas, modelos, ajustes etc.), é fácil perder a noção. Ele o guiará nas próximas etapas e o levará a verificar se cada tarefa foi concluída com êxito ou não.



Às vezes, tentamos encontrar um ponto de partida, a lista de verificação ajuda a extrair as informações corretas (dados) das fontes certas para estabelecer relacionamentos e descobrir idéias de correlação.



Recomenda-se que cada parte do projeto passe pelo paradigma de revisão.



Como Atul Gawande diz em seu livro "The Checklist Manifesto",

o escopo e a complexidade do que sabemos superou nossa capacidade individual de oferecer benefícios de maneira correta, segura e confiável.

Então, deixe-me guiá-lo nesta lista clara e concisa de ações que reduzirão sua carga de trabalho e melhorarão seus resultados ...

Lista de verificação de projetos de aprendizado de máquina



Aqui estão 8 etapas que você deve seguir em quase todos os projetos. Algumas das etapas podem ser executadas de forma intercambiável em ordem.



1. Defina o problema de uma perspectiva de alto nível



Isso é para entender e formular a lógica de negócios do problema. Isso deve lhe dizer:



  • a natureza do problema (controlado / não controlado, classificação / regressão),
  • o tipo de soluções que você pode desenvolver
  • quais métricas você deve usar para medir o desempenho?
  • O aprendizado de máquina é a abordagem correta para resolver esse problema?
  • abordagem manual para resolver o problema.
  • pré-requisitos inerentes ao problema


2. Defina fontes de dados e obtenha dados



Na maioria dos casos, essa etapa pode ser executada antes da primeira, se você tiver os dados e quiser identificar as perguntas (problemas) ao seu redor, a fim de aproveitar melhor os dados de entrada.



Com base na definição do seu problema, você precisará identificar as fontes de dados, que podem ser banco de dados, data warehouse, sensores etc. Para implantar um aplicativo na produção, essa etapa deve ser automatizada através do desenvolvimento de pipelines de dados que permitem a entrada de dados no sistema.



  • liste as fontes e a quantidade de dados que você precisa.
  • verifique se o local será um problema.
  • verifique se você tem permissão para usar os dados para seus propósitos ou não.
  • obtenha os dados e converta-os para um formato viável.
  • verificar o tipo de dados (texto, categórico, numérico, série temporal, imagens)
  • selecione uma amostra para o teste final.


3. Exploração inicial de dados



Nesta fase, você estuda todos os recursos que afetam seu resultado / previsão / objetivo. Se você tiver uma quantidade enorme de dados, tente esta etapa para tornar sua análise mais gerenciável.



Passos:



  • use o Notebook Jupyter, pois fornece uma interface simples e intuitiva para explorar dados.
  • defina a variável alvo
  • definir tipos de recurso (categórico, numérico, texto etc.)
  • analisar a relação entre os recursos.
  • adicione várias visualizações de dados para interpretar facilmente o impacto de cada recurso na variável de destino.
  • documente seus resultados de pesquisa.


4. Análise exploratória de dados para preparação de dados



É hora de aproveitar as lições da etapa anterior, definindo funções para transformação de dados, limpeza, seleção / desenvolvimento de recursos e dimensionamento.



  • Funções de gravação para transformar dados e automatizar o processo para os próximos pacotes de dados.
  • Funções de gravação para limpar dados (imputando valores ausentes e manipulando outliers)
  • Escreva funções para selecionar e projetar recursos - remova recursos redundantes, formate transformações de objetos e outras transformações matemáticas.
  • Escala de recursos - padronização de recursos.


5. Desenvolva um modelo básico e depois explore outros modelos para selecionar o melhor



Crie um modelo muito básico que sirva de base para todos os outros modelos complexos de aprendizado de máquina. Lista de verificação das etapas:



  • Treine vários modelos comumente usados, como modelo de bayes ingênuo, modelo de regressão linear, SVM, etc., usando os parâmetros padrão.
  • Meça e compare o desempenho de cada modelo com o modelo base e com todos os outros.
  • Use a validação cruzada de dobra em N para cada modelo e calcule a média e o desvio padrão das métricas de desempenho da dobra em N.
  • Explore os recursos que têm maior impacto sobre a meta.
  • Analise os tipos de erros que os modelos cometem ao prever.
  • O design funciona de maneira diferente.
  • Repita as etapas acima várias vezes (por tentativa e erro) para garantir que estamos usando as funções corretas no formato correto.
  • Selecione os principais modelos com base em suas métricas de desempenho.


6. Ajuste seus modelos da lista de seleção e verifique os métodos de conjunto



Essa deve ser uma das etapas cruciais à medida que você se aproxima da sua decisão final. Os pontos principais devem incluir:



  • Ajuste de hiperparâmetro usando validação cruzada.
  • Use técnicas de ajuste automático, como pesquisa aleatória ou pesquisa em grade, para encontrar a melhor configuração para seus principais modelos.
  • Teste o conjunto de métodos, como classificador de votos, etc.
  • Teste os modelos com o máximo de dados possível.
  • Após concluir o trabalho, use a amostra de teste que deixamos de lado no início para verificar se ela se encaixa bem ou não.


7. Documente seu código e comunique sua solução



O processo de comunicação é diverso. Você precisa ter em mente todas as partes interessadas existentes e potenciais. Portanto, os principais pontos incluem:



  • Documente seu código e sua abordagem para todo o projeto.
  • Crie um painel como o voila ou uma apresentação perspicaz com recursos visuais auto-explicativos.
  • Escreva um blog / relatório sobre como você analisou os recursos, testou várias transformações etc. Descreva sua curva de aprendizado (falhas e métodos que funcionaram)
  • Finalize com o resultado principal e o volume futuro (se houver)


8. Implemente seu modelo na produção, monitorando



Se o seu projeto exigir testes de implantação em dados reais, você deverá criar um aplicativo Web ou API REST para uso em todas as plataformas (Web, Android, iOS). Os principais pontos (variarão de acordo com o projeto) incluem:



  • Salve seu modelo final treinado em um arquivo h5 ou pickle.
  • Servindo seu modelo com serviços da web, você pode usar o Flask para desenvolver esses serviços da web.
  • Conecte fontes de entrada e configure pipelines ETL.
  • Gerenciar dependências com pipenv, docker / Kubernetes (com base nos requisitos de dimensionamento)
  • Você pode usar o AWS, Azure ou Google Cloud Platform para implantar seu serviço.
  • Faça monitoramento de desempenho em dados reais ou apenas para que as pessoas usem seu modelo com os dados deles.


Nota. A lista de verificação pode ser adaptada dependendo da complexidade do seu projeto.



imagem



Descubra os detalhes de como obter uma profissão de alto nível do zero ou subir de nível em habilidades e salário fazendo os cursos on-line pagos do SkillFactory:






Consulte Mais informação






All Articles