Preprocesamiento de datos: introducción y ejecución en Python

Dialéktico
Compartir

CONTENIDO

Hemos alcanzado la penúltima sesión de nuestro entrenamiento especializado en conjuntos de datos, uno de los peldaños más significativos previo a dar partida en caminos más intrincados, poblados por los desafíos que plantean los modelos del machine learning.

En esta ocasión, conocerás y pondrás en práctica un paso ineludible en el desarrollo de todo algoritmo de aprendizaje de máquinas: el preprocesamiento de datos. Este es una parte cardinal del ciclo de vida de los datos, y es una actividad muy frecuente a realizar por quienes tienen la tarea de implementar modelos de aprendizaje de máquinas, ya que la mayoría de las veces es necesario modificar algunos aspectos de los datos para procurar su eficaz procesamiento computacional.

Preprocesamiento de datos dialéktico
Equipaje recomendado
Ciclo de vida de los datos dialéktico

Nociones sobre conjuntos de datos, el ciclo de vida de los datos, y tipos de datos

Ciclo de vida de los datos dialéktico

Matemáticas: conocimiento en estadística descriptiva e inferencial

estadística dialéktico

Análisis exploratorio de datos

análisis exploratorio de datos dialéktico

Google Colab

Preprocesamiento de datos dialéktico

Programación en Python: uso de librerías y comprensión básica de sintaxis

Preprocesamiento de datos dialéktico

Tentempié

comida dialéktico

En este caso, además de explicar nuestro objeto de estudio, también tendremos nuestra primera práctica en Python, la cual vendrá desarrollada en un cuaderno de Google Colab, y para el que solo tendrás que ejecutar líneas de código y observar los resultados.


Nota: Recuerda que para utilizar Google Colab solo tendrás que hacer clic en el botón que te compartiré en la sección de programación, el cual te dirigirá hacia el espacio de trabajo con el código ejecutable y sus respectivas explicaciones. No olvides revisar la introducción rápida a Colab si aún no sabes de qué se trata.


¿Qué es el preprocesamiento de datos?

Preprocesamiento de datos dialéktico

El preprocesamiento de datos es el conjunto de técnicas empleadas con el fin de preparar los datos para asegurar su calidad, viabilidad, y eficiencia para su procesamiento computacional. Es una de las etapas del ciclo de vida de los datos, y su importancia radica en que su objetivo es procurar las mejores propiedades de los datos para su computación.

El preprocesamiento de datos como una etapa del ciclo de vida de los datos está justo detrás de la fase de procesamiento (Fig. 2.7.1), que es la que corresponde a la operación computacional de los datos para su transformación en conocimiento de valor.

preprocesamiento de datos en ciclo de vida de los datos
Figura 2.7.1 Énfasis de las etapas de preprocesamiento y procesamiento en el ciclo de vida de los datos.
laiarhang Preprocesamiento de datos dialéktico
dialéktico

A quien le interesa particularmente acondicionar los datos es a quien está involucrado directamente con el procesamiento de estos (en nuestro caso, alimentar un modelo de aprendizaje de máquinas).

A pesar de que el preprocesamiento se da en un momento posterior a la transformación de los datos, la cual consiste en modificar estos para su correcto almacenamiento en bases de datos relacionales o no relacionales (es decir, dotarlos de formatos estructurados o semi-estructurados), esto no quiere decir que la información ya está en la mejor forma para entrar en la etapa de procesamiento.

mmerf Preprocesamiento de datos dialéktico

Para entenderlo mejor, dejemos de lado las analogías de panes, y veamos las técnicas empleadas para ello, y algunos ejemplos.

Técnicas de preprocesamiento de datos

El preprocesamiento de datos comprende un conjunto de técnicas o tipos de técnicas originadas principalmente en la minería de datos (la cual trata sobre extracción de patrones en grandes volúmenes de datos). Estas componen el flujo del preprocesamiento, y conocerlas ilustrará los objetivos que persigue.

Las cuatro técnicas o enfoques principales del preprocesamiento se dividen de la siguiente forma:

  • Integración
  • Limpieza.
  • Transformación.
  • Reducción.

Veamos de qué va cada una.

Integración de datos

La la etapa de integración de datos en el preprocesamiento consiste en combinar información proveniente de diversas fuentes en un solo conjunto unificado. El realizar o no esta tarea dependerá de diversos factores referentes a tus bases de datos: ¿de dónde tomarás los datos?, ¿son compatibles entre sí?, ¿qué tipos de datos tienes y qué requieres para unirlos en un solo conjunto?

Entre otras palabras, esta etapa consiste en tomar datos de diversas bases y cruzarlos para tener un solo conjunto sobre el cual operar. Es importante, ya que para entrenar un modelo de aprendizaje artificial debes tener ordenados tus datos en un solo conjunto de ejemplos de entrenamiento, como vimos en las definiciones de conjuntos de datos y conjuntos de datos etiquetados.

mmerf

Puede que esto suene un poco inconsistente con el flujo del ciclo de vida de los datos presentado hasta ahora, ya que he hablado de que los datos suelen almacenarse en espacios centralizados como data warehouses o datalakes. Pero esto no implica que TODOS los datos se encuentren en una sola estructura como una tabla, si no que se tendrán diferentes conjuntos almacenados en estructuras separadas, generalmente tablas relacionadas entre sí (cuando son datos estructurados). Y de ahí debes tomar lo que necesites, y combinarlo en un solo conjunto para tus fines.

Antes de continuar… no olvidemos el análisis exploratorio

Una vez que tenemos un conjunto unificado, es hora de realizar las modificaciones correspondientes a los datos para que queden listos como entradas para un algoritmo de machine learning. Pero, ¿cómo sabemos qué acciones específicas llevar a cabo?

Para esto, se realiza un análisis de datos exploratorio, en el que irás descubriendo los aspectos de tus datos que debes trabajar. Por lo tanto, el análisis de datos va aunado a las siguientes etapas; conforme vas analizando tus datos, vas determinando qué tareas necesitarás ejecutar para preprocesar los datos adecuadamente. Por ello, consideraremos que el análisis exploratorio es parte del peprocesamiento de datos, y no una actividad separada.

Recordemos de qué va este tipo de análisis visualizando de nuevo el esquema de la Figura 2.6.1 de la sesión pasada:

EDA esquema 2
Figura 2.6.1 Esquema que muestra los componentes de un análisis exploratorio de datos.

Ahora sí, es momento de modificar esos datos.

Limpieza de datos

Esta es generalmente la más elemental más concurrida actividad dentro del preprocesamiento. Consiste en la detección y corrección de inconsistencias en el conjunto de datos. Para su ejemplificación, nos referiremos principalmente a datos organizados en tablas, dado que es muy frecuente encontrarlos en estas estructuras. Algunos ejemplos de inconsistencias en datos para su limpieza (las cuales encontraste mediante un análisis exploratorio) son:

  • Datos nulos o ausentes: generalmente son expresados por la máquina con la forma «NaN» o «Null», estos representan espacios vacíos o datos no válidos en el conjunto de datos.
  • Datos duplicados: renglones/ejemplos de entrenamiento repetidos en el conjunto de datos.
  • Datos mal escritos: palabras o números que no tienen sentido en el contexto del conjunto de datos por algún error de transcripción.
  • Tipos de datos inconsistentes: que cada columna no esté definida con su tipo de datos correspondiente, por ejemplo, los datos cuantitativos deberían expresarse como enteros (int) o racionales (float), y los datos cualitativos en su mayoría como cadenas de caracteres (strings).
  • Datos atípicos: valores que se alejan de forma estadísticamente considerable de la tendencia.
mmerf Preprocesamiento de datos dialéktico

Transformación de datos

Este enfoque tiene el mismo nombre que el de nuestro ciclo de vida de los datos, pero no debe confundirse: la transformación de datos en el preprocesamiento trata sobre modificar el conjunto de datos para posibilitar o acrecentar su facilidad de procesamiento. Algunas de estas transformaciones pueden ser: normalización/estandarización de los datos (una operación muy común), suavizado, vectorización, escalado, o codificación (traducción de datos cualitativos a números o estructuras matemáticas).

mmerf Preprocesamiento de datos dialéktico

Reducción de datos

La reducción de datos consiste en la obtención de una representación más pequeña, pero más conveniente, del conjunto de datos. Entre las actividades que la conforman están la reducción de categorías/dimensionalidad (una práctica muy frecuente), y reducción de numerosidad. Para esto se pueden emplear incluso algoritmos de aprendizaje supervisado y no supervisado, y su fin es la optimización del procesamiento de la información, y la generación de los resultados más óptimos posibles.

Como podrás notar, el preprocesamiento consiste en asegurar que los datos a procesar no generen errores al tomarse como entradas en los algoritmos, y sean computados en el menor tiempo posible; esta es la razón de ser de este paso del ciclo de vida de los datos, el cual es casi rutinario en la creación y ejecución de un modelo de aprendizaje de máquinas.

kagnadi

¿Cómo hacer preprocesamiento de datos?

El preprocesamiento se puede trabajar con distintas herramientas que permitan la manipulación de los datos, ya sea con algún lenguaje de programación como SQL, Python o R, o aplicaciones como Excel, Google Sheets, entre otras. La mejor idea es (si está dentro de las posibilidades) hacer este acondicionamiento de los datos desde el mismo lugar en el que ejecutarás su procesamiento, ya que simplifica el salto entre etapas (pre y procesamiento); en términos generales, un lenguaje de programación flexible como Python es la mejor opción, ya que puedes llevar a cabo tareas altamente personalizables, y definir tanto las operaciones de la etapa de preprocesamiento y procesamiento con códigos escritos en el mismo lenguaje, lo cual aporta fluidez.

Como he mencionado al principio de esta travesía, nosotros usaremos Python para preprocesar nuestros conjuntos de datos, y ya es tiempo de navegar hacia tu primera práctica en este lenguaje de programación, donde entenderás mucho mejor el proceso de preparación de datos definido hasta ahora.

aelacor Preprocesamiento de datos dialéktico
kagnadi Preprocesamiento de datos dialéktico

Contesta las siguientes preguntas

1 / 3

¿Cuáles de las siguientes afirmaciones sobre el preprocesamiento de datos son verdaderas? Selecciona todas las que apliquen.

2 / 3

Selecciona todas las opciones que correspondan a tareas realizadas para el proprocesamiento de datos:

3 / 3

Selecciona las técnicas o tipos generales del preprocesamiento de datos:

Tu puntación es

La puntuación media es 75%

0%

Análisis exploratorio y preprocesamiento de datos con Python

Preprocesamiento de datos dialéktico

En el siguiente código en Python observarás ejemplos de manipulación de datos utilizando parte de las técnicas anteriormente descritas, principalmente mediante la librería Pandas. Operarás sobre un conjunto de datos real, y visualizarás los cambios que se van suscitando en estos conforme a las modificaciones realizadas alineadas a objetivos propuestos.

No necesitas programar nada, solo ejecutar el código para atestiguar los resultados, aunque eres libre de realizar cambios si deseas realizar experimentos.

Accede dando clic en el siguiente botón:

colab

También puedes echar un vistazo al código en la siguiente ventana:

Esta primera práctica en Python funge como una introducción a la forma de trabajo en libretas de Google Colab, y tiene como objetivo el darte una idea de las metas del preprocesamiento y su importancia al programar un algoritmo de aprendizaje automático.

Las técnicas empleadas para ejecutar estas tareas varían de acuerdo a los datos a preprocesar, e irás explorando sus distintas formas conforme avancemos en el curso.

Has concluido el tramo más escabroso de tu entrenamiento en datos, el cual es imprescindible para iniciar tus andanzas en los territorios que albergan los principales algoritmos del aprendizaje de máquinas.

Si te quedaste con dudas sobre lo que hemos puesto en marcha en la práctica, no te preocupes, haremos preprocesamiento de datos y análisis exploratorio en innumerables ocasiones a lo largo de nuestras travesías. El fin de este primer acercamiento fue mostrarte cómo evoluciona un conjunto de datos al ir aplicando las etapas de análisis y preprocesamiento.

Preprocesamiento de datos dialéktico

Como última parada antes de comenzar nuestro estudio de algoritmos de machine learning, haremos una breve exploración en un tema inherente a la división de los datos para el entrenamiento y evaluación de modelos.

Preprocesamiento de datos dialéktico

DEJA TUS DUDAS O COMENTARIOS

Suscríbete
Notíficame de
guest

0 Comentarios
Más viejo
Más nuevo Más votado
Respuestas entre líneas
Ver todos los comentarios
0
¿Dudas, sugerencias, o comentarios? Deja un mensaje.x