Como creé mi portafolio de ciencia de datos

Armar un portafolio de ciencia de datos no es algo que se debe de tomar a la ligera, se necesita pensar muy bien la estrategia para que el resultado sea algo tangible y que valga la pena mostrar, ya sea para obtener feedback de los proyectos enlistados, para mostrar que tienes experiencia en cierto topic o para demostrarte a ti mismo que tu objetivo de ser mejor en temas de datos se está cumpliendo.

En esta ocasión les contaré acerca de cómo creé mi portafolio de ciencia de datos, con suerte, mi experiencia le podrá servir a alguien que esté buscando cómo iniciar.

Todo comenzó con una estadía de 6 meses en Alemania en un Retiro de Ciencia de datos, meses de puro focus en la materia…

Comencé por “dominar” python. Poco sabía acerca del lenguaje, así que comencé a seguir diversos tutoriales que encontraba en la web para aprender lo básico: variables, funciones y clases; después, mas que enfocarme en el uso del lenguaje para fines web o de ingeniería de software, me enfoque a aprender el lenguaje con un enfoque a los datos: descubrí las Jupyter notebooks y comencé a usar las librerías más populares de python (para datos), pandas, numpy, y matplotlib, siguiendo tutoriales muy sencillos para aprender como crear arreglos, como crear un dataframe, como hacer operaciones entre dataframes, etc. cosas sencillas que son la base para muchas cosas grandes…. Y fue así que cree mi propio set de ejercicios que ahora les comparto por si quieren echarle un vistazo.

Cuando me sentí segura con Python, comencé a descargar datasets y a manipular esos datos. Empecé creando dataframes, filtros de datos, queries (en notación de pandas), arreglos, transformaciones, borrado de información, merges de dataframes, etc.; trabajos de manipulación de datos.

A la par, leía e investigaba acerca de los conceptos fundamentales de machine learning. Descubrí que es un modelo, que es el set de entrenamiento, que es el set de validación, que es overfitting, que significa bias, cuales son las librerías que me permiten hacer machine learning en python…. Entre muchas otras cosas jaja y lo digo así porque comenzaba leyendo acerca de una cosa y terminaba en otra… El Machine learning es algo que no se aprende en unos días ni en unos meses…

Cuando tuve ese conocimiento, exploré acerca de las cosas que se han hecho con machine learning: me enteré de que existen los sistemas de recomendación, el análisis de sentimientos, la clasificación de imágenes y muchas cosas impresionantes. Incluso vi la película de Alpha go que esta en Netflix, y que les recomiendo.

Me puse a reflexionar acerca de todo el conocimiento que ya había adquirido, y me dije a mí misma “tienes que crearte un problema a resolver con machine learning” …. Comentándolo con mis compañeros de la escuela surgieron muchas ideas, todas muy padres y entre más fascinantes más complicadas para alguien nuevo como yo. Entre tanta platica alguien comentó acerca del natural language processing, y me encantó. Fue entonces que decidí que haría algo utilizando NLP (al fin y al cabo tenía que aprender eligiera lo que eligiera). 

Con esto en mente, me puse a leer acerca del natural language processing, muchos papers y artículos, tenia tanto por leer en la lista que desee con todas mis fuerzas tener un Jarvis (si, un asistente como en Iron Man) que leyera las cosas por mi y que solo me diera un resumen ….. Y sin planearlo, bingo, ¡ya tengo proyecto! Haría un sistema que resumiera los textos por mí. Si, investigue y vi que ya existen muchas herramientas para esto, así que decidí añadir un plus… sería el texto de mi correo electrónico de gmail lo que mi asistente personal resumiera por mí.

Y así fue como nació YAIA (Yet Another Intelligent Assistant), proyecto que desarrolle en dos meses y que cuenta con varios componentes claves que me permiten mostrar que tengo experiencia en diferentes áreas:

El producto final

  • Es una aplicación web hecha con Flask: esto demuestra que tengo conocimiento en desarrollo web y en programación con python.
  • Uso el protocolo OAuth2 y la api de Google: esto demuestra que soy capaz de complementar herramientas y usar APIs externas.
  • Uso bootstrap en la UI: (no me quedo tan bonita) pero demuestra que tengo conocimiento en HTML, CSS y visualización de datos.
  • Está en un repositorio de Github: esto demuestra que sé utilizar la herramienta y que me gusta contribuir con la comunidad.
  • Creé un setup para el proyecto: esto demuestra que tengo conocimiento en algunas herramientas de deployment.

El modelo

  • Uso las librerías pandas y numpy para procesamiento de datos: esto demuestra mi capacidad de manipular, explorar y limpiar datos
  • Uso la librería de Sklearn: esto prueba que tengo conocimiento en esta librería y en el lenguaje de programación python.
  • Uso diferentes algoritmos para comparar resultados: esto demuestra que se interpretar resultados y elegir el mejor de ellos. Además de que refleja una vez más el dominio de la librería.
  • Uso la librería NLTK: esto prueba que se utilizarla para propósitos de natural language processing.

General

  • Propuse una solución a mi problema: esto demuestra que tengo skills para resolver problemas de manera tangible (puede ser que no sea la mejor solución pero funciona, todo esta sujeto a mejoras, por ello es importante el feedback de la comunidad)
  • CONSEGUÍ DATOS: este problema no era fácil de abordar, ya que no hay datasets de emails para usar en el entrenamiento. Sin embargo, leyendo un paper me encontré con personas que estaban haciendo algo similar, los contacté y me pasaron sus datos. Esto demuestra que el reto por muy grande e imposible que parezca no me detiene y que lucho por encontrar una manera de salir del problema.

Mi proyecto tal vez les pueda parecer raro… ¿porque estoy hablando de una aplicación si lo que quería hacer era machine learning? … Bueno, la propuesta a mi problema luce más atractiva si desarrollo la solución completa y no me quedo solo en el modelo de machine learning.

Cuando presenté este proyecto ante cientos de personas, vieron que era algo muy útil y tangible porque les presente la aplicación, los lleve paso por paso:

  • Iniciar la aplicación
  • Loguearse / darle permisos a la aplicación para acceder a gmail 
  • Seleccionar un email
  • Escuchar el resumen

Eso les encanto, llame su atención!. Otra historia distinta hubiese sido si solo les hubiera mostrado el modelo de machine learning señalando los porcentajes de mi precision y recall que obtuve al entrenar el modelo (los cuales fueron buenos 69%)

Por tanto, mi recomendación es ir más allá del modelo, hacer algo tangible para el usuario final; aprenderás más cosas y tu trabajo tendrá forma, podrás exponerlo y compartirlo a la comunidad para recibir feedback y mejorarlo cada vez más.

Tal vez en una entrada futura, les explique cómo está hecho y cómo funciona YAIA, mientras le pueden echar un vistazo aquí.

Nota: Mi portafolio se conforma solo de un proyecto (encontré el trabajo perfecto antes de poder desarrollarlo mas).

¡Suerte en su aventura!

Deja un comentario