Investigación sobre predicción de patologías físicas y psicológicas

 1.- He estado asignado al departamento de Ingeniería de Emobotics los últimos meses, bajo la dirección de Adrián Vélez. Todas las actividades que he hecho han sido las siguientes:

 

  1. Búsqueda de smartwatches. 

Busqué diferentes marcas y modelos de smartwatches y smartbands para ver cual de ellos tenía mejores características (poder leer el ritmo cardíaco, niveles de oxígeno en sangre, pasos etc…).

 

  1. Obtención de datos.
    Una vez decidida la smartband usada (Xiaomi smartband 6), se procedió a la recogida de datos durante varias sesiones y días, para saber cómo estructurar dicho dispositivo y app relacionada (mifit) los datos que recogía una vez exportados.

     

  2. Google Cloud.
    Se asoció mi cuenta de correo Gmail al proyecto de la empresa en la plataforma de Google Cloud, para poder usar sus servicios en línea, como la capacidad de recoger datos en streaming y guardarlos.

     

  3. Guardado en nube.
    Se creó un “bucket” para guardar los datos que se le pasen.

     

  4. Dataflow.
    Se estructuró un dataflow para la estructuración de la ejecución del código, escrito en lenguaje Python, que se sube y ejecuta.

     

  5. Pub/Sub.
    Para que la recogida de datos y su posterior lectura fueran más sencillos, dicho código mencionado antes se escribió teniendo en cuenta la estructura y servicio de Pub/Sub, que consiste en crear un tema (en este caso la conexión y envío de los datos) al que se suscriben 1 o varios usuarios, que recogen dichos datos y los guardan (en el bucket mencionado anteriormente). Se utilizó la variante LITE de este servicio, que hace más sencillo el posterior trabajo con ellos.

     

  6. Lectura.
    Para hacer la lectura de los datos en streaming mediante este servicio, se escribió el código en Python utilizando las librerías y objetos de Google Cloud que se tuvieron que descargar e instalar tanto en ordenadores personales como en la propia plataforma. Se tuvo en cuenta la estructura con la que la smartband codifica los datos.

     

  7. Guardado.
    El guardado se codificó también en Python, pero haciéndolo en 2 fases:

    1. Guardado de los datos recién recibidos en un archivo CSV.

    2. Volcado 2 veces al día de dicho CSV a un archivo Avro, que puede contener y comprimir grandes cantidades de datos.

Esto se decidió así como medida de seguridad ya que, si hubiera un problema (generalmente con los datos recibidos) y estos se corrompieran o perdieran, sólo se perderían unos pocos megas o gigabytes, lo cual sería preferible a perder terabytes de datos.

 

  1. Funciones.
    Se escribieron funciones en el dataflow de GCP para poder hacer el volcado de datos mencionado en el anterior punto, aprovechando la capacidad de automatización de la plataforma.

     

 

2.- Recursos utilizados:


Para el desarrollo de las prácticas he tenido que utilizar los siguientes recursos:

 

  • Google Cloud Platform.

  • Bucket.

  • Dataflow.

  • Clusters.

  • Pub/sub.

  • Python. Ejecutado en:

    • Anaconda navigator.

    • Google Colab.

  • Coursera.

    • Curso de Google Platform.

 

 

3.- Valoración de las tareas desarrolladas con los conocimientos y competencias adquiridos en relación con los estudios universitarios:


Las tareas han sido muy satisfactorias. Yo partía de un conocimiento previo suficiente de las principales áreas de trabajo y herramientas a utilizar. Las prácticas me han aportado un conocimiento más profundo de las herramientas empleadas.

 

 

4.- Relación de los problemas planteados y el procedimiento seguido para su resolución:


Los problemas que se me han planteado durante las prácticas han resultado bastante asequibles a mis conocimientos, aunque no tuviera conocimiento en el área específica de programación en la nube, que pudo ser solucionada mediante la realización de un curso en la plataforma Coursera. Aun así, todos se han planteado y ejecutado con seriedad y persistencia, sin miedo a pedir ayuda para su resolución.

 

 

5. Identificación de las aportaciones que, en materia de aprendizaje, han supuesto las prácticas:


Antes de las prácticas, mi conocimiento de las aplicaciones y programación en la nube era prácticamente nulo, y ahora he adquirido conocimiento, aunque todavía a un nivel básico, para programación en la nube.

Por otro lado, mi conocimiento previo del lenguaje Python, su estructura y librerías, así como una perspectiva de cómo estructurar los datos para su posterior almacenamiento y uso para la minería de datos ha permitido una profundización significativa con dichas prácticas.

 

 

6. Evaluación de las prácticas y sugerencias de mejora:


Las prácticas han sido muy satisfactorias, tanto por los conocimientos adquiridos como por los retos superados, que mediante las explicaciones y perspectiva sé que serán muy útiles en el futuro, tanto para la empresa como para mí, debido a la gran importancia que tendrán tanto los conocimientos en el lenguaje Python como la capacidad de hacer streaming y otros tipos de computación en la nube.

 

 

Jorge Guerrero, practicante del Máster en Big Data UNIR