Ciclo de vida

Desde el momento inicial de su creación o generación, los datos siguen un ciclo de vida hasta que acaban siendo publicados para su diseminación, así como la implementación de los modelos creados. A lo largo de este proceso, en cada una de las etapas o fases, existe un objetivo único o más específico que aporta valor. Aunque no todas las fases son necesarias en función del tipo de dato o su naturaleza, las principales etapas del ciclo de vida son las siguientes:

  • Generación
  • Captura
  • Almacenamiento
  • Procesamiento
  • Análisis
  • Visualización
  • Publicación
  • Implementación

Obviamente, un recurso puede dar soporte a una o más fases del ciclo de vida, aunque se recomienda restringir su categorización a aquellas fases donde su utilización sea más adecuada y típica.

Generación

La primera fase del ciclo de vida de los datos es su generación, normalmente como resultado de un proceso que puede incluir la intervención humana o no.

En el primer caso, un ejemplo es cuando un cliente realiza un pago en un establecimiento comercial. En ese momento se genera un registro que contiene toda la información de ese hecho: nombre del establecimiento (y tal vez su dirección), fecha y hora, la lista de elementos comprados, el precio de cada uno y el precio total, los datos del cliente si están disponibles y el método de pago, ya sea efectivo, con tarjeta o por cualquier otro medio.

En el segundo caso, un ejemplo es cuando un sensor (por ejemplo de movimiento) detecta un cambio en una situación y genera un aviso, indicando el momento exacto, el grado de variación detectado y, seguramente, la localización del sensor y un identificador único que permite saber de qué sensor se trata. Otro ejemplo diferente es cuando un usuario de Twitter publica un tuit y este tuit está disponible para todos sus followers y en el timeline general de Twitter. En el primer ejemplo, se genera un dato que seguramente tiene un destinatario concreto, mientras que en el segundo es necesario un procedimiento de captura posterior para obtener los datos.

En esta fase, lo más importante es establecer el formato de los datos que constituyen la prueba del dato que acaba de generar, incluidos aspectos como su codificación, la precisión, las unidades, el formato, etc.

Captura

En múltiples ocasiones, los datos se generan por procesos automatizados sin intervención humana, o bien se encuentran en algún lugar y es necesario buscarlos y obtenerlos; es lo que se entiende como captura de datos, una fase que en muchos casos está ligada a la de etapa anterior, la de generación.

Un ejemplo es la captura de los tuits que se generan sobre un tema y a los cuales podemos acceder mediante diferentes mecanismos, desde una forma ordenada usando las herramientas que Twitter pone a nuestra disposición para hacerlo, hasta otros mecanismos que usan técnicas de web scraping y que se aprovechan de la información publicada en la web.

Realmente, lo ideal sería que los datos se generarán ya con un formato que simplifique el proceso de almacenamiento y otras posteriores manipulaciones, pero desgraciadamente no siempre es así; resulta necesario desarrollar pequeñas herramientas que permiten acceder, por ejemplo, a un sitio web, y extraer (es decir, capturar) la información que nos interesa (y solo aquella que nos interesa).

Por tanto, en esta fase, nos centraremos en herramientas que permiten acceder a datos más o menos estructurados, los cuales pueden existir durante un periodo limitado y que hay que ir capturando conforme van apareciendo. En general, no hay una herramienta que permita resolver todos estos tipos de problemas siempre, sino que será necesario adoptar una aproximación más de tipo «ingenieril» y resolver cada problema con las herramientas más adecuadas disponibles en cada momento.

Almacenamiento

Una vez que los datos han sido capturados, incluso en los sistemas basados en tiempo real o streaming, se suelen almacenar copias de los datos. Se debe a que en ocasiones el análisis se realiza con posterioridad, o quizás se desea mantener un histórico de la información capturada. El disponer de un registro histórico nos puede servir para futuros análisis basados en información de eventos pasados, generación de modelos, etc.

Debido a que la información capturada puede suponer un volumen importante, es necesario adoptar soluciones de almacenamiento capaces de tratar una gran cantidad de datos de forma simultánea y eficiente, considerando sus prestaciones, escalabilidad y fiabilidad frente a cualquier problema, especialmente en contextos big data.

Procesamiento

Habitualmente, es necesario realizar un trabajo previo de procesado de los datos capturados y/o almacenados en bruto, para posteriormente poder analizar la información obtenida y ponerlos en valor. Esto se debe a que generalmente la forma en que los datos se encuentran almacenados en ficheros o en bases de datos no es la más adecuada para realizar el propio análisis de datos. Típicamente, las fases de análisis y visualización necesitan los datos en formato tabular, donde cada elemento se almacena en una única fila y cada campo o atributo se almacena en una única columna.

En esta fase se incluyen todas las herramientas y procesos orientados a la limpieza de datos, su selección, la fusión de diferentes fuentes de datos o su enriquecimiento mediante el uso de datos de terceros o API, etc., con el objetivo de disponer de un único fichero para su análisis posterior.

En ocasiones, los datos en bruto requerirán la aplicación de diferentes técnicas para disponer de los datos debidamente estructurados para que se puedan utilizar en posteriores fases. Durante el procesamiento, los pasos que debemos considerar son los siguientes:

  • Limpieza: el tratamiento de limpieza de datos se realizará completando valores faltantes (missing values), identificando los outliers y corrigiendo la inconsistencia de datos.
  • Integración: revisaremos la redundancia de datos.
  • Transformación: analizaremos si es necesario realizar algún tipo de transformación como normalización, generalización o suavizado.
  • Reducción: orientado a reducir el tamaño de los datos, por ejemplo, mediante la agregación.
  • Discretización o binning: consiste en la reducción de una serie de valores de un atributo continuo a un rango de atributos categóricos, considerando también la utilización de técnicas de binarización (binning).

Por ejemplo, podemos requerir datos que se encuentren almacenados en uno o más ficheros de texto, o en formatos CSV o Excel, y fusionarlos en uno solo, así como complementar parte de esta información con datos provenientes de una base de datos.

Análisis

Durante esta fase, es posible que tengamos que realizar diferentes tipos de análisis estadísticos (descriptivos, inferenciales, etc.) o de minería de datos (supervisados o no supervisados), así como un análisis visual para explorar e inspeccionar los datos en función de nuestro objetivo, aprendiendo de la naturaleza de los datos con los que estemos trabajando. El objetivo final será poner en valor los datos y poder obtener conclusiones sobre ellos mediante la construcción de modelos que nos permitan predecir valores futuros, la generación de clasificaciones o agrupaciones, etc.

Esta fase es la que se considera como clave en cualquier proyecto de ciencia de datos, aun cuando requiere de la fase anterior de procesamiento para poder ser llevada a cabo de forma adecuada, y seguramente también de la fase de visualización para aprovechar las capacidades del sistema visual humano como herramienta de análisis. De hecho, algunas técnicas de análisis de datos están pensadas para la preparación de los datos antes de su análisis final, como, por ejemplo, la reducción de dimensionalidad, o generan datos que se pueden analizar visualmente, como los algoritmos de clustering jerárquicos.

Algunos ejemplos pueden ser determinar la probabilidad de fraude en función de información histórica recogida en el pago con tarjeta de crédito, predecir la probabilidad de baja de un cliente en una compañía telefónica, o la recomendación de productos en una tienda online a partir del perfil de un usuario.

Esta fase, en combinación con la de visualización, no termina con la creación de los modelos, sino que debe incluir también una interpretación de estos, de forma que se pueda extraer conocimiento del problema que se desea resolver, incluido un análisis de la importancia de cada variable, el tipo de errores cometidos por el modelo construido, la detección de outliers, etc.

Visualización

La visualización, como comentamos en la fase anterior de análisis, es de gran utilidad para inspeccionar los datos de forma que es posible detectar dependencias, relaciones, tendencias, datos atípicos u outliers, etc. Por otra parte, la visualización nos permite también la presentación de los datos y resultados obtenidos de forma gráfica, de manera que sean fácilmente interpretables tanto para los científicos de datos como para el usuario final. Actualmente, las herramientas y recursos que tenemos a nuestro alcance nos facilitan poder difundir las conclusiones de la fase de análisis, cosa que permite, incluso, poder navegar o profundizar en los datos presentados mediante la interacción con ellos. Así, las principales características que presentan estas herramientas interactivas son el filtrado, la selección, la comparación, el zoom, el overview, etc.

Publicación

La etapa final del ciclo de vida de los datos es su publicación o diseminación; en algunos casos, de los resultados obtenidos en las fases de análisis y visualización. En esta fase, el objetivo principal es poner a disposición de terceros las conclusiones o resultados en forma de nuevos datos.

Actualmente, existen diferentes formas de llevarlo a cabo, como la publicación de tu propia web o webs de terceros, compartir la información en sistemas de almacenamiento en la nube, etc., pero lo más recomendable es utilizar un repositorio digital pensado para dicho uso. Con su utilización, garantizamos la preservación y diseminación de la información, además de posibilitar su distribución (Internet, red local…). Mediante la preservación, garantizamos la disponibilidad de los datos o información estableciendo su formato, su estructura para su reutilización futura. Respecto a la diseminación, esta posibilita su reutilización, especificando la estructura y formato en los denominados metadatos, así como el uso que podemos hacer de ellos y sus restricciones.

Implementación

Finalmente, aunque no se trata de una etapa del ciclo de vida propiamente dicha, es necesario poder convertir un modelo creado en un «laboratorio» en una herramienta o un producto que resuelva el problema para el cual fue creado, mediante el uso de una implementación concreta y el uso de recursos en la nube, incluidos no solo aspectos de almacenamiento, sino también de cómputo, y su distribución en forma de software-como-servicio o mediante el uso de máquinas virtuales.