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

Dialéktico
Compartir

CONTENIDO

Si hay notación matemática, se recomienda la visualización de este contenido en una computadora

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 el que suele ser el primer paso 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

Ciclo de vida de los datos dialéktico

Google Colab

Preprocesamiento de datos dialéktico

Programación en Python

Preprocesamiento de datos dialéktico

Tentempié

Preprocesamiento de datos 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 el 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.6.1), que es la que corresponde a la operación computacional de los datos para dotarles de valor.

preprocesamiento de datos en ciclo de vida de los datos
Figura 2.6.1 Énfasis del procesamiento y preprocesamiento en el ciclo de vida de los datos.
Preprocesamiento de datos dialéktico
PPD D1

A quien le interesa particularmente acondicionar los datos para su procesamiento, es a quien está involucrado directamente con el procesamiento de los datos (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.

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 3 técnicas o enfoques principales del preprocesamiento se pueden dividir de la siguiente forma:

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

Veamos de qué va cada una.


Nota: dentro de la disciplina de la minería de datos, el preprocesamiento también conlleva la integración de los datos, la cual consiste en unificar diferentes bases de datos en un solo espacio; sin embargo, en el contexto de la ciencia de datos, este ejercicio es generalmente ejecutado en la etapa de almacenamiento del ciclo de vida de los datos. En este curso consideraremos al preprocesamiento solo como un flujo compuesto por los tres enfoques aquí arriba mencionados, tomando en cuenta la integración como una tarea ya realizada en etapas anteriores.


Limpieza de datos

Esta es generalmente la primera y 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 incosistencias en datos para su limpieza son:

  • Datos nulos: 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.
  • Datos atípicos: datos con valores lejanos a la tendencia mostrada por la mayoría, su remoción es sumamente importante para la obtención de modelos precisos.
  • 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).

El cómo evaluar la consistencia de un conjunto de datos en términos generales lo experimentaremos más tarde en nuestra práctica en Python.

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).

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.

Preprocesamiento de datos dialéktico

¿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 o R 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.

Preprocesamiento de datos dialéktico
Preprocesamiento de datos dialéktico

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.

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 74%

0%

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.

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