Ciencia de datos, Machine Learning, Inteligencia Artificial… ¿Qué es qué?

Oct 11, 2022 | MACHINE LEARNING | 0 Comentarios

A menudo escuchamos ciencia de datos, «machine learning» o inteligencia artificial en diferentes contextos y a veces usándolas como sinónimos. Si no te dedicas a ello o acabas de empezar en el mundo de la ciencia de datos, estos términos pueden resultar poco claros y algo de ciencia ficción. Sin embargo, muchos de los procesos relacionados son relativamente simples y quiero intentar aclararlos en este post.

¡No te pierdas ningún nuevo vídeo!

Visita mi canal de Youtube

 

Antes de seguir, quiero destacar que este post se inspira mayormente en el libro «The Machine Learning Simplified» de Andrew Wolf. Si quieres profundizar más clica en la imagen aquí al lado. Las primeras dos imágenes de este post son adaptaciones de las imágenes del libro de Andrew Wolf.

menu importar desde web Power Query

Empezamos por Inteligencia Artificial. En general, cualquier aparato que ejecute alguna tarea, que normalmente requiera de la inteligencia humana se define inteligencia artificial. Un simple ejemplo es un ascensor que organiza las paradas entre los diferentes pisos para optimizar el tiempo de transporte. Un ejemplo un poco más complejo es el filtro de correo no deseado que envía automáticamente a la carpeta de SPAM los correos electrónicos sospechosos. Este es un típico ejemplo del uso de métodos de Machine Learning más comunes. En fin, un ejemplo bastante más complejo es el sistema de conducción automática de automóviles que están desarrollando empresas como Tesla. En este caso, tanto la cantidad de datos, como de procesamiento, hacen de este uno de los sistemas de inteligencia artificial más complejos.

Entorno ciencia de datos

La ciencia de datos, por otro lado, tiene una parte en común con la inteligencia artificial dado una parte importante de esta última se basa en el procesamiento de datos a través tanto de reglas simples como de algoritmos más complejos. Sin embargo, la ciencia de datos incluye más generalmente todas las tareas relacionadas con la obtención, preparación y análisis de datos, con el objetivo de tomar mejores decisiones. Estos análisis pueden ir desde la simple descripción de lo que ha pasado (análisis descriptivo) hasta análisis más complejos, como el diagnostico de lo que pasó, la predicción de eventos futuros y la prescripción de las acciones a tomar para optimizar los resultados. Dado que el objetivo principal de la ciencia de datos es tomar mejores decisiones, no basta con desarrollar un buen modelo, sino que necesitamos también pasar a la acción. En los casos más simples, los resultados del modelo se explotan sólo una vez, como en un estudio ad hoc para tomar una decisión específica. En otros casos necesitamos ejecutar el modelo de manera más automatizada. Esto suele referirse a «MLOps» o «Machine Learning Operations» y representa tanto la creación del modelo como su puesta en producción. Por ejemplo, una página web que utilizar un modelo de recomendación de productos que ha sido entrenado y optimizado por unos científicos de datos y luego puesto en producción para que las recomendaciones lleguen a miles o millones de usuarios.

Pasos machine learning

Si analizamos estas fases desde el punto de vista de las profesiones, por lo general los puestos de «científico de datos» suelen ocuparse de las dos fases centrales, es decir la preparación de los datos y la construcción del modelo. La primera fase (extracción de datos) y la parte asociada al almacenamiento y procesamiento de datos, se suele atribuir a un «ingeniero de datos». En cuanto a la última fase de puesta en producción, suele necesitar de conocimiento de machine learning, de ingeniería de datos y de desarrollo. Podríamos ver esta posición como «Ingeniero de Machine Lerning».

 

Machine Learning es un subconjunto de la ciencia de datos, y, retomando el ejemplo anterior, se refiere al desarrollo del modelo de recomendación. El objetivo de Machine Learning, es, como dice su propio nombre, aprender de los datos para sacar unas conclusiones. El nombre puede hacer referencia a algo muy complejo, pero en realidad los conceptos básicos, y muchos modelos, son relativamente simples. Por ejemplo, podemos definir Machine Learning, una regresión lineal que estima el precio de una vivienda en una zona concreta basándose en el tamaño. Lo que está haciendo el modelo es identificar la relación entre tamaño y precio de las casas cuya información es conocida, para utilizarlo en la estimación de los precios de nuevas casas. Simplificando mucho, imagínate que el modelo identifica que cada metro cuadrado adicional aumenta el valor de la casa de 2.000 €.

Ejemplo regresión lineal (modelo supervisado)

Este presentado es un ejemplo de lo que se llama «Aprendizaje Supervisado» (Supervised Learning), es decir que tenemos a nuestra disposición la variable objetivo (el precio de las casas) para unas cuantas observaciones. Los modelos de aprendizaje supervisado identifican las relaciones o patrones entre unas variables predictoras o características (tamaño de la casa) y la variable de resultado (precio) utilizando unos cuantos datos históricos. Luego, estos modelos permiten utilizar el resultado para estimar la variable objetivo de nuevas observaciones (casas de las cuales desconocemos el precio). En estos tipos de modelos pueden predecir tanto un valor numérico (como en el ejemplo anterior), como un variable categórica (por ejemplo predecir si un email es SPAM o no). Los primeros se suelen llamar modelos de «regresión» mientras que los últimos son modelos de «clasificación».  Las fases principales de estos modelos incluyen:

  • limpieza de datos, como la eliminación de errores, consolidación de nombres, análisis de valores atípicos etc.
  • gestión de las variables predictoras, que podrás ver como «Feature Design» y que incluye la selección de las variables a utilizar, además de su posible transformación (normalización, codificación etc.) o incluso el cálculo de nuevas variables («Feature Engineering»)
  • Selección del algoritmo (lineal, polinomial bayesiano, etc.).
  • Selección de la función de coste, necesaria para definir como el algoritmo aprende de los datos. En general, la idea es que el algoritmo recibe una penalización (o coste) cuanto más alto sea el error de la predicción vs el resultado real (de allí que es importante definir como se calcula el error) y esto permite optimizar el modelo en base al error.
  • En los anteriores dos pasos, es posible que se elijan varios algoritmos y varias funciones de coste, por lo que deberemos repetir los siguientes pasos para cada modelo que generemos.
  • Entrenamiento del modelo sobre una parte de los datos (conjunto de entrenamiento).
  • Evaluación del modelo sobre la restante parte de los datos (conjunto de test)
  • Tuneo de los hiper-parámetros para encontrar un balance entre un bajo ajuste y un sobreajuste (con un bajo ajuste, la predicción del modelo será mala, pero con un sobreajuste el modelo se ajustará demasiado a los datos de entrenamiento y su rendimiento será impreciso a la hora de aplicarlo a nuevos datos).
  • Validación del modelo: dado que normalmente hacemos varias iteraciones ajustando el modelo para que finalmente funcione bien en los datos de «test» (punto «evaluación del modelo») deberíamos validar el modelo utilizando un tercer conjunto de datos, el de validación. Si estamos utilizando varios modelos, deberemos compararlos para determinar caul es el mejor.
  • Implementación: puede ser desde la simple generación de un resultado puntual para tomar alguna decisión o incluir el modelo en una aplicación o sistema que permita su utilización automática.
  • Siguiendo con otros términos que habrás escuchado, «Deep Learning» (Aprendizaje profundo) se incluye en la categoría de modelos supervisados, pero necesitan de algoritmos diferentes (como las redes neuronales) para poder resolver problemas más complejos, como por ejemplo el reconocimiento de imágenes o la interpretación de textos. Un ejemplo práctico son los chatbox que contestan de manera automática interpretando el texto insertado por un humano. Estos tipos de modelos suelen asociarse más con el concepto de «Big Data» dado que suelen tratar problemas con un gran volumen de datos, que a la vez puede ser también no estructurados y con necesidad de procesamiento en tiempo real. El big data se suele definir por las 3 «V»:
  • volumen: se trata de una gran cantidad de datos con alta dimensionalidad, es decir muchos campos o variables
  • velocidad: procesamiento en tiempo real o, en todo caso, de una gran cantidad de datos con mucha frecuencia.
  • variedad: diferentes fuentes incluyendo datos no estructurados (textos, imágenes, vídeos, logs de actividad, información de sensores etc.)

Aunque el límite entre big data y datos tradicionales no es algo preciso, los impactos sobre todo del volumen y velocidad son claros. Llegado a un cierto punto los sistemas de almacenamiento y procesamiento de datos tradicionales no son capaces de gestionarlos, o al menos, no de manera adecuada. Por ello, empezamos a hablar de otros tipos de herramientas como Hadoop, Spark, MapReduce etc. Además, el big data afecta también directamente al científico de datos dado que deberá adaptar sus modelos para volúmenes de datos más grandes, con gran dimensionalidad (muchos campos) y, a menudo, con datos «dispersos» (en inglés «sparse data», es decir muchos valores «0» o vacíos).

El otro subconjunto de modelos de Machine Learning (además del aprendizaje supervisado) es el «Aprendizaje no supervisado«. A diferencia del supervisado, este no dispone de una variable objetivo, sino que se ejecuta el algoritmo sobre un conjunto de datos sin saber exactamente el resultado esperado. En general, el objetivo de estos modelos es distribuir las observaciones del conjunto de datos en varios grupos. Un ejemplo es la definición de segmentos de clientes de un negocio en base a sus características y comportamientos. Estos segmentos pueden ser después utilizados para enfocar mejor los productos, comunicar de manera más personalizada o hacer ofertas específicas. Otros ejemplos son los modelos de asociaciones para la recomendación de productos. Todos estos modelos utilizan diferentes algoritmos para definir la similitud y diferencia entre las diferentes observaciones y, gracia a esto, generar unos grupos.

 

Espero que esta introducción a la ciencia de datos y machine learning haya sido útil. En los próximos artículos profundizaré más en explicar los modelos de machine learning, explicando por ejemplo la diferencia entre estadística y machine learning, o detallando las diferentes fases de la creación de un modelo.

Deja un comentario