Sou iniciante no aprendizado de máquina (terminei o curso de Ng), estou usando o scikit-learn em python. Quero encontrar a melhor maneira de detectar anomalias em nosso sistema.
Temos eventos em andamento que ocorrem em um cronograma (a cada poucos minutos / hora) e quero detectar quando algo anormal acontece. Dados de exemplo:
ID | epoch-time | duration (Sec) | status | is_manual
0400 | 1488801454 | 500 | completed | 1
0401 | 1488805055 | 500 | completed | 1
0402 | 1488812254 | 40000 | failed | 1
6831 | 1488805050 | 200 | failed | 0
.
... (Millions of examples)
.
0014 | 1488805055 | 1200 | completed | 0
por exemplo, o ID do evento 0400 ocorre uma vez a cada hora. Eu quero dizer quando não funciona.
O que pretendo fazer é alimentar o algoritmo com todos os eventos dos últimos 10 minutos.
Principais perguntas: Como tratar a coluna ID? Qual é a melhor abordagem que devo adotar?
Respostas:
Eu achei este artigo muito útil no meu caso:
https://mapr.com/blog/deep-learning-tensorflow/
Usando essa estrutura básica da RNN, pude prever o resultado do próximo passo. Ao centralizar todos os eventos no minuto mais próximo, a rede conseguiu reconhecer o padrão que se correlaciona na linha do tempo.
fonte
Existem várias maneiras pelas quais você pode resolver isso. Antes de começar a projetar qualquer modelo, padronize seus dados. Seus dados parecem não marcados; portanto, inicialmente, o que você pode fazer é realizar uma visualização t-SNE, fornecendo muitas informações sobre seus dados. Com base no resultado, você pode desenvolver modelos mais sensíveis que podem agrupar as amostras em amostras e anomalias normais. Mais sobre o t-SNE aqui
fonte