Skip to content

Latest commit

 

History

History
244 lines (164 loc) · 18.3 KB

02.los_datos.md

File metadata and controls

244 lines (164 loc) · 18.3 KB

Los Datos

La materia prima para realizar nuestra labor de mineros de datos es inagotable. Hablamos de los datos, ese recurso en bruto que debemos procesar para sacarle provecho. En esta sección discutiremos temas relacionados con los conjuntos de datos y el tipo de operaciones que podemos hacer con ellos. Las tareas de esta sección serán:

  • Definir a los datos como objetos.

  • Conocer los tipos de estructuras para conjuntos de datos:

    • Tablas
    • Matrices
    • Grafos

Datos y objetos

Como la Minería de Datos es una actividad multidisciplinar, muchas veces hay confusión o incluso diferencias ideológicas con respecto a los nombres y términos que se utilizan. Si a esto le agregamos la traducción al castellano, podríamos pasarnos mucho tiempo discutiendo sin llegar a una definición única. Por ejemplo en inglés se le llama "data" al plural de "datum" o dato, esto al principio nos puede confundir a los que hablamos castellano.

Pero no a los que sepan que data es el plural neutro para un sustantivo de la primera declinación en latín.

Como primer paso vamos a definir los conceptos básicos utilizando de ser posible términos que sean familiares a los profesionistas en informática.

Datos: son una representación de las observaciones recolectadas. Por ejemplo un médico puede tomar (recolectar) la temperatura corporal de varios pacientes y representar la lectura en grados centígrados.

Objetos: Normalmente representamos a cada observación como un objeto o registro. Por ejemplo una lectura de los signos vitales de un paciente se podría representar como el siguiente objeto:

Atributo Valor
id 1
nombre Juan Pérez
día Lunes
estatura 175
temperatura 36.2
presión_diastólica 80
presión_sistólica 135
frecuencia_cardíaca 90

Atributos: Son las propiedades o características que tienen los objetos de cierto tipo. Todas las observaciones que se hagan del mismo tipo de objeto tendrán los mismos atributos. Para el ejemplo anterior los atributos serán {id, nombre, estatura, temperatura, presión_diastólica, presión_sistólica, frecuencia_cardíaca }.

Valores: El estado de un objeto corresponde a los valores que tienen sus atributos en un momento dado. En el análisis de datos nos enfocamos en datos históricos por lo que es poco común que haya cambios de estado en los objetos. Los valores a su vez debemos considerarlos como objetos. Por ejemplo, en la lectura de ejemplo el atributo nombre tiene como valor al objeto tipo cadena "Juan Pérez". Para analizar las observaciones estadísticamente debemos de considerar su tipo:

  • Dato cualitativo: Normalmente la observación es expresada en palabras. Por ejemplo, la reseña de un restaurante. Los datos cualitativos pueden ayudarnos a etiquetar a un objeto como miembro de una clase o grupo. En el caso de un objeto tipo restaurante, su atributo "tipo de cocina" nos ayuda a clasificarlo por cocina: mexicana, japonesa, italiana.

  • Dato cuantitativo: La observación se realiza sobre algún atributo que tiene cierta magnitud. Se tienen dos tipos:

    • Discretos. Estos datos se expresan en números enteros y normalmente se refieren a conteos. Ejemplos: Número de empleados, visitas, número de páginas, temporada.
    • Continuos. Los datos corresponden a mediciones en números reales, como temperatura corporal, sueldo o duración.

Conjunto de datos: Los conjuntos de datos (en inglés dataset) son colecciones de objetos que casi siempre son del mismo tipo. Es común representar a un conjunto de datos en forma de registros en una tabla. Como ejemplo aquí tenemos un conjunto de datos de lecturas de signos vitales:

id nombre temperatura día estatura
1 Juan Pérez 36.2 Lunes 175
2 Ana Rivas 136.3 Martes 125
3 María Sánchez 36.5 Jueves 190
4 Luis Duarte 39.0 Lunes 180
5 José Arias 36.5 Viernes 90
6 Margarita Lee 39.0 Jueves 173

A los conjuntos de datos cuando no se han procesado les llamamos datos crudos (raw data), en este caso por ejemplo se tienen datos erróneos, la temperatura del paciente con $id = 2$, no es posible que sea de 136.3°C. También podría ser necesario anonimizar los datos al tratarse de datos confidenciales.

Clasificación de escalas de medición

El tipo de análisis que se puedan hacer en un conjunto de datos dependerá del tipo de variable de sus atributos. Por ejemplo, en el caso del conjunto de datos de pacientes, podríamos calcular la media de la estatura, pero no tendría sentido hacer el cálculo para el atributo nombre. Incluso cuando utilizamos datos enteros la media podría no tener sentido. Por ejemplo, la media del atributo id no nos diría nada sobre las lecturas ya que es solo una etiqueta que resulta ser entera. Utilizaremos la clasificación de Stevens para clasificar los tipos de tipos de valores asignados a los atributos en cuatro niveles:

Nominal o categórica

Esta es una medición cualitativa como vimos anteriormente y nos puede servir para asignar a los objetos a un grupo o categoría. Por ejemplo, el atributo especie de las flores Iris, puede tomar los valores: "Setosa", "Virgínica" o "Versicolor". Estos valores nos indican a que categoría pertenece cada flor. Una medida categórica no siempre va a ser texto. Por ejemplo, el número de serie o un número de teléfono. En algunos casos nos brindan información cualitativa sobre el objeto: país de origen, sexo, estado civil.

  • Los operadores que podemos utilizar en atributos que usan este tipo de medida son: $=$, $\neq$.
  • Podemos calcular la moda, entropía, prueba $\chi^2$.
  • Podemos agrupar.

Ordinal

Esta es también una medición categórica, pero existe un orden con el cual podemos ordenar a los objetos. Por ejemplo, los valores de dificultad "Fácil", "Difícil"; talla de la ropa , el nivel máximo de estudios. Otro ejemplo son los valores de una escala de agrado: "nada", "poco", "regular", "mucho", estos valores cubren un espectro de posibilidades.

  • Los operadores que podemos utilizar son: $=$, $\neq$, $>$, $<$.
  • Podemos calcular la moda, mediana, percentiles, pruebas de signos.
  • Podemos agrupar y ordenar.

Intervalar

Esta nos permite establecer diferencia entre los objetos, pero como no tiene un cero absoluto no se puede calcular la proporción entre dos valores. Un ejemplo clásico de este tipo de medición es la temperatura cuando la medimos en grados centígrados, podemos decir que la diferencia entre 3°C y 5°C grados son 2°C. Pero no podemos decir que 20°C es el doble de caliente que la temperatura a 20°C.

  • Los operadores que podemos utilizar son: $=$, $\neq$, $>$, $<$, $+$, $-$.
  • Como medida de tendencia central podemos calcular la moda, mediana y la media aritmética. Son válidas las medidas de dispersión de rango y desviación estándar.
  • Podemos agrupar, ordenar, calcular la diferencia.

Razón

Se cuanta con un cero absoluto, por lo que las proporciones son válidas. La mayoría de las mediciones en ingeniería o física utilizan este tipo de escalas. Por ejemplo masa, longitud, duración, carga eléctrica, corriente eléctrica, temperatura en grados Kelvin.

  • Los operadores que podemos utilizar son: $=$, $\neq$, $>$, $<$, $+$, $-$, $\times$, $\div$.
  • Como medida de tendencia central podemos calcular la moda, mediana y la media aritmética, media geométrica y media armónica. Son válidas las medidas de dispersión de rango y desviación estándar.
  • Podemos agrupar, ordenar, calcular la diferencia.

Tipos de conjuntos de datos

Muchos que ya contamos con algo de experiencia en temas de Bases de Datos tenemos la idea equivocada de que la Minería de Datos consiste en algún tipo de extensión a los lenguajes de consulta como SQL. La verdad es que la mayoría de los algoritmos de minería de datos se realizan fuera del servidor, utilizando lenguajes de propósito general como Python o Java. Recordemos que los algoritmos han sido desarrollados en gran parte por especialistas en áreas muy distintas como álgebra lineal, inferencia estadística, inteligencia artificial y reconocimiento de patrones. En estas áreas es común utilizar vectores y matrices como entradas a los algoritmos ya que estos nos permiten expresar operaciones de una manera muy eficiente.

Como este es un material de introductorio nos enfocaremos en tres conjuntos de datos básicos: tablas, matrices y grafos. A continuación veremos una descripción breve de cada tipo.

Tablas

Recordemos que los primeros pasos del proceso de KDD están dedicados a pasar los datos de su fuente original al formato requerido por los algoritmos de minería. El formato de entrada para la mayoría de los algoritmos es un arreglo de vectores de características el cual podemos representar como una tabla.

Cuando utilizamos la estructura de tabla, en algunas bibliotecas o software para Minaría de Datos como Orange o Rapid Miner se deben especificar ciertos metadatos. Los metadatos en este caso vienen siendo datos adicionales sobre cada atributo. Por ejemplo, el tipo de atributo ( categórico/nominal, continuo, discreto, tiempo, cadena) y el rol ( característica, clase/etiqueta, ponderación, ignorar).

Por ejemplo, para el conjunto de datos Iris:

sepal_length sepal_width petal_length petal_width species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
7.0 3.2 4.7 1.4 versicolor
6.4 3.2 4.5 1.5 versicolor
6.3 3.3 6.0 2.5 virginica
5.8 2.7 5.1 1.9 virginica

En el software Orange para cada atributo debemos indicar los metadatos de la siguiente manera:

atributo tipo rol meta
sepal_length continuo característica
sepal_width continuo característica
petal_length continuo característica
petal_width continuo característica
species nominal etiqueta setosa, versicolor, virginica

En otros casos, como la biblioteca scikit-learn, no es necesario especificar metadatos, se requieren los datos de cierta manera para identificar de que tipo son. Por ejemplo, nos pueden pedir dos arreglos, uno para las características:

[[5.1, 3.5, 1.4, 0.2], # setosa
 [4.9, 3.0, 1.4, 0.2], # setosa
 [7.0, 3.2, 4.7, 1.4], # versicolor
 [6.4, 3.2, 4.5, 1.5], # versicolor
 [6.3, 3.3, 6.0, 2.5], # virginica
 [5.8, 2.7, 5.1, 1.9]] # virginica

Y otro para las etiquetas:

['setosa', 'setosa', 'versicolor','versicolor','virginica','virginica']

En este caso, como no especificamos que es que, debemos de separar los datos a la entrada. Unos son características y los otros la clase. Aunque son dos arreglos distintos, se trata del mismo objeto. Es por esto que deben de corresponder las posiciones en ambos arreglos.

Independientemente de la representación es muy importante conocer el tipo y rol de los atributos. Por ejemplo en este caso vemos que todas las características son continuas y solo la etiqueta es categórica. Sabemos entonces que solo podremos utilizar estos datos en algoritmos que puedan recibir valores continuos. Existen algoritmos que solo pueden trabajar con datos categóricos o aquellos en los que la etiqueta debe ser binaria. En la sección de preprocesamiento veremos varias técnicas para modificar los datos de tal manera que podamos utilizar la mayor cantidad de algoritmos posible y en algunos casos mejorar el desempeño de los compatibles.

Matrices

A diferencia de las tablas, en las matrices las columnas no representan atributos de los objetos. Más bien, las matrices representan relaciones entre objetos. Por ejemplo, en una matriz podemos representar la distancia que existe entre dos ciudades o indicar las materias que ha cursado un alumno. Veámoslo también como celdas:

Tijuana Ensenada Mexicali
Tijuana 0 104.2 185.5
Ensenada 104.2 0 240.3
Mexicali 185.5 240.3 0
Cloud Computing Big Data Complex Systems
Ana 1 1 1
Tom 0 1 0
Joe 0 0 0

Algunas de las matrices tienen características interesantes, por ejemplo vemos que la matriz de distancia entre ciudades es simétrica o la de los cursos tiene solo datos binarios. Veamos ejemplos de matrices que utilizamos comúnmente en minería de datos:

Documento-Término

Esta matriz describe a una colección de documentos a través de los términos que aparecen en ellos. Cada renglón representa un documento y cada columna corresponde a un término. Los términos se extraen inicialmente de todos los documentos. En cada celda se tiene algún valor representativo de la relación documento-término. Los valores tienen que ver con la frecuencia con la que aparece el término en el documento y en los demás. Una representación común es el peso Tf-idf (del inglés Term frequency – Inverse document frequency) el cual se describiremos a detalle en la sección de preprocesamiento. Para entender mejor la idea consideremos estos dos documentos:

D1 : "La vida no vale nada, no vale nada la vida"
D2 : "Toda la vida coleccionado mil amores"

Podemos representar a estos documentos con la siguiente matriz, la cual captura simplemente la frecuencia los términos en cada documento:

vida no vale toda coleccionando mil amores
D1 2 2 2 0 0 0 0
D2 1 0 0 1 1 1 1

Podemos observar que el proceso de generación de la matriz también removió algunos términos que son demasiado comunes. Eliminamos a los términos que aparecen en casi todos los documentos por que no nos dicen nada distintivo de los documentos.

Una característica importante de la matriz documento-término es que la mayoría de los elementos tendrán el valor de cero, por eso decimos que es una matriz escasa. Las matrices escasas normalmente se implementan utilizando estructuras de datos especiales para no desperdiciar espacio y que el procesamiento sea más rápido.

Filtrado Colaborativo

Los sistemas de recomendación tienen como objetivo recomendar a un usuario diferentes artículos como películas, restaurantes y libros de manera personalizada. Un técnica muy utilizada para hacer recomendaciones es el filtrado colaborativo. El algoritmo toma como base una matriz donde se indica que calificación le han puesto los usuarios a los artículos. Para el caso de un sistema de recomendación de películas, podríamos tener la siguiente matriz:

The Matrix Matando Cabos Mad Max: Fury Road
Ana 0 1 5
Tom 4 4 0
Joe 5 5 5
Tim 0 1 5

Esta de nuevo es una matriz escasa donde se indica en cada entrada la calificación o utilidad que le asignó un usuario a un articulo. Comúnmente el valor de cero indica que el usuario no le ha asignado todavía una calificación al articulo. Las calificaciones normalmente son valores positivos discretos.

Una característica interesante de esta matriz es que nos permite recomendar artículos de dos maneras. Podemos recomendar buscando usuarios que son similares o películas que son similares. Para hacer esto solo necesitamos girar la matriz. En la sección de sistemas de recomendación veremos el tema con mayor detalle.

Grafos

Al igual que las matrices, los grafos nos permiten representar de una manera natural relaciones entre distintos objetos o incluso objetos y sus atributos.

Un grafo que relacione objetos del mismo tipo lo podemos representar directamente como una matriz. Veamos un ejemplo. En la red social de Twitter tenemos la relación de sigue a entre objetos tipo usuarios. Esta matriz no es simétrica, por ejemplo Tom sigue a Ana pero Ana no sigue a Tom.

Ana Tom Joe Tim
Ana 0 0 0 0
Tom 1 0 1 0
Joe 1 1 0 0
Tim 1 1 1 0

Estas relaciones las podríamos representar con un grafo, el cual se puede representar gráficamente como:

Una matriz expresada en forma de grafo

Un grafo nos permite representar diferentes tipos de relaciones y objetos al mismo tiempo:

Ejemplo de un grafo con distintos tipos de relaciones{ width=70% }

Mientras algunos algoritmos pueden trabajar directamente con grafos otros requieren su representación matricial.

A lo largo del material utilizaremos estos tres tipos de conjuntos de datos. Existen variantes de estos y algunos otros especializados. Por ejemplo, para encontrar patrones en imágenes, videos, gestos, el genoma humano, series de tiempo, y muchas otros tipos de datos. Recuerda que este material es solo el principio de muchos otros cursos, tutoriales, videos y artículos que seguramente revisarás.

Ejercicios

Da un ejemplo de cada concepto: Observación, Dato, Objeto, Atributo, Medida, Categórico, Nominal, Razón, Ordinal, Intervalar, Conjunto de Dato, Tabla, Matriz, Grafo.

Lectura adicional

Sobre la Teoría de las Escalas de Medición