Saltar al contenido

Todo lo que necesitas saber sobre el aprendizaje de las máquinas: parte 1

Esta es la primera de una serie de tres partes. Este artículo cubre los fundamentos del aprendizaje de la máquina. La segunda parte profundizará en el Microsoft Azure Machine Learning y cómo acceder a él a través de servicios web. Por último, la tercera parte repasará algunos ejemplos reales.

La ciencia de los datos es uno de los trabajos más calientes en estos días, y no es una sorpresa dada la riqueza de información que nos proporciona. La ciencia de los datos implica el uso y la manipulación de datos para obtener una visión o conocimiento útil. El tipo de información que obtenemos de la ciencia de los datos puede aplicarse a varias áreas vitales como la detección de fraudes, la previsión de ventas, y el reconocimiento de imágenes y lenguaje, por nombrar sólo algunas.

Todo lo que necesitas saber sobre el aprendizaje de las máquinas: parte 1
Todo lo que necesitas saber sobre el aprendizaje de las máquinas: parte 1

Pero a pesar de su creciente popularidad como elección de carrera, ser un científico de datos no es fácil. Es un rol que se nutre de varias disciplinas, incluyendo las matemáticas, la estadística y la programación; habilidades que pueden llevar años dominar. Y debido a que la cantidad de datos, tanto estructurados como no estructurados, está aumentando más allá de lo que la mayoría de nosotros puede manejar, ahora tenemos algo llamado aprendizaje automático, que nos permite procesar estos datos utilizando sistemas informáticos.

¿Qué es exactamente el aprendizaje de la máquina?

El aprendizaje automático (ML) es básicamente un subcampo de la Inteligencia Artificial (IA). En lugar de tener que escribir tanto código para encontrar y explotar patrones en los datos, el ML lo hace de manera que nosotros simplemente suministramos los datos y luego dejamos que el sistema informático encuentre esos patrones por nosotros.

Por supuesto, no todo en la ciencia de los datos o el ML requiere una maestría o un doctorado, y este es el objetivo de Microsoft Azure Machine Learning (MAML).

Por ejemplo, para buscar patrones o hacer predicciones, puede ayudar a acercarse a un problema mirando la creación de una representación (a la que nos referiremos más adelante como «modelo») en un espacio de dos (X, Y) o tres (X, Y, Z) dimensiones. A diferencia de los humanos, las computadoras no están limitadas cuando se trata de manejar cantidades cada vez mayores de datos.

¿Cómo puede una computadora aprender de los datos?

En primer lugar, es importante saber que hay diferentes maneras en que una computadora puede aprender de los datos. Digamos que hay dos grandes escenarios de aprendizaje para el ML: el aprendizaje supervisado y el aprendizaje no supervisado. En el aprendizaje supervisado se conocen algunas de las características de los datos. Por ejemplo, puedes saber que tienes millones de imágenes de gatos y perros y quieres introducir estos datos en tu sistema para que pueda determinar si las futuras imágenes que procesa son de gatos o de perros.

Pero con el aprendizaje no supervisado, estás alimentando tu sistema con muchos datos para que pueda determinar si hay o no un patrón. Una vez que los datos han sido procesados, puedes usar lo que has aprendido para hacer predicciones sobre nuevos datos.

Estos dos tipos de aprendizaje son lo suficientemente buenos para obtener una comprensión básica del ML. Sin embargo, existen varios otros tipos.

Otros tipos de problemas de aprendizaje

Es bastante fácil para un ordenador ingerir tantos datos como pueda proporcionarle (Hadoop, por ejemplo, es una buena herramienta para almacenar grandes cantidades de datos), pero una vez que ha alimentado estos datos al sistema, todavía tiene que guiarlo sobre qué tipo de problema o tarea quiere que maneje.

Aquí hay tres tipos principales de problemas de aprendizaje o tareas que MAML intenta cubrir:

  • Clasificación: Quiere que la computadora le ayude a obtener información para hacer predicciones que típicamente caen en un resultado verdadero/falso o positivo/negativo. Puedes tener más de dos posibilidades aquí, pero mantengamos las cosas simples por ahora.
  • Agrupación: Buscas determinar si hay grupos de objetos que compartan características similares. Por ejemplo, en una red social el resultado podría utilizarse para identificar comunidades o grupos de personas con diversas similitudes que podrían centrarse en una persona, un producto o intereses similares.
  • Regresión: Típicamente estás tratando de predecir un valor real. Un ejemplo podría ser tratar de predecir el precio de venta de una casa basado en características como la ciudad, la edad y el tamaño.

Bien, ahora veamos un ejemplo de aprendizaje de la máquina a un nivel muy alto.

Un ejemplo de aprendizaje de la máquina

Es importante saber que la ciencia de los datos es a menudo sobre la experimentación. Por eso tu lienzo en MAML fue probablemente llamado «Experimentos» por Microsoft. En la parte final de esta serie, usaré datos de www.kaggle.com para entrar en más detalles sobre esto. Usando el ejemplo del Titanic, haremos predicciones sobre si una persona ha sobrevivido al desastre o no. Pero primero, vamos a caminar a través de cada paso aquí comenzando con los datos para hacer predicciones.

Primero, asegúrate de que tus datos estén limpios

Cuando se tienen grandes cantidades de datos, puede que no siempre estén limpios. Esto puede crear problemas como tener campos de datos parcialmente incompletos, por ejemplo. Hay varios enfoques que puedes usar aquí, dependiendo de los datos (es importante entender con qué estás trabajando a un alto nivel). Por ejemplo, puede decidir eliminar filas enteras si hay una columna que tiene un valor vacío o puede llenar columnas vacías con un valor basado en los datos restantes, como utilizar el valor de la mediana para llenar los valores vacíos.

A continuación, identifique sus características y etiquetas

No todos los datos son significativos, especialmente cuando se trata de hacer predicciones. Por ejemplo, sus datos pueden contener docenas de filas de elementos como nombres y apellidos, pero eso no significa que sean valiosos en todos los casos. Cuando se trata de datos relacionados con los seres humanos, cosas como la edad, el sexo y la altura pueden ser más útiles que los nombres.

Porque necesitas tener una comprensión básica de tus datos, normalmente conoces los encabezados de las columnas. Una vez que hayas revisado todos los encabezados de las columnas, debería ser relativamente fácil elegir la información más útil para tu tarea. Estas columnas que identificas como útiles se conocen como características.

En nuestro próximo ejemplo del Titanic (manténgase en sintonía para eso en la próxima parte de esta serie) trataremos de predecir la supervivencia. Esta será nuestra etiqueta. Si todavía no estáis seguros de las características y las etiquetas, no os preocupéis, todo esto se aclarará en el próximo post.

Ahora, prepara un modelo

Ahora que tienes datos limpios, y eres claro en las características y etiquetas, el siguiente paso es elegir un modelo. Un modelo es una representación de alto nivel de sus características y etiquetas. Como un simple ejemplo, podemos crear una gráfica del precio de venta de una casa basada en el tamaño. Típicamente, asumiríamos algo como esto:

En este caso, nuestra característica es el tamaño de la casa y nuestra etiqueta es el precio de la casa. Este es un problema de tipo regresivo. Esperamos construir un modelo basado en el tamaño de la casa para ayudarnos a predecir el precio. Si miras el gráfico de cerca, casi puedes dibujar una línea recta inclinada a través de los puntos de datos. En este ejemplo, nuestro modelo simplificado es «tamaño de la casa en miles de metros cuadrados x 1 = precio de la casa en miles de dólares».

Esto nos permite hacer una predicción: ¿Cuánto costaría normalmente una casa de 3.500 pies cuadrados? Usando este modelo, serían 3.500 dólares. (¡Eso es un buen precio incluso en mi pequeña ciudad natal!)

En el caso de los datos del Titanic, trabajaremos con un modelo de clasificación porque nuestro objetivo es predecir si alguien en el Titanic ha sobrevivido o no. Por lo tanto, elegimos el algoritmo más adecuado para tratar las clasificaciones (el uso de un algoritmo que típicamente trata con la regresión podría proporcionar una predicción incorrecta). Saber qué algoritmo elegir puede ser algo que se hace por casualidad, pero no hay razón para no elegir múltiples algoritmos para comparar los resultados (más sobre eso más adelante).

Una vez que haya elegido su algoritmo, comenzará el proceso de desarrollo de ese modelo con sus datos.

Entrenamiento y pruebas del modelo

Un enfoque típico es tomar los datos disponibles y dividirlos en «entrenamiento» y «pruebas». No hay una regla general para dividir los datos, pero usemos una división 80/20 donde el 80 por ciento de los datos iniciales se usan para entrenar el modelo, y el 20 por ciento restante para probarlo. En este punto, proporcionamos el 80 por ciento de los datos disponibles a nuestro modelo o algoritmo para que pueda aprender en base a lo que hemos definido como las características.

Una vez que haya entrenado a su modelo procesando todos los datos de entrenamiento disponibles, debe probar el modelo utilizando datos válidos. Esto significa usar los datos y características de la prueba en un intento de predecir la etiqueta. Esta parte de la prueba es importante: Nuestros datos de prueba del Titanic muestran realmente si la persona sobrevivió o no, pero usaremos las características de nuestras entradas de prueba para hacer predicciones, entonces podemos comparar nuestra predicción con el valor real.

En este momento, podemos haber probado nuestro modelo y estamos seguros de que está listo para hacer predicciones futuras.

Entonces, ¿qué sigue?

En la próxima parte de esta serie, profundizaremos en cómo trabajar con MAML a través de un navegador web y cómo acceder a él de forma remota a través de servicios web.