Uma introdução suave à deriva de conceito em aprendizado de máquina

Uma introdução suave à deriva de conceito em aprendizado de máquina

Os dados podem mudar com o tempo. Isso pode resultar em desempenho preditivo ruim e degradante em modelos preditivos que assumem um relacionamento estático entre as variáveis ​​de entrada e saída.

Esse problema de mudanças nos relacionamentos subjacentes nos dados é chamado de desvio de conceito no campo do aprendizado de máquina.

Neste post, você descobrirá o problema da deriva de conceito e maneiras de resolvê-lo em seus próprios problemas de modelagem preditiva.

Depois de concluir esta postagem, você saberá:

  • O problema da mudança de dados ao longo do tempo.
  • O que é deriva de conceito e como ela é definida.
  • Como lidar com o desvio de conceito em seus próprios problemas de modelagem preditiva.

Comece seu projeto com meu novo livro Master Machine Learning Algorithms, including tutoriais passo a passo e a Planilha do Excel arquivos para todos os exemplos.

Vamos começar.

Uma introdução suave à deriva de conceito em aprendizado de máquina

Uma introdução suave à deriva de conceito em aprendizado de máquina
Foto de Joe Cleere, alguns direitos reservados.

Visão geral

Este post está dividido em 3 partes; eles estão:

  1. Mudanças nos dados ao longo do tempo
  2. O que é Concept Drift?
  3. Como lidar com a deriva de conceito

Mudanças nos dados ao longo do tempo

A modelagem preditiva é o problema de aprender um modelo a partir de dados históricos e usar o modelo para fazer previsões sobre novos dados para os quais não sabemos a resposta.

Tecnicamente, a modelagem preditiva é o problema de aproximar uma função de mapeamento (f) de dados de entrada (X) para prever um valor de saída (y).

Freqüentemente, esse mapeamento é considerado estático, o que significa que o mapeamento aprendido com os dados históricos é igualmente válido no futuro em novos dados e que as relações entre os dados de entrada e saída não mudam.

Isso é verdadeiro para muitos problemas, mas nem todos os problemas.

Em alguns casos, as relações entre os dados de entrada e saída podem mudar com o tempo, o que significa que, por sua vez, há mudanças na função de mapeamento subjacente desconhecida.

As mudanças podem ser consequentes, como que as previsões feitas por um modelo treinado em dados históricos mais antigos não estão mais corretas ou tão corretas quanto poderiam ser se o modelo fosse treinado em dados históricos mais recentes.

Essas mudanças, por sua vez, podem ser detectadas e, se detectadas, pode ser possível atualizar o modelo aprendido para refletir essas mudanças.

… Muitos métodos de mineração de dados assumem que os padrões descobertos são estáticos. No entanto, na prática, os padrões no banco de dados evoluem com o tempo. Isso apresenta dois desafios importantes. O primeiro desafio é detectar quando ocorre o desvio de conceito. O segundo desafio é manter os padrões atualizados sem induzi-los do zero.

- Página 10, Manual de mineração de dados e descoberta de conhecimento, 2010.

O que é Concept Drift?

A variação de conceito em aprendizado de máquina e mineração de dados refere-se à mudança nas relações entre os dados de entrada e saída no problema subjacente ao longo do tempo.

Em outros domínios, essa mudança pode ser chamada de “mudança de covariável, ”“mudança de conjunto de dados," ou "não estacionariedade. ”

Na maioria dos aplicativos de análise de dados desafiadores, os dados evoluem com o tempo e devem ser analisados ​​quase em tempo real. Os padrões e relações em tais dados freqüentemente evoluem com o tempo, portanto, os modelos construídos para analisar esses dados rapidamente se tornam obsoletos com o tempo. No aprendizado de máquina e na mineração de dados, esse fenômeno é conhecido como desvio de conceito.

- Uma visão geral das aplicações de deriva de conceito, 2016.

Um conceito em “deriva de conceito”Refere-se à relação desconhecida e oculta entre as variáveis ​​de entrada e saída.

Por exemplo, um conceito em dados meteorológicos pode ser a estação que não é explicitamente especificada nos dados de temperatura, mas pode influenciar os dados de temperatura. Outro exemplo pode ser o comportamento de compra do cliente ao longo do tempo, que pode ser influenciado pelo vigor da economia, em que o vigor da economia não é especificado explicitamente nos dados. Esses elementos também são chamados de “contexto oculto”.

Um problema difícil com o aprendizado em muitos domínios do mundo real é que o conceito de interesse pode depender de algum contexto oculto, não fornecido explicitamente na forma de recursos preditivos. Um exemplo típico são as regras de previsão do tempo que podem variar radicalmente com a estação. […] Freqüentemente, a causa da mudança está oculta, não conhecida a priori, tornando a tarefa de aprendizagem mais complicada.

- O problema da deriva de conceitos: definições e trabalhos relacionados, 2004.

A alteração dos dados pode assumir qualquer forma. É conceitualmente mais fácil considerar o caso em que há alguma consistência temporal para a mudança, de modo que os dados coletados em um período de tempo específico mostrem o mesmo relacionamento e que esse relacionamento mude suavemente ao longo do tempo.

Observe que nem sempre é esse o caso e essa suposição deve ser contestada. Alguns outros tipos de mudanças podem incluir:

  • Uma mudança gradual ao longo do tempo.
  • Uma mudança recorrente ou cíclica.
  • Uma mudança repentina ou abrupta.

Diferentes esquemas de detecção e tratamento de desvios de conceito podem ser necessários para cada situação. Freqüentemente, mudanças recorrentes e tendências de longo prazo são consideradas sistemáticas e podem ser explicitamente identificadas e tratadas.

A deriva de conceito pode estar presente em problemas de aprendizagem supervisionada, onde as previsões são feitas e os dados são coletados ao longo do tempo. Esses são tradicionalmente chamados de problemas de aprendizagem online, dada a mudança esperada nos dados ao longo do tempo.

Existem domínios em que as previsões são ordenadas por tempo, como a previsão de séries temporais e previsões em dados de streaming, onde o problema de desvio de conceito é mais provável e deve ser explicitamente testado e tratado.

Um desafio comum durante a mineração de fluxos de dados é que os fluxos de dados nem sempre são estritamente estacionários, ou seja, o conceito de dados (distribuição subjacente de dados recebidos) varia de forma imprevisível com o tempo. Isso encorajou a necessidade de detectar esses desvios de conceito nos fluxos de dados em tempo hábil

- Detecção de desvio de conceito para dados de streaming, 2015.

Indre Zliobaite no artigo de 2010 intitulado “Learning under Concept Drift: An Overview” fornece uma estrutura para pensar sobre a deriva de conceito e as decisões exigidas pelo profissional de aprendizado de máquina, como segue:

  • Suposição futura: um designer precisa fazer uma suposição sobre a futura fonte de dados.
  • Tipo de mudança: um designer precisa identificar possíveis padrões de mudança.
  • Adaptabilidade do aluno: com base no tipo de mudança e na suposição futura, um designer escolhe os mecanismos que tornam o aluno adaptativo.
  • Seleção de modelo: um designer precisa de um critério para escolher uma parametrização particular do aluno selecionado em cada passo de tempo (por exemplo, os pesos para membros do conjunto, o tamanho da janela para o método de janela variável).

Essa estrutura pode ajudar a pensar sobre os pontos de decisão disponíveis para você ao abordar a variação de conceito em seus próprios problemas de modelagem preditiva.

Como lidar com a deriva de conceito?

Existem muitas maneiras de lidar com a deriva de conceito; vamos dar uma olhada em alguns.

1. Não fazer nada (modelo estático)

A maneira mais comum é não lidar com isso e presumir que os dados não mudam.

Isso permite que você desenvolva um único modelo “melhor” uma vez e use-o em todos os dados futuros.

Este deve ser o seu ponto de partida e linha de base para comparação com outros métodos. Se você acredita que seu conjunto de dados pode sofrer alteração de conceito, pode usar um modelo estático de duas maneiras:

  1. Detecção de desvio de conceito. Monitore a habilidade do modelo estático ao longo do tempo e, se a habilidade cair, talvez esteja ocorrendo um desvio de conceito e alguma intervenção seja necessária.
  2. Desempenho de linha de base. Use a habilidade do modelo estático como uma linha de base para comparar com qualquer intervenção que você fizer.

2. Reajustar periodicamente

Uma boa intervenção de primeiro nível é atualizar periodicamente seu modelo estático com dados históricos mais recentes.

Por exemplo, talvez você possa atualizar o modelo a cada mês ou ano com os dados coletados do período anterior.

Isso também pode envolver o teste retroativo do modelo, a fim de selecionar uma quantidade adequada de dados históricos a serem incluídos ao reajustar o modelo estático.

Em alguns casos, pode ser apropriado incluir apenas uma pequena parte dos dados históricos mais recentes para melhor capturar as novas relações entre entradas e saídas (por exemplo, o uso de uma janela deslizante).

3. Atualizar periodicamente

Alguns modelos de aprendizado de máquina podem ser atualizados.

Esta é uma eficiência sobre a abordagem anterior (reajuste periodicamente) onde em vez de descartar o modelo estático completamente, o estado existente é usado como ponto de partida para um processo de ajuste que atualiza o ajuste do modelo usando uma amostra dos dados históricos mais recentes .

Por exemplo, essa abordagem é adequada para a maioria dos algoritmos de aprendizado de máquina que usam pesos ou coeficientes, como algoritmos de regressão e redes neurais.

4. Dados de peso

Alguns algoritmos permitem que você pondere a importância dos dados de entrada.

Nesse caso, você pode usar uma ponderação que é inversamente proporcional à idade dos dados, de forma que mais atenção seja dada aos dados mais recentes (peso maior) e menos atenção seja dada aos dados menos recentes (peso menor).

5. Aprenda a mudança

Uma abordagem de conjunto pode ser usada onde o modelo estático é deixado intocado, mas um novo modelo aprende a corrigir as previsões do modelo estático com base nos relacionamentos em dados mais recentes.

Isso pode ser pensado como um conjunto de tipo de reforço (em espírito apenas), onde os modelos subsequentes corrigem as previsões dos modelos anteriores. A principal diferença aqui é que os modelos subsequentes são ajustados em dados diferentes e mais recentes, ao contrário de uma forma ponderada do mesmo conjunto de dados, como no caso de AdaBoost e aumento de gradiente.

6. Detectar e escolher o modelo

Para alguns domínios de problemas, pode ser possível projetar sistemas para detectar mudanças e escolher um modelo específico e diferente para fazer previsões.

Isso pode ser apropriado para domínios que esperam mudanças abruptas que podem ter ocorrido no passado e podem ser verificadas no futuro. Também assume que é possível desenvolver modelos habilidosos para lidar com cada uma das alterações detectáveis ​​nos dados.

Por exemplo, a mudança abrupta pode ser uma observação específica ou observações em um intervalo, ou a mudança na distribuição de uma ou mais variáveis ​​de entrada.

7. Preparação de dados

Em alguns domínios, como problemas de série temporal, pode-se esperar que os dados mudem com o tempo.

Nesses tipos de problemas, é comum preparar os dados de forma a remover as alterações sistemáticas dos dados ao longo do tempo, como tendências e sazonalidade por diferenciação.

Isso é tão comum que está embutido em métodos lineares clássicos, como o modelo ARIMA.

Normalmente, não consideramos a mudança sistemática nos dados como um problema de desvio de conceito porque pode ser tratado diretamente. Em vez disso, esses exemplos podem ser uma maneira útil de pensar sobre o seu problema e podem ajudá-lo a antecipar a mudança e preparar os dados de uma maneira específica usando padronização, dimensionamento, projeções e muito mais para mitigar ou pelo menos reduzir os efeitos da mudança nas variáveis ​​de entrada em o futuro.

Leitura Adicional

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

Papéis

Artigos

Resumo

Nesta postagem, você descobriu o problema de desvio de conceito na alteração de dados para aprendizado de máquina aplicado.

Especificamente, você aprendeu:

  • O problema da mudança de dados ao longo do tempo.
  • O que é deriva de conceito e como ela é definida.
  • Como lidar com o desvio de conceito em seus próprios problemas de modelagem preditiva.

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

Descubra como funcionam os algoritmos de aprendizado de máquina!

Algoritmos de Aprendizado de Máquina Mater

Veja como funcionam os algoritmos em minutos

... com apenas exemplos aritméticos e simples

Descubra como em meu novo Ebook:
Algoritmos de aprendizado de máquina mestre

Cobre explicações e exemplos de 10 algoritmos principais, gostar:
Linear...

Você também pode estar interessado em