A partir da formulação da pergunta, presumo que não haja "exemplos" de anomalias (ou seja, rótulos). Com essa premissa, uma abordagem viável seria usar auto - codificadores : redes neurais que recebem como entrada seus dados e são treinadas para produzir esses mesmos dados. A idéia é que o treinamento tenha permitido à rede aprender representações das distribuições de dados de entrada na forma de variáveis latentes.
Existe um tipo de codificador automático chamado codificador automático denoising , treinado com versões corrompidas dos dados originais como entrada e com os dados originais não corrompidos como saída. Isso fornece uma rede que pode remover ruído (ou seja, corrupção de dados) das entradas.
Você pode treinar um codificador automático denoising com os dados diários. Em seguida, use-o em novos dados diários; Dessa forma, você tem os dados diários originais e uma versão incorreta desses mesmos dados. Você pode comparar os dois para detectar diferenças significativas .
A chave aqui é qual definição de diferença significativa você escolhe. Você pode calcular a distância euclidiana e supor que, se ela ultrapassar determinado limite arbitrário, você tem uma anomalia. Outro fator importante é o tipo de corrupção que você introduz; eles devem estar o mais próximo possível de anormalidades razoáveis.
Outra opção seria usar as redes adversas generativas . O subproduto do treinamento é uma rede discriminadora que diferencia os dados diários normais dos dados anormais.