Uma introdução suave aos pipelines de modelagem de aprendizado de máquina

Uma introdução suave aos pipelines de modelagem de aprendizado de máquina

O aprendizado de máquina aplicado normalmente se concentra em encontrar um único modelo que tenha um bom desempenho ou melhor em um determinado conjunto de dados.

O uso eficaz do modelo exigirá a preparação adequada dos dados de entrada e o ajuste de hiperparâmetros do modelo.

Coletivamente, a sequência linear de etapas necessárias para preparar os dados, ajustar o modelo e transformar as previsões é chamada de pipeline de modelagem. Bibliotecas de aprendizado de máquina modernas, como a biblioteca Python scikit-learn, permitem que essa sequência de etapas seja definida e usada corretamente (sem vazamento de dados) e de forma consistente (durante a avaliação e a previsão).

No entanto, trabalhar com pipelines de modelagem pode ser confuso para iniciantes, pois requer uma mudança na perspectiva do processo de aprendizado de máquina aplicado.

Neste tutorial, você descobrirá pipelines de modelagem para aprendizado de máquina aplicado.

Depois de concluir este tutorial, você saberá:

  • O aprendizado de máquina aplicado envolve mais do que apenas encontrar um modelo de bom desempenho; também requer encontrar uma sequência apropriada de etapas de preparação de dados e etapas para o pós-processamento de previsões.
  • Coletivamente, as operações necessárias para resolver um problema de modelagem preditiva podem ser consideradas uma unidade atômica chamada pipeline de modelagem.
  • Abordar o aprendizado de máquina aplicado através das lentes de pipelines de modelagem requer uma mudança no pensamento, desde a avaliação de configurações de modelo específico até sequências de transformações e algoritmos.

Vamos começar.

Uma introdução suave aos pipelines de modelagem de aprendizado de máquina

Uma introdução suave aos pipelines de modelagem de aprendizado de máquina
Foto de Jay Huang, alguns direitos reservados.

Visão geral do tutorial

Este tutorial é dividido em três partes; eles estão:

  1. Encontrar um modelo habilidoso não é suficiente
  2. O que é um pipeline de modelagem?
  3. Implicações de um pipeline de modelagem

Encontrar um modelo habilidoso não é suficiente

O aprendizado de máquina aplicado é o processo de descobrir o modelo com melhor desempenho para um determinado conjunto de dados de modelagem preditiva.

Na verdade, é mais do que isso.

Além de descobrir qual modelo tem o melhor desempenho em seu conjunto de dados, você também deve descobrir:

  • Transformações de dados que melhor expõe a estrutura subjacente desconhecida do problema para os algoritmos de aprendizagem.
  • Hiperparâmetros do modelo que resultam em uma configuração boa ou melhor de um modelo escolhido.

Também pode haver considerações adicionais, como técnicas que transformam as previsões feitas pelo modelo, como movimento de limite ou calibração do modelo para probabilidades previstas.

Como tal, é comum pensar no aprendizado de máquina aplicado como um grande problema de pesquisa combinatória em transformações de dados, modelos e configurações de modelo.

Isso pode ser bastante desafiador na prática, pois requer que a sequência de um ou mais esquemas de preparação de dados, o modelo, a configuração do modelo e quaisquer esquemas de transformação de previsão sejam avaliados de forma consistente e correta em um determinado equipamento de teste.

Embora complicado, pode ser gerenciável com uma divisão simples de teste de trem, mas torna-se totalmente incontrolável ao usar a validação cruzada k-fold ou mesmo validação cruzada k-fold repetida.

A solução é usar um pipeline de modelagem para manter tudo correto.

O que é um pipeline de modelagem?

Um pipeline é uma sequência linear de opções de preparação de dados, operações de modelagem e operações de transformação de previsão.

Ele permite que a sequência de etapas seja especificada, avaliada e usada como uma unidade atômica.

  • Pipeline: Uma sequência linear de etapas de preparação e modelagem de dados que pode ser tratada como uma unidade atômica.

Para deixar a ideia clara, vamos dar uma olhada em dois exemplos simples:

O primeiro exemplo usa normalização de dados para as variáveis ​​de entrada e se ajusta a um modelo de regressão logística:

  • [Input], [Normalization], [Logistic Regression], [Predictions]

O segundo exemplo padroniza as variáveis ​​de entrada, aplica a seleção de recursos RFE e se ajusta a uma máquina de vetores de suporte.

  • [Input], [Standardization], [RFE], [SVM], [Predictions]

Você pode imaginar outros exemplos de modelagem de pipelines.

Como uma unidade atômica, o pipeline pode ser avaliado usando um esquema de reamostragem preferido, como uma divisão de teste de trem ou validação cruzada k-fold.

Isso é importante por dois motivos principais:

  • Evite vazamento de dados.
  • Consistência e reprodutibilidade.

Um pipeline de modelagem evita o tipo mais comum de vazamento de dados em que as técnicas de preparação de dados, como valores de entrada de escala, são aplicadas a todo o conjunto de dados. Este é o vazamento de dados porque compartilha o conhecimento do conjunto de dados de teste (como observações que contribuem para um valor médio ou máximo conhecido) com o conjunto de dados de treinamento e, por sua vez, pode resultar em desempenho do modelo excessivamente otimista.

Em vez disso, as transformações de dados devem ser preparadas apenas no conjunto de dados de treinamento e, em seguida, aplicadas ao conjunto de dados de treinamento, conjunto de dados de teste, conjunto de dados de validação e quaisquer outros conjuntos de dados que exijam a transformação antes de serem usados ​​com o modelo.

Um pipeline de modelagem garante que a sequência de operações de preparação de dados realizadas seja reproduzível.

Sem um pipeline de modelagem, as etapas de preparação de dados podem ser realizadas manualmente duas vezes: uma para avaliar o modelo e outra para fazer previsões. Quaisquer alterações na sequência devem ser mantidas consistentes em ambos os casos, caso contrário, as diferenças afetarão a capacidade e habilidade do modelo.

Um pipeline garante que a sequência de operações seja definida uma vez e seja consistente quando usada para avaliação de modelo ou para fazer previsões.

A biblioteca de aprendizado de máquina scikit-learn do Python fornece um pipeline de modelagem de aprendizado de máquina por meio da classe Pipeline.

Você pode aprender mais sobre como usar esta API Pipeline neste tutorial:

Implicações de um pipeline de modelagem

O pipeline de modelagem é uma ferramenta importante para profissionais de aprendizado de máquina.

No entanto, existem implicações importantes que devem ser consideradas ao usá-los.

A principal confusão para iniciantes ao usar pipelines é entender o que o pipeline aprendeu ou a configuração específica descoberta pelo pipeline.

Por exemplo, um pipeline pode usar uma transformação de dados que se configura automaticamente, como a técnica RFECV para seleção de recursos.

  • Ao avaliar um pipeline que usa uma transformação de dados configurada automaticamente, qual configuração ele escolhe? ou Ao ajustar este pipeline como um modelo final para fazer previsões, qual configuração ele escolheu?

A resposta é, não importa.

Outro exemplo é o uso de ajuste de hiperparâmetros como a etapa final do pipeline.

A pesquisa de grade será realizada nos dados fornecidos por quaisquer etapas de transformação anteriores no pipeline e, em seguida, procurará a melhor combinação de hiperparâmetros para o modelo usando esses dados e, em seguida, ajustará um modelo com esses hiperparâmetros nos dados.

  • Ao avaliar um pipeline que a grade pesquisa hiperparâmetros do modelo, que configuração ela escolhe? ou Ao ajustar este pipeline como um modelo final para fazer previsões, qual configuração ele escolheu?

A resposta é novamente, não importa.

A resposta se aplica ao usar um movimento de limite ou etapa de calibração de probabilidade no final do pipeline.

A razão é a mesma que não estamos preocupados com a estrutura interna específica ou coeficientes do modelo escolhido.

Por exemplo, ao avaliar um modelo de regressão logística, não precisamos inspecionar os coeficientes escolhidos em cada rodada de validação cruzada k-fold para escolher o modelo. Em vez disso, nos concentramos em sua habilidade preditiva fora do comum

Da mesma forma, ao usar um modelo de regressão logística como o modelo final para fazer previsões sobre novos dados, não precisamos inspecionar os coeficientes escolhidos ao ajustar o modelo em todo o conjunto de dados antes de fazer previsões.

Podemos inspecionar e descobrir os coeficientes usados ​​pelo modelo como um exercício de análise, mas isso não afeta a seleção e o uso do modelo.

Essa mesma resposta generaliza ao considerar um pipeline de modelagem.

Não estamos preocupados com quais recursos podem ter sido selecionados automaticamente por uma transformação de dados no pipeline. Também não estamos preocupados com quais hiperparâmetros foram escolhidos para o modelo ao usar uma pesquisa de grade como a etapa final no pipeline de modelagem.

Em todos os três casos: o modelo único, o pipeline com seleção automática de recursos e o pipeline com busca em grade, estamos avaliando o “modelo" ou "pipeline de modelagem”Como uma unidade atômica.

O pipeline permite que nós, como praticantes de aprendizado de máquina, subamos um nível de abstração e nos preocupemos menos com os resultados específicos dos algoritmos e mais preocupados com a capacidade de uma sequência de procedimentos.

Como tal, podemos nos concentrar em avaliar a capacidade dos algoritmos no conjunto de dados, não no produto dos algoritmos, ou seja, o modelo. Assim que tivermos uma estimativa do pipeline, podemos aplicá-la e ter a certeza de que obteremos um desempenho semelhante, em média.

É uma mudança de pensamento e pode levar algum tempo para se acostumar.

É também a filosofia por trás das técnicas modernas de AutoML (aprendizado de máquina automático) que tratam o aprendizado de máquina aplicado como um grande problema de pesquisa combinatória.

Leitura Adicional

Esta seção fornece mais recursos sobre o tópico se você deseja se aprofundar.

Resumo

Neste tutorial, você descobriu pipelines de modelagem para aprendizado de máquina aplicado.

Especificamente, você aprendeu:

  • O aprendizado de máquina aplicado envolve mais do que apenas encontrar um modelo de bom desempenho; também requer encontrar uma sequência apropriada de etapas de preparação de dados e etapas para o pós-processamento de previsões.
  • Coletivamente, as operações necessárias para abordar um problema de modelagem preditiva podem ser consideradas uma unidade atômica chamada pipeline de modelagem.
  • Abordar o aprendizado de máquina aplicado através das lentes de pipelines de modelagem requer uma mudança no pensamento, desde a avaliação de configurações de modelo específico até sequências de transformações e algoritmos.

Você tem alguma pergunta?
Tire suas dúvidas nos comentários abaixo e farei o possível para responder.

Descubra o Aprendizado de Máquina Rápido em Python!

Domine o aprendizado de máquina com Python

Desenvolva seus próprios modelos em minutos

... com apenas algumas linhas de código scikit-learn

Aprenda como em meu novo Ebook:
Domínio do aprendizado de máquina com Python

Capas tutoriais de auto-estudo e projetos ponta a ponta gostar:
Carregando dados, visualização, modelagem, afinação, e muito mais...

Finalmente traga o aprendizado de máquina para
Seus Próprios Projetos

Ignore os acadêmicos. Apenas resultados.

Veja o que há dentro

Você também pode estar interessado em