Las canalizaciones de aprendizaje automático han evolucionado enormemente en los últimos años. Con una amplia variedad de herramientas y marcos disponibles para simplificar la construcción, la capacitación y la implementación, el tiempo de respuesta en el desarrollo del modelo de aprendizaje automático ha mejorado drásticamente. Sin embargo, incluso con todas estas simplificaciones, todavía existe una curva de aprendizaje empinada asociada con muchas de estas herramientas. Pero no con Elastic.
Para utilizar el aprendizaje automático en Elastic Stack, todo lo que realmente necesita es que sus datos se almacenen en Elasticsearch. Una vez allí, extraer información valiosa de sus datos es tan simple como hacer clic en algunos botones en Kibana. El aprendizaje automático está integrado en el Elastic Stack, lo que le permite crear de manera fácil e intuitiva una canalización de aprendizaje automático de extremo a extremo completamente operativa. Y en este blog, haremos precisamente eso.
¿Por qué Elastic?
Ser una empresa de búsqueda significa que Elastic está diseñado para manejar de manera eficiente grandes cantidades de datos. La búsqueda y agregación de datos para el análisis se hace simple e intuitiva con Elasticsearch Query DSL . Los grandes conjuntos de datos se pueden visualizar de diversas formas en Kibana. La interfaz de Elastic Machine Learning permite una fácil selección de características y modelos, entrenamiento de modelos y ajuste de hiperparámetros. Y después de haber entrenado y ajustado su modelo, Kibana también se puede usar para evaluar y monitorear visualmente modelos. Esto hace que Elastic Stack sea la ventanilla única perfecta para el aprendizaje automático a nivel de producción.
Ejemplo de conjunto de datos: EMBER 2018
Vamos a demostrar el aprendizaje automático de un extremo a otro en Elastic Stack utilizando el conjunto de datos EMBER , lanzado por Endgame para permitir la detección de malware utilizando funciones estáticas derivadas de archivos ejecutables portátiles (PE). A los efectos de esta demostración, utilizaremos el conjunto de datos EMBER ( Endgame Malware BEnchmark for Research ) 2018, que es una colección de código abierto de 1 millón de muestras. Cada muestra incluye el hash sha256 del archivo de muestra, el mes en que se vio por primera vez, una etiqueta y las características derivadas del archivo.
Para este experimento, seleccionaremos 300.000 muestras (150.000 maliciosas y 150.000 benignas) del conjunto de datos EMBER 2018. Para realizar el aprendizaje supervisado en las muestras, primero debemos seleccionar algunas características. Las características del conjunto de datos son características estáticas derivadas del contenido de archivos binarios. Decidimos experimentar con la información general de la sección y el encabezado del archivo, las cadenas y los histogramas de bytes para estudiar el rendimiento del modelo en el uso de diferentes subconjuntos de características del conjunto de datos EMBER.
Aprendizaje automático de un extremo a otro en Elastic Stack: un tutorial
Para los propósitos de esta demostración, usaremos Python Elasticsearch Client para insertar datos en Elasticsearch, la función de análisis de marcos de datos de Elastic Machine Learning para crear trabajos de entrenamiento y Kibana para monitorear visualmente los modelos después del entrenamiento.
Crearemos dos trabajos supervisados, uno usando información general, encabezado de archivo y sección, y cadenas, y otro usando histogramas de bytes como características. Esto es para demostrar el entrenamiento simultáneo de múltiples modelos en la pila y la visualización de múltiples modelos candidatos más adelante.
Más información y nota completa: Blog Elastic