Antecedentes del problema: estoy trabajando en un proyecto que involucra archivos de registro similares a los que se encuentran en el espacio de monitoreo de TI (para mi mejor comprensión del espacio de TI). Estos archivos de registro son datos de series temporales, organizados en cientos / miles de filas de varios parámetros. Cada parámetro es numérico (flotante) y hay un valor no trivial / sin error para cada punto de tiempo. Mi tarea es monitorear dichos archivos de registro para detectar anomalías (picos, caídas, patrones inusuales con algunos parámetros que no están sincronizados, comportamiento derivado extraño del 1er / 2do / etc., etc.).
En una tarea similar, probé Splunk con Prelert, pero estoy explorando opciones de código abierto en este momento.
Restricciones: me estoy limitando a Python porque lo conozco bien y me gustaría retrasar el cambio a R y la curva de aprendizaje asociada. A menos que parezca que existe un soporte abrumador para R (u otros lenguajes / software), me gustaría seguir con Python para esta tarea.
Además, estoy trabajando en un entorno Windows por el momento. Me gustaría continuar con sandbox en Windows en archivos de registro de pequeño tamaño, pero puedo pasar al entorno Linux si es necesario.
Recursos: He comprobado lo siguiente con callejones sin salida como resultados:
Python o R para implementar algoritmos de aprendizaje automático para la detección de fraudes . Alguna información aquí es útil, pero desafortunadamente, estoy luchando por encontrar el paquete correcto porque:
"AnomalyDetection" de Twitter está en R, y quiero seguir con Python. Además, la piratería del puerto de Python parece causar problemas en la implementación en el entorno de Windows para mí.
Skyline, mi próximo intento, parece haber sido descontinuado (de los problemas de github ). No me he sumergido profundamente en esto, dado el poco soporte que parece haber en línea.
scikit-learn Todavía estoy explorando, pero esto parece ser mucho más manual. El enfoque de abajo en la maleza está bien para mí, pero mi experiencia en herramientas de aprendizaje es débil, por lo que me gustaría algo así como un cuadro negro para los aspectos técnicos como los algoritmos, similar a Splunk + Prelert.
Definición del problema y preguntas: Estoy buscando un software de código abierto que pueda ayudarme a automatizar el proceso de detección de anomalías a partir de archivos de registro de series temporales en Python a través de paquetes o bibliotecas.
- ¿Existen tales cosas para ayudar con mi tarea inmediata, o son imaginarias en mi mente?
- ¿Alguien puede ayudarme con pasos concretos para ayudarme a alcanzar mi objetivo, incluidos los fundamentos o conceptos básicos?
- ¿Es esta la mejor comunidad de StackExchange para preguntar, o es Stats, Math, o incluso Security o Stackoverflow las mejores opciones?
EDITAR [2015-07-23] ¡ Tenga en cuenta que la última actualización de pyculiarity parece estar arreglada para el entorno de Windows! Todavía tengo que confirmar, pero debería ser otra herramienta útil para la comunidad.
EDITAR [2016-01-19] Una actualización menor. No tuve tiempo para trabajar en esto e investigar, pero estoy dando un paso atrás para comprender los fundamentos de este problema antes de continuar investigando en detalles específicos. Por ejemplo, dos pasos concretos que estoy tomando son:
Comenzando con los artículos de Wikipedia para la detección de anomalías [ https://en.wikipedia.org/wiki/Anomaly_detection ], entendiendo completamente, y luego subiendo o bajando en la jerarquía conceptual de otros artículos de Wikipedia vinculados, como [ https: // en.wikipedia.org/wiki/K-nearest_neighours_algorithm ], y luego a [ https://en.wikipedia.org/wiki/Machine_learning ].
Explorando técnicas en las grandes encuestas realizadas por Chandola et al. 2009 "Anomaly Detection: A Survey" [ http://www-users.cs.umn.edu/~banerjee/papers/09/anomaly.pdf ] y Hodge et al 2004 "Una encuesta de metodologías de detección de valores atípicos" [ http://eprints.whiterose.ac.uk/767/1/hodgevj4.pdf ].
Una vez que se comprendan mejor los conceptos (espero jugar con ejemplos de juguetes a medida que avance para desarrollar el lado práctico también), espero comprender qué herramientas de Python de código abierto son más adecuadas para mis problemas.