Uno de los términos que avistarás con mayor frecuencia por estos rumbos es el de conjunto de datos (dataset), ya que, como vimos en la introducción al machine learning, es uno de los ingredientes principales e imprescindibles en toda técnica del aprendizaje de máquinas, y en general de la ciencia de datos y sus derivados.
En este recorrido definiremos brevemente qué son los conjuntos de datos, cuáles son sus características, algunos ejemplos enfocados en enfatizar su variedad y uso para la resolución de problemas, y, finalmente, su definición matemática.
Inventario recomendado
Exploración en datos
Conocimiento sobre datos y sus tipos.
Matemáticas
Álgebra lineal y conjuntos
Algún aperitivo para acompañar
¿Qué son los conjuntos de datos para machine learning?
Un conjunto de datos es una colección de datos u observaciones que es concebida como una unidad para su procesamiento computacional. En aprendizaje de máquinas, se utiliza para entrenar y evaluar modelos matemáticos, y es claramente un bloque más que sustancial en este campo, ya que el aprendizaje se produce exclusivamente a través de su procesamiento.
Así es, un conjunto de datos se puede ver como la información recabada para propiciar que una máquina logre realizar alguna tarea mediante aprendizaje automático, forjando un modelo a partir de los patrones extraídos de los datos.
El concepto de conjunto de datos tiene una relación con el de muestra y población en estadística, siendo la muestra un subconjunto de una población, y la población el universo o totalidad de datos referentes a un objeto de estudio. En el contexto del machine learning, un conjunto de datos se puede percibir como una muestra estadística en un formato legible para una máquina.
No es necesario que piensen mucho en esto último, solo tengan en cuenta que el conjunto de datos es la agrupación de observaciones registradas que serán procesadas por un algoritmo para modelar patrones que se deseen identificar, justo como se muestra en la Figura 1.3.3 de la introducción al aprendizaje de máquinas:
Además, debemos considerar lo entendido en nuestro primer entrenamiento en datos, y recordar la jerarquía del conocimiento mostrada en la Fig. 2.1.3:
Con esto podemos identificar qué relevancia y significado tiene un conjunto de datos en aprendizaje de máquinas, dando lugar a este pequeño flujo de uso para el entrenamiento de un modelo:
- Se registran datos que son almacenados y transformados para su procesamiento computacional.
- Los datos son manipulados y analizados por un algoritmo de aprendizaje de máquinas, generando un modelo matemático.
- El modelo resultante es utilizado para obtener información nueva sobre los datos, es decir, conocimiento de valor.
Esto es solo una parte de lo que se conoce como ciclo de vida de los datos, y del cual hablaremos con mucho más detalle en una siguiente parada. El punto hasta aquí es reconocer qué son los conjuntos de datos y cómo son utilizados particularmente para el entrenamiento de un modelo de machine learning.
Ejemplos de entrenamiento
Ahora que hemos ubicado el qué y por qué de un conjunto de datos, hablemos sobre su composición en términos de machine learning. Para efectos de terminología asociada con el entrenamiento de modelos, los conjuntos de datos se dice que están compuestos de algo llamado ejemplos de entrenamiento.
¿Y qué son?, simplemente así es como se hace referencia a cada observación o instancia de un conjunto de datos.
Por ejemplo, supongamos que hemos recolectado fotos de imágenes de diferentes objetos con el fin de entrenar un modelo que aprenda a reconocerlos.
El conjunto de datos serían las imágenes que he tomado, y cada ejemplo de entrenamiento se refiere a cada imagen unitaria:
Cada observación conforma a un ejemplo de entrenamiento, y estos en su totalidad dan forma al conjunto de datos. Se les conoce como ejemplos de entrenamiento porque su función en machine learning es <<entrenar>> modelos, es decir, generar aprendizaje mediante su procesamiento.
Es correcto.
Es… correcto.
Ejemplos de conjuntos de datos para machine learning
Por último, exploraremos algunos ejemplos de conjuntos de datos para aprendizaje de máquinas, señalando el objetivo del modelo a entrenar, sus respectivos ejemplos de entrenamiento, y el tipo de datos utilizado en cuanto a su estructura:
Notarás que la naturaleza de los conjuntos de datos es variada, al igual que los objetivos de los modelos que pretendemos alimentar con ellos.
Hemos concluido con la parte descriptiva de nuestro encuentro con los conjuntos de datos, ahora atenderemos por primera vez a las definiciones matemáticas.
Conjunto de datos para machine learning: definición matemática
Como ya he explicado anteriormente, todo elemento del machine learning se funda desde las matemáticas, y por lo tanto, es definible a través de estas, incluyendo a los datos.
En este bloque te mostraré cual es la representación matemática de los conjuntos de datos, lo cual será vital para comprender la manera en que se interpreta la entrada de información no solo en términos puramente matemáticos, sino también en un contexto computacional.
Nota:
Los tramos de nuestros recorridos que corresponden a las matemáticas no son imprescindibles para programar algoritmos de aprendizaje de máquinas, y decidir si aprender o no sobre esta parte depende mucho de la manera en la deseas conocer el machine learning, y de tu nivel actual de experticia en la materia. Si no deseas abordar las matemáticas, puedes saltar estos bloques y poner suma atención a los términos y los ejemplos expuestos, pero recuerda: un mago o maga de alto rango en ciencia de datos conoce sus herramientas de trabajo desde todos los ángulos posibles, y tiene ventaja sobre quienes no ahondan en sus más insondables misterios.
Mi recomendación: intenta explorar y comprender los temas también desde su fundamento matemático, te dará una visión mucho más completa, y te proveerá la mejor preparación para encarar situaciones intrincadas.
A continuación, se mostrará una definición general de conjuntos de datos, la cual abarca todos los tipos de machine learning, y los distintos formatos que pueden tomar los datos de entrada de sus algoritmos.
Preludio: transformación de datos a arreglos numéricos
Antes de llegar a la definición matemática de los conjuntos de datos, debemos considerar los formatos finales de los datos que serán procesados por un algoritmo de machine learning. Independientemente de si se trata de datos estructurados, no estructurados, cuantitativos o cualitativos, todo dato de entrada deberá ser transformado a un valor numérico o entidad matemática.
No ahondaremos mucho en esto, pero es necesario tomarlo en cuanto para comprender la definición de conjunto de datos que se enunciará más adelante.
Un ejemplo muy simple de esto son datos de tipo cualitativo, que pueden ser reducidos a valores positivos o negativos, como los de un gusto personal. Este tipo de datos pueden lucir así en una tabla:
Opinión del cliente |
Me gustó |
No me gustó |
Este tipo de información puede ser traducido a una forma numérica como sigue:
Un ejemplo un poco diferente es el uso de una combinación valores binarios 1 y 0, para la caracterización de valores cualitativos. Por ejemplo, supongamos que tenemos los siguientes colores en el conjunto de datos:
Color |
Rojo |
Azul |
Verde |
Una forma de representar estos colores numéricamente es como sigue:
Valor original | Variable 1 | Variable 2 | Variable 3 | |
Rojo | 1 | 0 | 0 | |
Azul | 0 | 1 | 0 | |
Verde | 0 | 0 | 1 |
Es decir, cada valor de la variable color tiene una combinación de valores asociada, la cual a su vez conforma a un vector. Por ejemplo, dados los valores de cada renglón, se tiene que:
\mathrm{rojo} = \begin{bmatrix} 1, 0, 0 \end{bmatrix} \tag{2.1}
\mathrm{azul} = \begin{bmatrix} 0, 1, 0 \end{bmatrix} \tag{2.2}
\mathrm{verde} = \begin{bmatrix} 0, 0, 1 \end{bmatrix} \tag{2.3}
Entiendo que esto parece ser parte de otro tema (y de hecho es algo que exploraremos más adelante). Lo único que requiero es que tengas en mente que todo dato pasará a un algoritmo de machine learning en forma puramente matemática. Esto es lo único que veremos al respecto sobre ese detalle 🙂.
Con esto en mente, formalizaremos la definición de conjunto de datos y ejemplos de entrenamiento.
Definición matemática de conjunto de datos y ejemplo de entrenamiento
Definición 2.1 (Conjunto de datos). Un conjunto de datos es un conjunto \mathcal{D}=\{o_1, o_2, \dots, o_N\} de N observaciones, donde cada observación \mathcal{o}_{n} es llamada ejemplo de entrenamiento del conjunto \mathcal{D}, y puede ser un escalar (un número), vector, matriz o tensor. Es decir:
\begin{aligned}\mathcal{D} = \{ o_1, o_2, \dots, o_N \}, \quad o_i \in \mathbb{R}^{d_1 \times d_2 \times \dots \times d_k} \tag{2.4}\end{aligned}
donde d_1, d_2, \dots, d_k representan las dimensiones de la observación, permitiendo su representación en escalares (k = 0), vectores (k = 1), matrices (k = 2), o tensores de mayor orden (k \geq 3).
Esto quiere decir, entre otras palabras, que un conjunto de datos puede ser representado como un conjunto de observaciones, donde cada observación es un número o un arreglo matemático (como los vectores de las ecuaciones (2.1),(2.2),(2.3).
Si no has entendido del todo esta definición, no te preocupes, la entenderás mejor conforme avancemos en el curso, y extendamos la definición para algoritmos de aprendizaje supervisado y los restantes tipos de aprendizaje de máquinas.
Aquí concluye tu introducción a este primordial objeto para la ciencia de datos; recuerda que los conjuntos de datos pueden venir en variadas presentaciones y provenir de diversos orígenes. En la siguiente sesión de nuestro entrenamiento en datos aprenderemos sobre una de las tipificaciones clásicas de los conjuntos de datos: datos etiquetados.