🎙 Episodio 51. La caja de herramientas del científico de datos

En el episodio de hoy de Un podcast ninja sobre Big Data vamos a hablar sobre las herramientas qué deberíais tener en vuestro maletín de científicos de datos 🛠

¿Cómo elegir el tech stack para un proyecto de datos?

Lo principal a la hora de elegir las herramientas es tener en cuenta los requisitos del proyecto. 

¿Cuál va a ser el volumen de datos? ¿Van a crecer mucho ese volumen de datos con el tiempo? ¿Qué tipo de datos son? ¿Queremos centrarnos en imágenes?¿En texto?¿En datos estructurados tipo tabla?

Seleccionar las herramientas adecuadas para lo que queremos hacer puede impactar profundamente la eficiencia y el rendimiento de los resultados que se vayan a obtener.

Hay muchísimas herramientas disponibles:

  • Lenguajes de programación,
  • Librerías,
  • Frameworks...

Puede ser bastante abrumador elegir 🫣

Para elegirlas tendremos que tener en cuenta:

  • La compatibilidad con los datos que vamos a encontrarnos
  • La escalabilidad del proyecto
  • El rendimiento necesairo
  • Si se integra o no con lo que la empresa ya tiene montado
  • La existencia de librerías consolidadas que se ajusten a lo que se quiere hacer

Es importante no proponerse reinventar la rueda.

Hay un montón de librerías de calidad, muchas de ellas de código abierto, es decir, disponibles para todo el mundo, que ya implementan muchas de las cosas que necesitaremos hacer.

Mejor buscarlas a tener que empezar a construirlo todo desde cero.

Por ejemplo, está bien que para entender una red neuronal intentar construir y entrenar una desde la nada pero una vez que ya hayas descubierto cómo se hace y te ha ayudado a entender mejor los principios detrás de las redes neuronales pues ya puedes utilizar las librerías consolidadas que hay para eso mismo.

PyTorch, Keras, Tensorflow…

Y pasar a resolver cosas más útiles.

Los ecosistemas que ya hay desarrollados en torno a ciertas herramientas y sobre todo la comunidad de gente que haya detrás muchas veces es decisiva a la hora de elegir una herramienta u otra.

Pensad que cuanto más grande y prolífica sea la comunidad en cuestión más recursos habrá para aprender esa herramienta y más ayuda a la hora de resolver problemas con los que os encontréis.

Todo esto son cosas que tienen que tener en cuenta las empresas a la hora de poner en marcha un proyecto de datos y, obviamente, a partir de lo que necesiten formarán un equipo de datos para llevar el proyecto a cabo. 

Es decir, que buscarán gente que tenga conocimientos en tal o cual herramienta.

Peeeero desde el punto de vista de ninja de los datos lo que necesitamos saber es qué herramientas meter en nuestro maletín para ser más valiosos a la hora de buscar un trabajo.

Herramientas básicas imprescindibles en Ciencia de Datos 🛠

Y hoy vamos a empezar por las más básicas.

Por el principio.

Lo primero a tener en cuenta antes de nada es que, más allá de lo popular que sea ahora el procesamiento del lenguaje natural con los modelos GPT, la generación de imágenes con los modelos de difusión o la clonación de audio que, como sabéis, tanto texto, como imágenes como audio son los tres tipos de datos no estructurados.

En las empresas, la mayor parte de los datos se almacenan son datos estructurados.

Bases de datos y SQL 🗂

¿Y esto qué quiere decir? Que se almacenan en tablas con filas y columnas como en una hoja de cálculo. Un Excel, un Google Sheet… ya sabes.

Generalmente, cuando aprendemos ciencia de datos, los datos son sencillos y manejables y ya vienen casi listos en ficheros CSV o incluso en tablas de excel mismamente para no darnos muchos quebraderos de cabeza...

Peeero una hoja de cálculo tal y como la conocemos no es eficiente para tablas muy tochas. Las que hay en el mundo real, vaya. Así que los datos tabulares o estructurados se suelen almacenar en bases de datos.

Luego ya hay muchos tipos de bases de datos según cómo se organicen los datos dentro de la base de datos… que si relacionales, no relacionales… después tenemos ya al hermano mayor de las de datos que son los almacenes de datos o data warehouses…

SQL

Lo que vengo a deciros es que SQL será una herramienta muy útil para meter en vuestro maletín ya que os va a permitir sacar los datos que os interesan de muchas de esas bases de datos.

SQL es un lenguaje que te permite comunicarte con esas bases de datos mediante consultas o queries.

Con estas consultas se puede:

  • Seleccionar los datos que os interesan dentro de una tabla en una base de datos y filtrarlos según lo que os interese. En plan, de toda esta base de datos con todos mis clientes quiero saber cuáles son los que me han comprado el último año.
  • Unir información almacenada en distintas tablas. Por ejemplo, si tenéis una tienda online y en una tabla de vuestra base de datos se almacenan el inventario de productos que están disponibles en el almacén y en otra los pedidos que recibís. Pues igual está bien saber si hay alguna cosa que esté en el inventario pero no haya tenido pedidos asociados en los últimos, que sé yo… 3 meses.

SQL suele aparecer con alta probabilidad en la mayoría de ofertas de trabajo ya sea de analista de datos, de científico de datos o de ingeniero de datos.

Es importante saber cómo obtener los datos que necesitamos de una base de datos o de un almacén de datos y si la mayor parte de los datos que tienen las empresas son tablas… tablas de clientes, tablas de ventas, tablas de productos… tablas de lo que queráis pero que están guardadas en bases o almacenes de datos… pues es normal que saber SQL sea importante.

Pues ale, ya tenemos una herramienta en el maletín.

Vamos a por otra.

Lenguajes de programación

Después, lo que vamos a necesitar para entrar en el mundo de la Ciencia de Datos es un lenguaje para comunicarnos. Un lenguaje de programación. 

SQL es un lenguaje, sí pero únicamente sirve para consultar los datos que tenemos almacenados, filtrarlos, agregarlos e incluso hacer alguna operación sencilla con ellos… Alguna suma, por ejemplo.

Pero cuando ya queremos hacer cosas más avanzadas con los datos más allá de consultarlos necesitamos herramientas más potentes. Las más potentes son Python, R y Scala.

¿Y entonces cuál?

Pues en principio daría un poco igual. 

A ver…sí… da igual… ya ¿pero cuál? 

Porque nadie quiere aprender un lenguaje de programación con el esfuerzo que conlleva para que se quede obsoleto en 2 años o luego no sirva para ser analista de datos que es lo que yo quiero ser o que las librerías de Deep Learning más potentes estén implementadas justo en el no sé y tengo que volver a empezar por el otro.

De hecho una de las preguntas más recurrentes cuando empezáis en todo esto de los datos es:

¿Python, R o Scala?

Aunque realmente la pregunta suele ser ¿Python o R?

Pues vamos a ver si podemos resolver este misterio del universo…

Lo primero es que esto no quiere decir que al elegir uno se te cierren las puertas del otro para siempre.

No.

No son excluyentes.

De hecho, si sabéis de los dos y utilizáis sus fortalezas dependiendo del caso en el que os encontréis pues mejor. 

Y si encima tb sabéis Scala pues oye… maletín de herramientas tope de gama.

Pero hay que empezar por alguno, que si no, se nos hace bola.

Python 🐍

Python no se utiliza únicamente para ciencia de datos, es un lenguaje de programación de propósito general y actualmente es uno de los lenguajes de programación más populares que hay.

Y la cosa guay de que sea popular y de que mucha gente lo esté usando es que tiene una gran comunidad de gente desarrollando librerías interesantes en Python.

Muchas de ellas están diseñadas específicamente para resolver problemas de Machine Learning. 

Hay librerías que implementan los modelos de Machine Learning directamente para que no tengamos que hacerlo desde cero, que tienen funciones específicas para tratar los datos, limpiarlos y dejarlos preparados. Hay una librería para cualquier cosa.

Python es realmente versátil.

Y además Python es relativamente fácil de aprender. Vamos que os ponen delante un código sencillo de Python sin tener ni idea y más o menos se entiende la idea de lo que hace.

Parecido a si os ponéis a leer un texto sencillo en francés, italiano o portugués… Igual algo sacáis aunque no habléis esos idiomas.

Un texto sencillo, ¿eh? Sin venirse arriba demasiado.

El lenguaje de programación R

Por otro lado, R nació como un lenguaje de programación orientado a estadística y visualización. Es muy popular en el análisis de datos y muy potente para temas de visualización de datos mediante gráficos.

Como históricamente se utilizaba en entornos de análisis estadístico es especialmente popular en entornos más próximos a la investigación y a la universidad.

Aunque también hay algunos sectores que se inclinan más hacia R como el sector financiero, el farmacéutico y algunos sectores similares. 

Además R es un lenguaje de programación fácil de aprender cuando empiezas desde cero peeeero para cositas más avanzadas puede resultar más complejo ya que fue desarrollado desde el punto de vista de gente dedicada a la estadística que quería simplificar sus tareas, no hacer que el código fuese sencillo para gente que no sabe.

Así que igual podría se os podría complicar un poco el aprendizaje.

A no ser que seáis estadísticos. Entonces os va a resultar facilísimo y os va a encantar R porque además implementa funciones estadísticas de manera super fácil.

Pero vamos que en cuanto cuál de los dos es más fácil o difícil de aprender… van más o menos de la mano.

Ambos van también más o menos de la mano en cuanto a rendimiento. Y de rendimiento van un poco reguleros.

De hecho el rendimiento es uno de los puntos flojos que se le suelen atribuir a Python. Como es un lenguaje interpretado es más lento con tareas que requieren mucho cómputo si lo comparamos con lenguajes de programación más clásicos y orientados al rendimiento como C++ o Java

Para temas de rendimiento tenemos Scala.

Scala

Scala es compatible con Java, de hecho se ejecuta en la máquina virtual de Java (JVM), lo que permite integrarlo fácilmente con librerías de Java.

Este lenguaje de programación podría ser una buena elección si estás trabajando en proyectos de ciencia de datos que requieren un alto rendimiento y necesitas integración con código Java existente.  También es útil en situaciones que requieren concurrencia y paralelismo, como procesamiento de datos a gran escala.

Lo que pasa es que sin una base de programación sólida es más difícil de aprender. Así que yo no recomendaría empezar por aquí a no ser que ya dominéis Java… entonces sería una opción a analizar.

Como véis una vez más, las herramientas que queráis ir metiendo en vuestro maletín de ninja de los datos dependen un poco de vuestros objetivos.

Espero que os hayan quedado un poco más claro los puntos fuertes de unas y otras. Pero bueno, también hay que tener en cuenta que esto va evolucionando.

Hace unos años era más popular R para ciencia de datos, luego Python… en algunos sectores sigue utilizándose más R que Python y depende mucho del uso…

Las librerías más populares de Deep Learning son de Python y sin embargo, para visualización de datos R es mejor.

A veces aparecen otros lenguajes de programación como Julia, que igual sobre el papel es más eficientes peeero no acaban de despegar porque es muy importante que la comunidad de gente que realmente construye cosas, librerías y código abierto adopte el lenguaje nuevo. 

Y estas cosas no pasan de la noche a la mañana.

Espero que os guste el episodio.

Si es así, no olvidéis dejar un «Me gusta» y algún comentario al episodio en Ivoox o una valoración de 5 estrellas del podcast en Apple podcasts, en Spotify, en Google podcasts o donde quiera que escuchéis el podcast. 

Recordad que si tenéis cualquier duda o pregunta podéis contactar conmigo a través del formulario de contacto o podemos seguir la conversación en Twitter.

Muchas gracias por estar ahí y os espero en el próximo episodio de Un Podcast Ninja sobre Big Data.

Boletín Ninja

Suscríbete a la newsletter y recibe la guía ninja del Big Data y la Inteligencia Artificial.

Guía ninja del Big Data
Copyright © 2023  Â· Datos 🥷 · Todos los derechos reservados