Path: blob/master/site/es-419/io/tutorials/elasticsearch.ipynb
25118 views
Copyright 2020 The TensorFlow IO Authors.
Transmisión de datos estructurados desde Elasticsearch con Tensorflow-IO
Descripción general
Este tutorial se centra en la transmisión de datos desde un clúster de Elasticsearch a un tf.data.Dataset
que luego se usajunto con tf.keras
para entrenamiento e inferencia.
Elasticseach es principalmente un motor de búsqueda distribuido que admite el almacenamiento de datos estructurados, no estructurados, geoespaciales, numéricos, etc. Para los fines de este tutorial, se usa un conjunto de datos con registros estructurados.
NOTA: Una comprensión básica del almacenamiento de Elasticsearch le ayudará a seguir el tutorial con facilidad.
Paquetes de instalación
El paquete elasticsearch
se usa para preparar y almacenar los datos dentro de los índices de elasticsearch únicamente con fines de demostración. En clústeres de producción del mundo real con numerosos nodos, el clúster podría recibir datos de conectores como logstash, etc.
Una vez que los datos están disponibles en el clúster de elasticsearch, solo se requiere tensorflow-io
para transmitir los datos a los modelos.
Instalar los paquetes tensorflow-io y elasticsearch necesarios
Importar paquetes
Validar importaciones tf y tfio
Descargar y configurar la instancia de Elasticsearch
Para fines de demostración, se usa la versión de código abierto del paquete elasticsearch.
Ejecute la instancia como un proceso demonio
Una vez que se haya iniciado la instancia, busque elasticsearch
en la lista de procesos para confirmar la disponibilidad.
consulte el punto final base para recuperar información sobre el clúster.
Explorar el conjunto de datos
Para los fines de este tutorial, descargaremos el conjunto de datos de PetFinder e ingresaremos los datos en elasticsearch manualmente. El objetivo de este problema de clasificación es predecir si la mascota será adoptada o no.
A los efectos del tutorial, se realizan modificaciones en la columna de etiqueta. 0 indicará que la mascota no fue adoptada y 1 indicará que sí fue adoptada.
Dividir el conjunto de datos
Almacenar los datos de entrenamiento y de la prueba en índices de elasticsearch
El almacenamiento de datos en el clúster local de elasticsearch simula un entorno para la recuperación remota continua de datos con fines de entrenamiento e inferencia.
Preparar conjuntos de datos tfio
Una vez que los datos están disponibles en el clúster, solo se requiere tensorflow-io
para transmitir los datos de los índices. La clase elasticsearch.ElasticsearchIODataset
se usa para este propósito. La clase hereda de tf.data.Dataset
y, por lo tanto, expone todas las funcionalidades útiles de tf.data.Dataset
listas para usar.
Conjunto de datos de entrenamiento
Conjunto de datos de prueba
Definir las capas de preprocesamiento de keras
Según el tutorial de datos estructurados, se recomienda usar las capas de preprocesamiento de Keras, ya que son más intuitivas y se pueden integrar fácilmente con los modelos. Sin embargo, también se pueden usar las feature_columns estándar.
Para comprender mejor las preprocessing_layers
en la clasificación de datos estructurados, consulte el tutorial de datos estructurados.
Recupere un lote y observe las características de un registro de muestra. Esto ayudará a definir las capas de preprocesamiento de keras para entrenar el modelo tf.keras
.
Elija un subconjunto de características
Construir, compilar y entrenar el modelo
Inferir sobre los datos de prueba
Nota: Dado que el objetivo de este tutorial es demostrar la capacidad de Tensorflow-IO para transmitir datos desde elasticsearch y entrenar modelos tf.keras
directamente, no veremps cómo mejorar la precisión de los modelos. Sin embargo, el usuario puede explorar el conjunto de datos y jugar con las columnas de características y las arquitecturas del modelo para obtener un mejor rendimiento de clasificación.