🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Machine Learning
  3. Carga y análisis de datos
Extrait - Machine Learning Implementar en Python con Scikit-learn
Extractos del libro
Machine Learning Implementar en Python con Scikit-learn Volver a la página de compra del libro

Carga y análisis de datos

La fase de Data Understanding

Como vimos en la sección Machine Learning: visión general, el método CRISP-DM consta de seis fases. La primera, llamada Business Understanding, no es una fase técnica sino una fase de negocio. Consiste en comprender las necesidades del cliente, ya sea interno o externo, a través de talleres. Se trata de definir la tarea que se va a realizar, los factores de éxito, los recursos disponibles, las limitaciones, etc.

La siguiente fase se denomina Data Understanding. Consta de tres etapas, cada una de las cuales implica la producción de un resultado:

  • La ficha de identificación de los datasets (conjunto o conjuntos de datos).

  • La descripción de los campos.

  • El análisis estadístico de cada campo.

Para ello, es necesario cargar los datos y analizarlos en detalle.

Así pues, en este capítulo se detallará cada una de estas etapas y las correspondientes herramientas de la stack (pila) técnica.

Data Understanding es una fase de análisis, no de modificación. Las únicas manipulaciones autorizadas en este nivel son las necesarias para cargar, formatear y modificar el tipo de datos para un mejor análisis. Por ejemplo, puede modificarse el separador decimal durante el formateo.

Cargar los datos

Lo primero que hay que hacer es cargar los datos en el notebook (cuaderno) Jupyter. Para ello, existen varios métodos Pandas de la forma read_xxx.

Actualmente se pueden leer datos en los siguientes formatos: pickle, CSV, FWF (fixed-width), tabla (genérico), portapapeles, Excel, JSON, HTML, HDFS, feather, parquet, ORC, SAS, SPSS, SQL, Google BigQuery y STATA. Es probable que esta lista aumente.

Para leer los datasets Iris y Titanic (en formato CSV), el método es read_csv:

import pandas as pd 
  
iris_df = pd.read_csv("iris.csv")  
titanic_df = pd.read_csv("titanic_train.csv") 

Para ver una vista previa del DataFrame cargado y comprobar que se ha recibido correctamente, basta con utilizar la función head. Se puede añadir un número como parámetro indicando el número de líneas por mostrar, de lo contrario se mostrarán de forma predefinida las cinco primeras líneas.

iris_df.head() 

Con lo que se obtiene:

images/ML2_4.png

Cuando el archivo tiene un formato más complejo o está peor formateado que un archivo CSV, resulta útil echar un vistazo a las numerosas opciones de cargar el archivo.

Para el dataset de Boston, el archivo es un TXT. Su formato es, por tanto, libre. En el caso de este dataset, contiene columnas de tamaño fijo, separadas únicamente por espacios. Además, comienza con 22 líneas de comentarios, que deben ignorarse...

Crear la ficha de identificación del dataset

Una vez cargados los datos, el siguiente paso es crear la ficha de identificación del dataset. Esto es importante porque indicará la información global sobre los datos que luego se utilizarán en el proceso.

Incluye, entre otros elementos:

  • el nombre del dataset: si hay varios archivos, esto permite saber exactamente cuáles se han utilizado;

  • su origen: se trata tanto de la fuente de datos (base de datos, archivo plano, etc.) como de la fecha de extracción. En función de esta información, puede cuestionarse la calidad de los datos y su adecuación a la tarea de Machine Learning en cuestión, por ejemplo, utilizando datos demasiado antiguos;

  • su tamaño: se utiliza para garantizar que se han tenido en cuenta todos los datos en futuras cargas. Por lo tanto, se debe indicar el número de registros, el número de atributos y el tamaño del archivo, si procede;

  • su formato: permite comprender mejor la estructura del archivo para facilitar su carga si hay que rehacerlo posteriormente (codificación y separadores, por ejemplo);

  • la descripción comercial de los datos: esta información es vital, ya que nos permite entender a qué corresponden los datos y cómo se relacionan con el problema que hay que resolver.

La mayoría de estos campos no requieren ninguna operación técnica. Para el formateo...

Describir el campo

Una vez descrito el dataset, el siguiente paso para Data Unserstanding consiste en describir cada campo, normalmente en forma de tabla. Esto nos permite comprender exactamente qué significa cada variable, qué valores se esperan y si existen limitaciones conocidas.

Sin esta información, las variables pierden su significado y ningún modelo puede ponerse en producción de forma fiable.

Hace unos años se publicó un artículo médico en el que se presentaba una relación entre el tratamiento que debía administrarse a los enfermos de cáncer y la presencia de determinadas secuencias en su genoma. Fue un avance impresionante. Sin embargo, el artículo tuvo que ser retirado. De hecho, los autores habían invertido el sentido 0 o 1 de una variable (presencia o ausencia), por lo que su descubrimiento carecía de sentido en el mejor de los casos y, en el peor, corría el riesgo de poner en peligro la vida de los pacientes que siguieran las recomendaciones de su modelo.

Esto significa dar a todos:

  • su nombre, tal como figura en el dataset;

  • su tipo: entero, real, cadena de caracteres, fecha, etc.;

  • su formato si es específico: para las fechas, por ejemplo, debe indicarse el formato, en particular entre DD/MM y MM/DD;

  • su descripción: es exactamente lo que indica la variable. En el caso de los procesos industriales, suele ir acompañada de un diagrama que indica dónde se realizan las distintas mediciones;

  • su unidad: es muy importante para comprobar la correspondencia entre el contenido de la variable y su significado. Por ejemplo, si la temperatura del agua líquida se da en °C, debe estar comprendida entre 0 y 100 a presión ambiente;

  • la presencia o ausencia de datos faltantes y, en su caso, el número de datos ausentes;

  • sus límites previstos, que se derivan de la información anterior;

  • y cualquier otra información útil, si es necesario.

Pandas puede utilizarse para obtener parte de esta información: el tipo y los datos faltantes. El resto de la tabla se obtendrá de conversaciones con el cliente y/o el proveedor de datos.

1. Gestionar tipos

El tipo puede determinarse mediante el atributo dtypes. Sin embargo, tenga en cuenta que el tipo puede ser incorrecto cuando se importe, ya que puede haber sido detectado incorrectamente. Por lo tanto, es posible cambiar...

Estadísticas descriptivas de los campos

La última etapa de la fase de Data Understanding consiste en un análisis estadístico de cada uno de los campos. Los análisis dependen del tipo de variable. 

Este análisis proporciona una comprensión más detallada de los datos, lo que permite tomar decisiones más informadas sobre los preparativos que deben realizarse antes de la modelización. Aunque esta fase puede parecer desalentadora, no deja de ser necesaria.

1. Tipos de datos

En el capítulo Machine Learning: visión general, se definieron cuatro tipos de datos:

  • Variables categoriales: cada valor representa una categoría.

  • Nominal: no existe un orden específico entre las categorías.

  • Ordinal: las variables siguen un orden.

  • Variables numéricas: cada valor es un número.

  • Continuas: todos los valores son potencialmente aceptables (variables reales).

  • Discretas: solo se admiten determinados valores (normalmente números enteros).

Para cada variable, se deben generar dos informaciones:

  • Un análisis estadístico, en forma de texto o tabla.

  • Una visualización de datos.

Sin embargo, las herramientas que deben utilizarse difieren en función del tipo de variable (categorial o numérica).

2. Analizar datos numéricos

Los datos numéricos son los más tradicionales en estadística. Su estudio implica definir indicadores tanto de tendencia central como de dispersión.

Los principales indicadores de tendencia central son la media y la mediana. Muestran dónde se sitúan los datos en el espacio de posibilidades.

Los indicadores de dispersión incluyen el mínimo y el máximo, la desviación típica o estándar, la varianza y los distintos cuartiles. Su función es ayudarnos a comprender mejor la distribución de los datos en torno a los indicadores de tendencia central.

Para el Machine Learning, es importante que los datos numéricos sigan lo más fielmente posible un perfil gaussiano, también conocido como «curva de campana», con una desviación típica bastante baja.

Una vez cargados los datos, es muy fácil obtener estos diferentes indicadores utilizando las funciones asociadas en Pandas:

  • mean y median para los indicadores de tendencia central.

  • min, max, var, std para mínimo...

Preparar la siguiente fase

Durante la fase de análisis de datos se realizaron varios pasos:

  • Cargar los datos.

  • Crear las fichas de identificación del dataset.

  • Describir los campos.

  • Realizar el análisis estadístico de cada campo: estadísticas univariantes y bivariantes, así como gráficos.

Hay varias razones para documentar todo lo que se ha hecho en esta fase.

En primer lugar, se pueden poner de manifiesto posibles problemas de calidad de los datos, o incluso detener el proyecto si son demasiado graves (como datos obsoletos).

Además, permite rastrear el origen de los datos y su significado, lo que puede ahorrar tiempo en fases posteriores.

Por último, el análisis estadístico permite decidir qué hacer con cada uno de los campos durante la fase de preparar los datos: suprimirlo, modificarlo, conservarlo, etc. Por lo tanto, es fundamental conservar no solo los análisis, sino también las conclusiones extraídas de ellos.

En el caso de una presentación a un cliente, es buena idea quedarse solo con los resultados que plantean posibles preguntas, para poder concentrarse en lo que parece más importante.

Con el reglamento europeo (AI Act), aprobado en su forma definitiva en marzo de 2024, el análisis estadístico será obligatorio para cualquier proyecto considerado de «alto riesgo», en particular para validar que los datos no estén...