El proceso de Data Science: consejos sobre la calidad, filtrado y almacenamiento de los datos

Inteligencia Artificial

,

Data Intelligence

El proceso de Data Science: consejos sobre la calidad, filtrado y almacenamiento de los datos

Jaime Perez Cuadrado | Jun 04, 2019

Hace poco, hablábamos sobre cómo identificar un problema en los proyectos de Data Science (algo completamente distinto de la recopilación de requisitos tradicional en la inteligencia de negocios) y sobre los procesos y herramientas relacionados con la recogida de datos no procesados. Ahora que ya sabemos cómo formular las preguntas adecuadas para identificar el problema empresarial y que hemos sido capaces de recopilar los datos no procesados que necesitamos, es hora de lanzarse a una tarea esencial: el tratamiento de datos.

Para poder examinar datos a un alto nivel, el ingeniero de datos debe dividir las fases de manipulación o tratamiento de datos para proponer la arquitectura y componentes que mejor se ajusten a las necesidades de cada fase.

Pero ¿de qué fases estamos hablando? En pocas palabras, nos referimos a:

  • La calidad y el filtrado de los datos.
  • El almacenamiento de los datos.

El tratamiento de datos al que nos referimos en este artículo es una fase preparatoria para los siguientes pasos del proceso de Data Science (lee nuestro primer artículo de la serie), a saber: la exploración de datos y el análisis en profundidad.

Data Science Process - Data Quality and Cleansing


La calidad y el filtrado de los datos

Los datos tienen toda una serie de propiedades que los definen: tipo, formato, acceso, disponibilidad, volumen, naturaleza, etc. Todas estas propiedades influirán en la definición de los componentes de la arquitectura y los procesos para recopilar y manipular datos.

A partir de los datos no procesados —que convendrá conservar tal cual, ya que deben quedar como una «imagen digital» de los datos originales—, los ingenieros de datos comienzan un análisis de alto nivel, normalmente buscando errores formales, como tipos de datos erróneos (p. ej., si esperaba una fecha pero encuentro un número, o códigos sin sentido y clasificaciones, valores ausentes, etc.), y aplican técnicas para filtrar los datos y mejorar su calidad (p. ej., la interpolación, para estimar los valores ausentes).

Este es el punto en el que pueden chocar la teoría y el mundo real: ¿Existe una distinción clara entre las tareas de un ingeniero de datos y un científico de datos? Lo que quiero decir es que las actividades de filtrado de datos pueden llevarse a cabo desde una perspectiva puramente «formal» (mira los ejemplos más arriba) o con la vista puesta en el problema empresarial que queremos solucionar. Por ejemplo, mitigar los máximos y mínimos de una serie de datos suele ser una buena práctica en los procesos de predicción, pero es posible que me enfrente a un caso empresarial en el que los máximos sean algo interesante que quiero investigar, en lugar de eliminar.

Suponiendo que cuentes con ambas competencias en el equipo (en caso contrario, no dispones del personal adecuado), esta no es una cuestión vital y puede resolverse con el trabajo en equipo de toda la vida. Te sugerimos que cuentes con científicos que echen un vistazo y una mano en las tareas de calidad de datos realizadas por los ingenieros: al final, cuatro ojos ven más que dos.  

En lo que respecta a las herramientas y destrezas, existen muchas plataformas de integración de datos que incluyen potentes funciones de calidad (Oracle, Informatica, IBM, Talend, etc., por nombrar solo las más comunes del mercado) que reducen el tiempo necesario para realizar tareas concretas, especialmente las destinadas a estandarizar datos (como nombres, direcciones, o números de teléfono). Aparte de estas, muy a menudo vemos lenguajes y marcos como Python, R o Scala, que se utilizan cuando las necesidades de filtrado son más «exóticas» y dependen de las condiciones. Obviamente, las plataformas en la nube ofrecen servicios de gestión de las actividades relacionadas con los datos, por lo que podemos aplicar cualquier tipo de arquitectura: local, completamente en la nube o híbrida.

El almacenamiento de los datos

Otra decisión importante que tiene que tomar el ingeniero de datos es la que afecta al repositorio —dónde almacenar los datos extraídos—, ya que debe decidir entre una variedad de opciones: archivos, bases de datos relacionales, bases de datos NoSQL (columnares, documentales o gráficas), bases clave-valor y XML (por citar solo las más comunes).

Un dilema frecuente es el que surge al tener que escoger entre bases de datos relacionales y bases de datos NoSQL.

Las bases de datos no relacionales (NoSQL) tienen la ventaja de que son más escalables y están diseñadas para soportar estructuras distribuidas; por lo general son más rápidas, adaptables y flexibles que las bases de datos relacionales. Además, al tener una estructura documental y almacenar la información en una jerarquía de carpetas, las bases no relacionales son la mejor opción cuando se trata de almacenar datos no estructurados como documentos, imágenes, tuits y otra clase de datos difíciles de encajar en una estructura de filas y columnas.

Por otro lado, las bases de datos NoSQL no son 100 % compatibles con el lenguaje SQL estándar y, lo que es más importante, no garantizan la integridad absoluta de los datos (el nirvana del almacén de datos). Aparte de todo esto, si tus requisitos de análisis quedan satisfechos con datos estructurados y no esperas que tu negocio crezca exponencialmente, podría bastarte con una base de datos relacional.

No todas las soluciones de aprendizaje automático necesitan grandes volúmenes de datos (bueno, pues ya lo he dicho). En realidad, todo depende de la naturaleza del problema empresarial y, por lo tanto, del tipo de datos con los que tienes que trabajar. La buena noticia es que puedes tener una arquitectura de datos en la que coexistan los dos tipos de bases de datos, para prestar el mejor soporte a los diversos tipos de carga de trabajo y almacenamiento. 

La actual innovación tecnológica nos permite utilizar el almacenamiento distribuido (o replicado) —que básicamente consiste en copias distribuidas de los datos en diferentes servidores—, lo que nos permite aumentar la flexibilidad, el rendimiento y la escalabilidad, resolviendo los problemas en caso de que el sistema falle. Para ello no son necesarios grandes conocimientos por parte de los ingenieros de datos, ya que es algo que puede hacer normalmente de forma transparente la propia base de datos, especialmente si utilizamos servicios en la nube como Amazon Aurora, Google Spanner o Microsoft Cosmos DB.

Data Science Process - Data Architecture


Escoge la arquitectura más adecuada para tu solución

Una vez que tengamos los datos, los científicos de datos pueden comenzar su proceso de análisis para lograr los objetivos propuestos. Para llevar a cabo estos procesos, podemos utilizar los mismos lenguajes de programación y marcos usados para conseguir los datos, o incluso herramientas integrales como Knime, RapidMiner, DataRobot, SAS Visual Data Mining y Machine Learning. Pero volvamos al tema del principio, la arquitectura y el tratamiento de datos.

La forma de organizar y ejecutar los procesos analíticos introduce conceptos como los de sistemas distribuidos y sistemas paralelos, cuya diferencia, en términos generales, es que un sistema paralelo puede definirse como aquel que divide un proceso en tareas que se ejecutan al mismo tiempo, mientras que el sistema distribuido divide el proceso en tareas que se ejecutan en diferentes lugares y con diferentes recursos. Resulta interesante conocer la forma en la que se ejecutan los procesos para aumentar sus posibilidades al escalar los recursos.

Los resultados de nuestro análisis y la aplicación de nuestros algoritmos pueden integrarse y almacenarse de nuevo en los mismos sistemas de los que hemos obtenido los datos de partida, almacenados en nuestro nuevo repositorio (que puede ser un lago de datos), o incluso en un nuevo repositorio analítico específico, que posibilita un modelo de explotación más ágil y rápido.

Se recomienda que los ingenieros de datos construyan y mantengan un diccionario de datos, con todas las definiciones de las fuentes, los procesos de carga, las transformaciones, los KPI y, en general, toda la información que tenemos que recopilar, ya que puede resultar muy útil a la hora de extraer o aprovechar esta información para posteriores análisis.

Después, una vez que los científicos de datos han identificado el mejor algoritmo para responder a las necesidades de la empresa y han conseguido resultados de alta calidad, es hora de hacernos preguntas sobre la visibilidad, la accesibilidad y la fiabilidad de la información que producimos. Como ya hemos dicho más arriba, a veces es una cuestión de saber dónde almacenar los datos, aunque cada vez más se trata de saber cómo accederán los usuarios a los datos. Y aquí, nos enfrentamos a diversas posibilidades.

Podría ser que el nuevo conocimiento inferido aplicando técnicas de Data Science se utilice como apoyo en el proceso de análisis llevado a cabo por equipos internos especializados, pero también podría ser que la información vaya a ser usada por aplicaciones de terceros, incluso por aplicaciones transaccionales (pensemos en un algoritmo para sugerir la próxima mejor oferta en un proceso de venta, por ejemplo). En tales casos, tendremos que poner en marcha mecanismos y protocolos para acceder a la información con interfaces de comunicación como API, o desarrollar mecanismos de publicación con tecnologías como Apache Beam, por citar tan solo una de ellas.

En resumen, incluso en un paso del proceso de Data Science como el tratamiento, que podría parecer a simple vista menos complicado que otros, la cantidad de opciones técnicas, de decisiones que hay que tomar, de opciones que se deben seleccionar y de tecnologías implicadas es tan enorme, que resulta muy raro encontrar todas las destrezas necesarias en una sola persona, lo que confirma de nuevo que ¡el Data Science es definitivamente un deporte de equipo!

 

Consigue una verdadera transformación digital

Desde Techedge, debido a nuestra amplia experiencia, nos ofrecemos a ser tu partner en este proceso clave de una adecuada transformación digital. 

¡Quiero saber más!

¡Suscríbete!