Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler

Los datos de series temporales están ampliamente presentes en nuestras vidas. Los precios de las acciones, los precios de la vivienda, la información meteorológica y los datos de ventas capturados a lo largo del tiempo son solo algunos ejemplos. A medida que las empresas buscan cada vez más nuevas formas de obtener información significativa a partir de datos de series temporales, la capacidad de visualizar datos y aplicar las transformaciones deseadas son pasos fundamentales. Sin embargo, los datos de series temporales poseen características y matices únicos en comparación con otros tipos de datos tabulares y requieren consideraciones especiales. Por ejemplo, los datos tabulares o transversales estándar se recopilan en un momento específico. Por el contrario, los datos de series temporales se capturan repetidamente a lo largo del tiempo, y cada punto de datos sucesivo depende de sus valores anteriores.

Debido a que la mayoría de los análisis de series temporales se basan en la información recopilada a través de un conjunto contiguo de observaciones, los datos faltantes y la escasez inherente pueden reducir la precisión de los pronósticos e introducir sesgos. Además, la mayoría de los enfoques de análisis de series de tiempo se basan en el mismo espacio entre los puntos de datos, en otras palabras, la periodicidad. Por lo tanto, la capacidad de corregir irregularidades en el espaciado de datos es un requisito previo crítico. Finalmente, el análisis de series de tiempo a menudo requiere la creación de funciones adicionales que pueden ayudar a explicar la relación inherente entre los datos de entrada y las predicciones futuras. Todos estos factores diferencian los proyectos de series temporales de los escenarios tradicionales de aprendizaje automático (ML) y exigen un enfoque distinto para su análisis.

Esta publicación explica cómo usar Wrangler de datos de Amazon SageMaker para aplicar transformaciones de series temporales y preparar su conjunto de datos para casos de uso de series temporales.

Casos de uso para Data Wrangler

Data Wrangler proporciona una solución sin código o de código bajo para el análisis de series temporales con funciones para limpiar, transformar y preparar datos más rápido. También permite a los científicos de datos preparar datos de series temporales de acuerdo con los requisitos de formato de entrada de su modelo de pronóstico. Las siguientes son algunas formas en que puede usar estas capacidades:

  • Análisis descriptivo– Por lo general, el primer paso de cualquier proyecto de ciencia de datos es comprender los datos. Cuando graficamos datos de series temporales, obtenemos una descripción general de alto nivel de sus patrones, como tendencia, estacionalidad, ciclos y variaciones aleatorias. Nos ayuda a decidir la metodología de pronóstico correcta para representar con precisión estos patrones. El trazado también puede ayudar a identificar valores atípicos, evitando pronósticos poco realistas e inexactos. Data Wrangler viene con un visualización de descomposición de tendencia estacional para representar los componentes de una serie de tiempo, y un visualización de detección de valores atípicos para identificar valores atípicos.
  • Análisis explicativo– Para series de tiempo de múltiples variables, la capacidad de explorar, identificar y modelar la relación entre dos o más series de tiempo es esencial para obtener pronósticos significativos. los Agrupar por transform en Data Wrangler crea múltiples series de tiempo agrupando datos para celdas específicas. Además, las transformaciones de series temporales de Data Wrangler, cuando corresponda, permiten la especificación de columnas de ID adicionales para agrupar, lo que permite un análisis complejo de series temporales.
  • Preparación de datos e ingeniería de características– Los datos de series temporales rara vez tienen el formato esperado por los modelos de series temporales. A menudo requiere preparación de datos para convertir datos sin procesar en características específicas de series de tiempo. Es posible que desee validar que los datos de la serie temporal estén espaciados regularmente o por igual antes del análisis. Para los casos de uso de pronósticos, es posible que desee incorporar características adicionales de series temporales, como autocorrelación y propiedades estadísticas. Con Data Wrangler, puede crear rápidamente características de series de tiempo, como columnas de retraso para múltiples períodos de retraso, volver a muestrear datos en múltiples granularidades de tiempo y extraer automáticamente propiedades estadísticas de una serie de tiempo, por nombrar algunas capacidades.

Resumen de la solución

Esta publicación explica cómo los científicos y analistas de datos pueden usar Data Wrangler para visualizar y preparar datos de series temporales. Usamos el conjunto de datos de criptomonedas bitcoin de descargar criptodatos con detalles comerciales de bitcoin para mostrar estas capacidades. Limpiamos, validamos y transformamos el conjunto de datos sin procesar con características de series temporales y también generamos pronósticos de precios de volumen de bitcoin utilizando el conjunto de datos transformado como entrada.

La muestra de datos comerciales de bitcoin es del 1 de enero al 19 de noviembre de 2021, con 464,116 XNUMX puntos de datos. Los atributos del conjunto de datos incluyen una marca de tiempo del registro de precios, la apertura o el primer precio al que se intercambió la moneda en un día en particular, el precio más alto al que se intercambió la moneda ese día, el último precio al que se intercambió la moneda el el día, el volumen intercambiado en el valor de la criptomoneda en el día en BTC y la moneda USD correspondiente.

Requisitos previos

Descargue nuestra Bitstamp_BTCUSD_2021_minute.csv archivo de descargar criptodatos y subirlo a Servicio de almacenamiento simple de Amazon (Amazon S3).

Importar conjunto de datos de bitcoin en Data Wrangler

Para iniciar el proceso de transferencia a Data Wrangler, complete los siguientes pasos:

  1. En Estudio SageMaker consola, en el Archive menú, seleccione Nuevo, A continuación, elija Flujo de Data Wrangler.
  2. Cambie el nombre del flujo como desee.
  3. Importar fechas, escoger Amazon S3.
  4. Cargar la Bitstamp_BTCUSD_2021_minute.csv archivo de su cubo S3.

Ahora puede obtener una vista previa de su conjunto de datos.

  1. En Detalles panel, elija Configuracion avanzada y deseleccionar Habilitar muestreo.

Este es un conjunto de datos relativamente pequeño, por lo que no necesitamos muestreo.

  1. Elige Importa.

Ha creado correctamente el diagrama de flujo y está listo para agregar pasos de transformación.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Agregar transformaciones

Para agregar transformaciones de datos, elija el signo más junto a Tipos de datos y elige Editar tipos de datos.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Asegúrese de que Data Wrangler infiera automáticamente los tipos de datos correctos para las columnas de datos.

En nuestro caso, los tipos de datos inferidos son correctos. Sin embargo, suponga que un tipo de datos es incorrecto. Puede modificarlos fácilmente a través de la interfaz de usuario, como se muestra en la siguiente captura de pantalla.

editar y revisar tipos de datos

Comencemos el análisis y comencemos a agregar transformaciones.

Limpieza de datos

Primero realizamos varias transformaciones de limpieza de datos.

Columna de caída

Comencemos dejando caer el unix columna, porque usamos el date columna como índice.

  1. Elige Volver al flujo de datos.
  2. Elija el signo más junto a Tipos de datos y elige Agregar transformación.
  3. Elige + Agregar paso existentes TRANSFORMES cristal.
  4. Elige Administrar columnas.
  5. Transformar, escoger Columna de caída.
  6. Columna para soltar, escoger UNIX.
  7. Elige Vista previa.
  8. Elige Añada para salvar el paso.

Falta el mango

La falta de datos es un problema bien conocido en los conjuntos de datos del mundo real. Por lo tanto, es una práctica recomendada verificar la presencia de valores nulos o faltantes y manejarlos de manera adecuada. Nuestro conjunto de datos no contiene valores faltantes. Pero si lo hubiera, usaríamos el Falta el mango transformación de series de tiempo para arreglarlas. Las estrategias comúnmente utilizadas para manejar los datos faltantes incluyen descartar filas con valores faltantes o llenar los valores faltantes con estimaciones razonables. Dado que los datos de series temporales se basan en una secuencia de puntos de datos a lo largo del tiempo, el enfoque preferido es completar los valores faltantes. El proceso de completar los valores faltantes se conoce como imputación. Falta el mango La transformación de series temporales le permite elegir entre múltiples estrategias de imputación.

  1. Elige + Agregar paso existentes TRANSFORMES cristal.
  2. Elija el Series de tiempo transformar.
  3. TransformarElegir Falta el mango.
  4. Tipo de entrada de serie temporal, escoger A lo largo de la columna.
  5. Método para imputar valores, escoger Llenar adelante.

El Llenar adelante El método reemplaza los valores que faltan con los valores que no faltan que preceden a los valores que faltan.

manejar la transformación de serie temporal faltante

Relleno hacia atrás, Valor constante, Valor más común y Interpolar hay otras estrategias de imputación disponibles en Data Wrangler. Las técnicas de interpolación se basan en valores vecinos para completar los valores faltantes. Los datos de series temporales a menudo muestran una correlación entre valores vecinos, lo que hace que la interpolación sea una estrategia de llenado eficaz. Para obtener detalles adicionales sobre las funciones que puede utilizar para aplicar la interpolación, consulte pandas.DataFrame.interpolar.

Validar marca de tiempo

En el análisis de series de tiempo, la columna de marca de tiempo actúa como la columna de índice, alrededor de la cual gira el análisis. Por lo tanto, es esencial asegurarse de que la columna de marca de tiempo no contenga valores de marca de tiempo no válidos o con formato incorrecto. Porque estamos usando el date column como la columna de marca de tiempo y el índice, confirmemos que sus valores tienen el formato correcto.

  1. Elige + Agregar paso existentes TRANSFORMES cristal.
  2. Elija el Series de tiempo transformar.
  3. Transformar, escoger Validar marcas de tiempo.

El Validar marcas de tiempo transform le permite verificar que la columna de marca de tiempo en su conjunto de datos no tenga valores con una marca de tiempo incorrecta o valores faltantes.

  1. Columna de marca de tiempo, escoger datos.
  2. Educativa menú desplegable, elija Indicar.

El Indicar La opción de política crea una columna booleana que indica si el valor en la columna de marca de tiempo tiene un formato de fecha/hora válido. Otras opciones para Educativa incluyen:

  • Error – Lanza un error si falta la columna de marca de tiempo o no es válida
  • Soltar – Elimina la fila si falta la columna de marca de tiempo o no es válida
  1. Elige Vista previa.

Una nueva columna booleana llamada date_is_valid fue creado, con true valores que indican el formato correcto y entradas no nulas. Nuestro conjunto de datos no contiene valores de marca de tiempo no válidos en el date columna. Pero si lo hiciera, podría usar la nueva columna booleana para identificar y corregir esos valores.

Validar transformación de serie temporal de marca de tiempo

  1. Elige Añada para guardar este paso.

Visualización de series de tiempo

Después de limpiar y validar el conjunto de datos, podemos visualizar mejor los datos para comprender sus diferentes componentes.

Volver a muestrear

Como nos interesan las predicciones diarias, transformemos la frecuencia de los datos en diaria.

El Volver a muestrear La transformación cambia la frecuencia de las observaciones de la serie temporal a una granularidad específica y viene con opciones de muestreo ascendente y descendente. La aplicación de muestreo ascendente aumenta la frecuencia de las observaciones (por ejemplo, de diaria a horaria), mientras que la reducción de muestreo disminuye la frecuencia de las observaciones (por ejemplo, de horaria a diaria).

Debido a que nuestro conjunto de datos tiene una granularidad de minutos, usemos la opción de reducción de resolución.

  1. Elige + Agregar paso.
  2. Elija el Series de tiempo transformar.
  3. Transformar, escoger Volver a muestrear.
  4. Timestamp, escoger datos.
  5. Unidad de frecuencia, escoger Dia del calendario.
  6. Cantidad de frecuencia, ingrese 1.
  7. Método para agregar valores numéricos, escoger personalizado.
  8. Elige Vista previa.

La frecuencia de nuestro conjunto de datos ha cambiado de por minuto a diario.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

  1. Elige Añada para guardar este paso.

Descomposición de tendencia estacional

Después del remuestreo, podemos visualizar la serie transformada y sus componentes STL (descomposición estacional y de tendencia usando LOESS) asociados usando el Descomposición de tendencia estacional visualización. Esto desglosa la serie temporal original en distintos componentes de tendencia, estacionalidad y residuos, lo que nos brinda una buena comprensión de cómo se comporta cada patrón. También podemos usar la información al modelar problemas de pronóstico.

Data Wrangler utiliza LOESS, un método estadístico robusto y versátil para modelar tendencias y componentes estacionales. Su implementación subyacente utiliza la regresión polinomial para estimar las relaciones no lineales presentes en los componentes de la serie temporal (estacionalidad, tendencia y residual).

  1. Elige Volver al flujo de datos.
  2. Elija el signo más junto a la pasos on Flujo de datos.
  3. Elige Agregar análisis.
  4. En Crear análisis panel, para tipo de análisis, escoger Series de tiempo.
  5. Visualización, escoger Descomposición de tendencia estacional.
  6. Nombre de análisis, ingresa un nombre.
  7. columna de marca de tiempo, escoger datos.
  8. Columna de valor, escoger Volumen USD.
  9. Elige Vista previa.

El análisis nos permite visualizar la serie temporal de entrada y la estacionalidad, la tendencia y el residual descompuestos.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

  1. Elige Guardar para guardar el análisis.

Con la visualización de descomposición de tendencia estacional, podemos generar cuatro patrones, como se muestra en la captura de pantalla anterior:

  • Original – La serie temporal original remuestreada a granularidad diaria.
  • Tendencia – La tendencia polinómica con un patrón de tendencia negativa general para el año 2021, lo que indica una disminución en Volume USD .
  • Temporada – La estacionalidad multiplicativa representada por los diferentes patrones de oscilación. Vemos una disminución en la variación estacional, caracterizada por la disminución de la amplitud de las oscilaciones.
  • Residual – El resto de ruido residual o aleatorio. La serie residual es la serie resultante después de eliminar los componentes de tendencia y estacionales. Mirando de cerca, observamos picos entre enero y marzo, y entre abril y junio, lo que sugiere espacio para modelar eventos particulares usando datos históricos.

Estas visualizaciones brindan pistas valiosas para los científicos y analistas de datos sobre patrones existentes y pueden ayudarlo a elegir una estrategia de modelado. Sin embargo, siempre es una buena práctica validar el resultado de la descomposición STL con la información recopilada a través del análisis descriptivo y la experiencia en el dominio.

En resumen, observamos una tendencia a la baja consistente con la visualización de la serie original, lo que aumenta nuestra confianza en la incorporación de la información transmitida por la visualización de tendencias en la toma de decisiones posteriores. Por el contrario, la visualización de la estacionalidad ayuda a informar la presencia de la estacionalidad y la necesidad de eliminarla mediante la aplicación de técnicas como la diferenciación, no proporciona el nivel deseado de información detallada sobre los diversos patrones estacionales presentes, por lo que requiere un análisis más profundo.

Ingeniería de características

Una vez que comprendemos los patrones presentes en nuestro conjunto de datos, podemos comenzar a diseñar nuevas funciones destinadas a aumentar la precisión de los modelos de pronóstico.

Destacar fecha y hora

Comencemos el proceso de ingeniería de funciones con funciones de fecha/hora más sencillas. Las características de fecha/hora se crean a partir de la timestamp columna y proporcionar una vía óptima para que los científicos de datos comiencen el proceso de ingeniería de características. Empezamos con el Destacar fecha y hora transformación de series temporales para agregar las funciones de mes, día del mes, día del año, semana del año y trimestre a nuestro conjunto de datos. Debido a que proporcionamos los componentes de fecha/hora como características separadas, permitimos que los algoritmos de ML detecten señales y patrones para mejorar la precisión de la predicción.

  1. Elige + Agregar paso.
  2. Elija el Series de tiempo transformar.
  3. Transformar, escoger Destacar fecha y hora.
  4. Columna de entrada, escoger datos.
  5. Columna de salida, introduzca date (este paso es opcional).
  6. Modo de salida, escoger Ordinal.
  7. Formato de salida, escoger Columnas.
  8. Para funciones de fecha/hora para extraer, seleccione Mes, Día, semana del año, Día del añoy Trimestre.
  9. Elige Vista previa.

El conjunto de datos ahora contiene nuevas columnas llamadas date_month, date_day, date_week_of_year, date_day_of_yeary date_quarter. La información recuperada de estas nuevas funciones podría ayudar a los científicos de datos a obtener información adicional de los datos y de la relación entre las funciones de entrada y las funciones de salida.

caracterizar la transformación de serie temporal de fecha y hora

  1. Elige Añada para guardar este paso.

Codificar categórico

Las funciones de fecha/hora no se limitan a valores enteros. También puede optar por considerar ciertas características de fecha/hora extraídas como variables categóricas y representarlas como características codificadas en caliente, con cada columna que contiene valores binarios. El recién creado date_quarter La columna contiene valores entre 0 y 3, y se puede codificar en caliente utilizando cuatro columnas binarias. Vamos a crear cuatro nuevas características binarias, cada una de las cuales representa el trimestre correspondiente del año.

  1. Elige + Agregar paso.
  2. Elija el Codificar categórico transformar.
  3. Transformar, escoger Codificación one-hot.
  4. Columna de entrada, escoger fecha_trimestre.
  5. Estilo de salida, escoger Columnas.
  6. Elige Vista previa.
  7. Elige Añada para agregar el paso.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

función de retraso

A continuación, creemos funciones de retraso para la columna de destino Volume USD. Las características de retraso en el análisis de series temporales son valores en marcas de tiempo anteriores que se consideran útiles para inferir valores futuros. También ayudan a identificar la autocorrelación (también conocida como correlación en serie) patrones en la serie residual mediante la cuantificación de la relación de la observación con las observaciones en pasos de tiempo anteriores. La autocorrelación es similar a la correlación normal pero entre los valores de una serie y sus valores pasados. Forma la base para los modelos de pronóstico autorregresivos en la serie ARIMA.

Con el controlador de datos función de retraso transform, puede crear fácilmente características de retraso con períodos separados. Además, a menudo queremos crear múltiples funciones de retraso en diferentes retrasos y dejar que el modelo decida las funciones más significativas. Para tal escenario, el Funciones de retraso transform ayuda a crear varias columnas de retraso en un tamaño de ventana específico.

  1. Elige Volver al flujo de datos.
  2. Elija el signo más junto a la pasos on Flujo de datos.
  3. Elige + Agregar paso.
  4. Elige Series de tiempo transformar.
  5. Transformar, escoger Funciones de retraso.
  6. Generar características de retraso para esta columna, escoger Volumen USD.
  7. Columna de marca de tiempo, escoger datos.
  8. Equipo, introduzca 7.
  9. Como nos interesa observar hasta los siete valores de retraso anteriores, seleccionemos Incluir toda la ventana de retraso.
  10. Para crear una nueva columna para cada valor de retraso, seleccione Aplanar la salida.
  11. Elige Vista previa.

Se añaden siete nuevas columnas, con el sufijo lag_number palabra clave para la columna de destino Volume USD.

Transformación de serie temporal de función de retraso

  1. Elige Añada para salvar el paso.

Características de la ventana móvil

También podemos calcular resúmenes estadísticos significativos en un rango de valores e incluirlos como características de entrada. Extraigamos las características comunes de las series temporales estadísticas.

Data Wrangler implementa capacidades automáticas de extracción de características de series temporales utilizando el código abierto fresco paquete. Con las transformaciones de extracción de características de series temporales, puede automatizar el proceso de extracción de características. Esto elimina el tiempo y el esfuerzo que, de lo contrario, se gastarían implementando manualmente las bibliotecas de procesamiento de señales. Para esta publicación, extraemos características usando el Características de la ventana móvil transformar. Este método calcula las propiedades estadísticas a través de un conjunto de observaciones definidas por el tamaño de la ventana.

  1. Elige + Agregar paso.
  2. Elija el Series de tiempo transformar.
  3. Transformar, escoger Características de la ventana móvil.
  4. Generar funciones de ventana móvil para esta columna, escoger Volumen USD.
  5. Columna de marca de tiempo, escoger datos.
  6. Tamaño de ventana, introduzca 7.

Especificar un tamaño de ventana de 7 calcula características combinando el valor en la marca de tiempo actual y los valores de las siete marcas de tiempo anteriores.

  1. Seleccione Aplanar para crear una nueva columna para cada entidad calculada.
  2. Elige tu estrategia como subconjunto mínimo.

Esta estrategia extrae ocho características que son útiles en los análisis posteriores. Otras estrategias incluyen Subconjunto eficiente, Subconjunto personalizadoy Todas las características. Para obtener una lista completa de las funciones disponibles para la extracción, consulte Descripción general de las características extraídas.

  1. Elige Vista previa.

Podemos ver ocho columnas nuevas con un tamaño de ventana especificado de 7 en su nombre, adjunto a nuestro conjunto de datos.

  1. Elige Añada para salvar el paso.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Exportar el conjunto de datos

Hemos transformado el conjunto de datos de la serie temporal y estamos listos para usar el conjunto de datos transformado como entrada para un algoritmo de pronóstico. El último paso es exportar el conjunto de datos transformado a Amazon S3. En Data Wrangler, puede elegir Paso de exportación para generar automáticamente un cuaderno Jupyter con el código de procesamiento de Amazon SageMaker para procesar y exportar el conjunto de datos transformado a un depósito S3. Sin embargo, debido a que nuestro conjunto de datos contiene poco más de 300 registros, aprovechemos la Exportar datos opción en el Agregar transformación view para exportar el conjunto de datos transformado directamente a Amazon S3 desde Data Wrangler.

  1. Elige Exportar datos.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

  1. Ubicación S3, escoger Navegador y elija su cubo S3.
  2. Elige Exportar datos.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Ahora que hemos transformado con éxito el conjunto de datos de bitcoin, podemos usar Pronóstico del Amazonas para generar predicciones de bitcoin.

Limpiar

Si ha terminado con este caso de uso, limpie los recursos que creó para evitar incurrir en cargos adicionales. Para Data Wrangler, puede cerrar la instancia subyacente cuando haya terminado. Referirse a Cerrar Data Wrangler documentación para más detalles. Alternativamente, puede continuar con Parte 2 de esta serie para utilizar este conjunto de datos para la previsión.

Resumen

Esta publicación demostró cómo utilizar Data Wrangler para simplificar y acelerar el análisis de series temporales utilizando sus capacidades integradas de series temporales. Exploramos cómo los científicos de datos pueden limpiar, formatear, validar y transformar datos de series temporales de manera fácil e interactiva en el formato deseado, para un análisis significativo. También exploramos cómo puede enriquecer su análisis de series temporales agregando un conjunto completo de características estadísticas utilizando Data Wrangler. Para obtener más información sobre las transformaciones de series temporales en Data Wrangler, consulte Transformar datos.


Sobre la autora

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Baños de agua es un arquitecto de soluciones en AWS que se enfoca en AI/ML. Le apasiona ayudar a los clientes a innovar y lograr sus objetivos comerciales utilizando Inteligencia Artificial y Aprendizaje Automático. En su tiempo libre, a Roop le gusta leer y caminar.

Prepare datos de series temporales con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Nikita Ivkina es un científico aplicado, Amazon SageMaker Data Wrangler.

Sello de tiempo:

Mas de Aprendizaje automático de AWS