La calidad de los datos es el cimiento de una aplicación exitosa de Inteligencia Artificial. Como vimos en artículos pasados, el concepto de Inteligencia Artificial se basa en enseñar a las computadoras a deducir soluciones a nuestros problemas, utilizando los resultados esperados como aprendizaje. Es nuestra responsabilidad alimentar ese proceso de aprendizaje con información veraz y de calidad.

malos-datos

Grandes proyectos de inteligencia artificial (tanto en tamaño como en presupuesto) han fracasado por mala calidad o sesgos en los datos de aprendizaje.

Análisis exploratorio de datos

Cuanto más conocemos sobre algo, mayor es el beneficio que podemos sacar. Lo mismo sucede cuando hablamos de información, no sólo es importante el poseer la información, sino que debemos entenderla, conocer en detalle su contenido y sus características.

El análisis exploratorio de datos (EDA, por sus siglas en inglés) es utilizado para analizar e investigar conjuntos de datos y resumir sus principales características, empleando a menudo métodos de visualización de datos.

Podemos ver este análisis como un proceso de investigación, donde nuestra tarea es buscar pistas o indicios, analizando las variables en grupos, observando la información desde distintos ángulos. Trata de un procedimiento científico, aplicando herramientas que nos facilitan el tratamiento de grandes volúmenes de datos.

Cuáles son sus objetivos

Nos permite consultar los datos antes de hacer cualquier suposición. Como resultado, podemos detectar errores, entender mejor los patrones en los datos, encontrar relaciones entre variables y detectar valores atípicos o malas mediciones.

Alguno de los objetivos que buscamos son:

  • Verificar si existen datos faltantes o erróneos.
  • Describir en detalle la información que poseemos y su estructura
  • Identificar variables redundantes, quizás tenemos columnas que muestran información parecida. Cuanto menos variables tengamos es mejor, porque estaremos haciendo menos operaciones sobre los datos.
  • Identificar las variables más influyentes.

Una mirada a los datos

Aunque parezca simple, lo primero que debemos hacer, es visualizar los datos y sus características.

Podemos tomar algunas filas de muestra y prestar atención a la estructura y valores que almacena.

Usualmente las filas de datos reciben el nombre de observaciones, y las columnas, son las características o variables.

De esta mirada debemos tonar nota de características como:

  • Cuantas observaciones tenemos
  • Cuantas variables incluye
  • Cuáles son los tipos de datos de las variables (numérico, texto, fecha)
  • Existen casos donde una variable tenga datos de distintos tipos (tendremos que ver cómo tratar esta situación)
  • Por cada variable, cuantas observaciones vacías (nulas) se tienen

Para tener como ejemplo, usaremos una base de datos de censo de adultos y sus ingresos anuales.

age workclass education marital-status sex hours-week capital-gain
39 State-gov Bachelors Never-married Male 40 2174
50 Self-emp-not-inc Bachelors Married-civ-spouse Male 13 0
38 Private HS-grad Divorced Male 40 0
53 Private 11th Married-civ-spouse Male 40 0
28 Private Bachelors Married-civ-spouse Female 40 0

Y revisamos cuantas observaciones tenemos, y sus valores nulos:

Column Non-Null Dtype
age 32561 int64
workclass 32561 object
education 32561 object
marital-status 32561 object
sex 32561 object
hours-week 32561 int64
capital-gain 32561 object

Generalmente enfocamos nuestra atención en aspectos como:

  • Variables con valores nulos
  • Identificar qué tipo de datos almacenan
  • Para las variables numéricas, identificar las discretas de las continuas
  • Identificar variables discretas de texto (por ejemplo, marital_status)

Una imagen vale más que mil palabras

El uso de herramientas estadísticas y de visualización nos ayudará a tener una comprensión detallada de las características de nuestros datos. Para este objetivo, contamos con un conjunto de gráficas que usualmente forman parte de nuestra exploración.

Histograma

Podemos analizar una variable numérica, representando sus valores en una gráfica de barra, donde el tamaño de la barra indica la frecuencia de los valores representados.

Nos permite visualizar como se distribuyen los valores de la variable. Ayuda a identificar e interpretar patrones, que de otra forma serían muy difíciles de notar si miramos únicamente las tablas de datos.

logo

Se usa para casos de variables continuas (pueden expresar una cantidad infinita de valores, sin importar que sea un valor intermedio) o no continuas (solo pueden adquirir como valor un conjunto de números, como en el ejemplo, la edad, que sólo tiene valores enteros), la mayoría de las veces, agrupando sus valores en rangos (en el ejemplo, en grupos de 10 años).

Gráficos de caja

Se utiliza para visualizar la distribución de los datos. Permite detectar valores atípicos, y si existe un sesgo positivo o negativo respecto a la mediana.

La mediana es el valor que ocupa la posición central de un conjunto de observaciones ordenadas (el 50 por ciento de las observaciones son mayores que este valor y el otro 50 por ciento son menores)

box-plot

El gráfico está compuesto por:

  • El rectángulo central, llamado caja, dividido por la mediana.
  • Los cuartiles Q1, Q2 y Q3. En cada intervalo (Q1-Q2 y Q2-Q3), se encuentran un 25% de los valores.
  • Los valores Li, Ls se calculan para identificar los límites admisibles.
  • Los valores puntuales fuera de los límites Li y Ls son los valores atípicos.
  • El mínimo es el menor valor del conjunto que sea mayor o igual que Li. El máximo es el mayor valor del conjunto que es menor o igual que Ls.
  • Las líneas por encima y debajo de la caja, se denominan bigotes, y van desde el primer cuartil hasta el mínimo y desde el tercer cuartil hasta el máximo.

Una caja de gran altura, nos indica que los datos tienen una mayor dispersión. Nos proporciona una visión general de la simetría de la distribución de los datos; si la mediana no está en el centro de la caja, la distribución no es simétrica.

Mapas de Calor

En este paso, comparamos todos los pares posibles de variables, para identificar si existen relaciones entre ellas.

Por cada par, se calcula el índice de correlación, y su valor se muestra gráficamente en una matriz de correlación.

logo

En la diagonal, se compara una variable consigo misma, por lo que su valor siempre será 1. Los valores más cercanos a cero indican que la relación entre variables es débil. Cuanto más cercanos a 1 o -1, mayor es el vínculo entre una variable y otra. Un valor positivo indica que los valores de ambas variables tienden a incrementarse juntos, uno negativo indica que mientras uno aumenta, el otro disminuye.

Gráfico de dispersión

Nos muestran cómo están relacionadas 2 variables, poniendo una en el eje de las x y la otra en el eje de las y, por cada combinación de valores, aparece un punto en la gráfica.

logo

Podemos agrupar los resultados de la observación en:

  • Si la tendencia es que los puntos suban a la derecha de la gráfica, hay una correlación positiva.
  • Si los puntos bajan hacia la derecha, hay una correlación negativa.
  • Si no hay tendencia en general, entonces no hay correlación.

Frutos de la investigación

Existen más herramientas estadísticas y gráficas para profundizar en nuestro análisis exploratorio de datos.

El conocimiento obtenido será fundamental para lograr resultados de calidad al trabajar con la información disponible.

Será el punto de partida para la siguiente etapa, donde buscamos mejorar la calidad de los datos y analizar sus usos.

  • Usualmente no es recomendable tener datos faltantes (nulos), por lo que podemos decidir qué hacer para estos casos, podemos sustituirlos por un valor arbitrario, o eliminar toda la observación.
  • Pudimos identificar tipos de datos incorrectos. Por ejemplo, columnas numéricas pero que estaban expresadas como texto. Podemos hacer una transformación a número para utilizarlas. Quizás los datos no contengan números válidos, debemos decidir si poner un valor arbitrario, o quizas eliminar la observación.
  • Valores atípicos, que deben ser eliminados porque no aportan información de valor.
  • Variables de alta correlación. Podemos quedarnos con una sola de estas variables, y así ahorrarnos un gasto innecesario en procesamiento.
  • Identificar transformaciones de datos. Cuando tenemos observaciones discretas de texto, es mejor codificar sus valores como números, ya que las computadoras son mucho más eficientes trabajando con ellos. (Por ejemplo, si tenemos la variable educación, con valores Primaria, Secundaria y Universidad, podemos darle valores 1,2,3).
  • Para variables numéricas continuas, se recomienda normalizar sus valores. El objetivo es que una variable que tiene valores de millones no tome más importancia que otra cuyo rango llega a decenas, o centenas. Lo que se puede hacer, es normalizar sus valores, tomando sus valores mínimo y máximo para llevarlas a un valor entre 0 y 1.

En IDEATI estamos a tu disposición para ayudarte a construir tus proyectos de Inteligencia Artificial.