Skip to Content

¿Qué es el preprocesamiento de datos para el aprendizaje automático?

El preprocesamiento de datos para el aprendizaje automático (ML) se refiere a la preparación y transformación de datos sin procesar en un formato adecuado para la capacitación de modelos de ML. Es un paso esencial en un proceso de ML (o AI) porque afecta directamente el rendimiento y la precisión de los modelos.

El preprocesamiento de datos implica varias técnicas, como limpiar los datos para manejar los valores faltantes, eliminar valores atípicos, escalar características, codificar variables categóricas y dividir los datos en conjuntos de capacitación y pruebas. Estas técnicas son clave para garantizar que los datos estén en un formato consistente y utilizable para los algoritmos de ML.

Este artículo cubre todo lo que necesita saber sobre el preprocesamiento de datos para el aprendizaje automático, incluido qué es, sus beneficios, pasos y ejemplos. 

¿Qué es el preprocesamiento de datos? 

El preprocesamiento de datos es la transformación de los datos sin procesar en un formato más adecuado y significativo para el análisis y la capacitación del modelo. El preprocesamiento de datos desempeña un papel vital en la mejora de la calidad y la eficiencia de los modelos de ML al abordar problemas como valores faltantes, ruido, inconsistencias y valores atípicos en los datos.

Beneficios del preprocesamiento de datos para el aprendizaje automático

El preprocesamiento de datos para el aprendizaje automático tiene muchos beneficios, y estos beneficios son los mismos que los pasos involucrados en el preprocesamiento de datos. Echemos un vistazo. 

1. Limpieza de datos

La limpieza de datos es una parte esencial del proceso de preprocesamiento de datos en el aprendizaje automático. Implica identificar y corregir errores o inconsistencias en el conjunto de datos para garantizar que los datos sean de alta calidad y adecuados para el análisis o la capacitación del modelo. 

La limpieza de datos generalmente incluye:

Manejo de valores faltantes

Los valores faltantes son un problema común en los conjuntos de datos del mundo real y pueden afectar negativamente el rendimiento de los modelos de ML. Para identificar y lidiar con los valores faltantes:

  • Use estadísticas descriptivas o visualizaciones para identificar columnas/funciones con valores faltantes. Los indicadores comunes de valores faltantes incluyen valores NaN (no un número) o NULOS.
  • Determine el impacto de los valores faltantes en su análisis o modelo. Considere el porcentaje de valores faltantes en cada columna y su importancia para el conjunto de datos general.
  • Si el porcentaje de valores faltantes es pequeño y esas filas o columnas no son críticas, puede optar por eliminarlas usando métodos como dropna() en pandas o funciones similares en otras herramientas.
  • Para las características numéricas, puede imputar los valores faltantes utilizando técnicas como la media, la mediana o el método de imputación de modo (fillna() en pandas). Para las características categóricas, puede imputar con la categoría más frecuente.

También puede considerar métodos de imputación más avanzados, como la imputación de regresión, la imputación de vecinos más cercanos a k o el uso de modelos de ML para predecir valores faltantes basados en otras características.

Manejo de valores atípicos

Los valores atípicos son puntos de datos que difieren significativamente de otras observaciones en el conjunto de datos y pueden sesgar el análisis estadístico o los modelos de aprendizaje automático. 

Para detectar y manejar valores atípicos:

  • Use diagramas de caja, histogramas o diagramas de dispersión para visualizar la distribución de las características numéricas e identificar los posibles valores atípicos de manera visual.
  • Calcule estadísticas resumidas como media, desviación estándar, cuartiles e intervalo intercuartil (IQR). Los valores atípicos a menudo se definen como puntos de datos que caen por debajo de Q1 - 1,5 * IQR o por encima de Q3 + 1,5 * IQR.
  • En algunos casos, eliminar los valores atípicos puede ser apropiado, especialmente si se deben a errores o anomalías en el ingreso de datos. Use técnicas de filtrado basadas en umbrales estadísticos para eliminar valores atípicos.
  • Aplique transformaciones como la transformación de registros, la transformación de raíz cuadrada o la transformación Box-Cox para que los datos se distribuyan de manera más normal y reduzcan el impacto de los valores atípicos.
  • Considere usar modelos de aprendizaje automático robustos que sean menos sensibles a los valores atípicos, como máquinas de vectores de soporte (SVM), bosques aleatorios o métodos de conjunto.

Manejo de duplicados

Los registros duplicados pueden sesgar el análisis y modelar la capacitación al inflar ciertos patrones o sesgos. 

Para detectar y manejar duplicados:

  • Use funciones como duplicada() en pandas para identificar filas duplicadas basadas en columnas específicas o en toda la fila.
  • Si los registros duplicados son redundantes y no proporcionan información adicional, puede eliminarlos usando la función drop_duplicates() en pandas o métodos similares en otras herramientas.
  • En algunos casos, pueden producirse duplicados debido a varias entradas, pero tienen identificadores únicos. Asegúrese de conservar identificadores únicos o columnas clave que diferencien entre registros duplicados.

Al seguir estos pasos y utilizar técnicas adecuadas, puede limpiar y procesar previamente sus datos de manera eficaz para las tareas de aprendizaje automático, mejorando la calidad y confiabilidad de las predicciones de sus modelos.

2. Normalización de datos

La normalización es una técnica de procesamiento previo de datos que se utiliza para escalar y estandarizar los valores de las características dentro de un conjunto de datos. El objetivo principal de la normalización es llevar todos los valores de las características a un rango similar sin distorsionar las diferencias en los rangos de valores. Esto es importante porque muchos algoritmos de aprendizaje automático funcionan mejor o convergen más rápido cuando las funciones de entrada tienen una escala similar y una distribución similar.

Los beneficios de la normalización incluyen:

  • Ayudar a evitar que las funciones con grandes escalas dominen a aquellas con escalas más pequeñas durante el entrenamiento del modelo. 
  • Los algoritmos como el descenso de gradiente convergen más rápido cuando las funciones se normalizan, lo que lleva a tiempos de capacitación más rápidos. 
  • Reducción del impacto de los valores atípicos al llevar todos los valores dentro de un rango limitado. Los datos normalizados pueden ser más fáciles de interpretar y comparar entre diferentes funciones.

Técnicas de normalización

Escalamiento mín.-máx. 

  • Fórmula:Xnorm =Xmáx −Xmin /Xmáx −Xmin
  • Rango: Transforma los valores en un rango entre 0 y 1.

 

Ejemplo:

Normalización del puntaje Z (estandarización):

  • Fórmula: Xstd =σX/μ
  • Rango: Transforma los valores para tener una media de 0 y una desviación estándar de 1.

 

Ejemplo:

Pautas para aplicar la normalización

Escalamiento mín.-máx.: La escalabilidad mín.-máx. es adecuada para algoritmos que requieren que las funciones de entrada estén dentro de un rango específico, como redes neuronales y máquinas de vectores de soporte. Asegúrese de que los valores atípicos se manejen de manera adecuada, ya que pueden afectar la escalabilidad.

Normalización del puntaje Z: Esto es adecuado para algoritmos como la agrupación de medias k, la regresión lineal y la regresión logística. Da como resultado una distribución centrada alrededor de 0 con una desviación estándar de 1, lo que la hace ideal para algoritmos que asumen datos distribuidos normalmente.

Datos dispersos: Para conjuntos de datos dispersos (donde la mayoría de los valores son cero), considere usar técnicas como MaxAbsScaler o RobustScaler para la normalización.

Datos categóricos: Para las características categóricas, considere técnicas como la codificación en un solo punto antes de la normalización para garantizar una escalabilidad significativa.

Es importante tener en cuenta que la elección de la técnica de normalización depende de las características específicas de sus datos y de los requisitos del algoritmo de aprendizaje automático que planea usar. La experimentación y la comprensión del impacto en el rendimiento del modelo son aspectos clave de la aplicación efectiva de la normalización.

3. Escalamiento de funciones

El escalamiento de características es una técnica de preprocesamiento de datos que se utiliza para estandarizar el rango de variables independientes o características de un conjunto de datos. El objetivo del escalamiento de características es llevar todas las características a una escala o rango similar para evitar que una característica domine sobre otras durante la capacitación o el análisis del modelo. El escalamiento de funciones puede mejorar la velocidad de convergencia de los algoritmos de optimización y evitar que ciertas funciones tengan una influencia indebida en el modelo.

Función del escalamiento de características en el preprocesamiento de datos

Las funciones de escalamiento garantizan que los algoritmos de ML traten todas las funciones por igual, lo que evita el sesgo hacia las funciones con escalas más grandes. También mejora las convergencias, ya que muchos algoritmos de optimización (p. ej., descenso de gradiente) convergen más rápido cuando se escalan las características, lo que lleva a un entrenamiento más rápido del modelo. También puede evitar problemas de inestabilidad numérica que puedan surgir debido a grandes diferencias en las magnitudes de las características. Y, por último, el escalamiento puede facilitar la interpretación del impacto de las características en las predicciones del modelo.

Métodos de escalamiento de características

Además de la escalabilidad mín.-máx. y la normalización del puntaje Z descritas anteriormente, también hay:

MaxAbsScaler: Esto escala cada característica por su valor absoluto máximo, por lo que los valores resultantes oscilan entre -1 y 1. Es adecuado para datos dispersos en los que es importante conservar cero entradas, como en sistemas de clasificación de texto o recomendación.

RobustScaler: Esto utiliza estadísticas que son sólidas para los valores atípicos, como la mediana y el rango intercuartil (IQR), para escalar las características. Es adecuado para conjuntos de datos que contienen valores atípicos o distribuciones sesgadas.

Pautas para aplicar el escalamiento de funciones

Para aplicar el escalamiento de funciones:

  • Aplique la estandarización (normalización del puntaje Z) cuando los datos sigan una distribución normal o cuando se usen algoritmos como regresión lineal, regresión logística o agrupamiento de medias k.
  • Aplique la normalización (escala mín.-máx.) cuando necesite que los datos estén dentro de un rango específico, como redes neuronales o máquinas vectoriales compatibles.
  • Use MaxAbsScaler cuando trate con datos dispersos, como datos de texto o características dispersas de alta dimensión.
  • Use RobustScaler al tratar con conjuntos de datos que contienen valores atípicos o características que no se distribuyen normalmente.

Tenga en cuenta que es posible que las características categóricas necesiten codificación (p. ej., codificación en caliente) antes de aplicar el escalamiento de características, especialmente si son nominales (categorías no ordenadas).

4. Manejo de datos categóricos

Las variables categóricas representan grupos o categorías y a menudo son de naturaleza no numérica, lo que plantea desafíos durante la capacitación del modelo, incluidos los siguientes:

  • Representación no numérica: Las variables categóricas generalmente se representan usando cadenas o etiquetas, que la mayoría de los algoritmos de aprendizaje automático no pueden procesar directamente. Los algoritmos requieren entradas numéricas para la capacitación y las predicciones.
  • Variables ordinales frente a nominales: Las variables categóricas pueden ser ordinales (con un orden significativo) o nominales (sin un orden específico). Tratar las variables ordinales como nominales o viceversa puede llevar a interpretaciones incorrectas del modelo o predicciones sesgadas.
  • Maldición de dimensionalidad: La codificación en un solo punto, una técnica común para el manejo de datos categóricos, puede provocar un aumento en la dimensionalidad del conjunto de datos, especialmente con una gran cantidad de categorías únicas. Esto puede afectar el rendimiento del modelo y aumentar la complejidad computacional.

Técnicas para codificar variables categóricas

Las técnicas para codificar variables categóricas incluyen:

Codificación de etiquetas: La codificación de etiquetas asigna una etiqueta numérica única a cada categoría en una variable categórica. Es adecuado para variables ordinales donde hay un orden significativo entre las categorías.

Este es un ejemplo de cómo usar scikit-learn de Python:

desde sklearn.preprocesamiento importación LabelEncoder

le = LabelEncoder()

etiquetas_codificadas = le.fit_transform(['cat', 'perro', 'conejo', 'perro'])

Codificación en un solo punto: La codificación en caliente crea columnas binarias para cada categoría en una variable categórica, donde cada columna indica la presencia o ausencia de esa categoría. Es adecuado para variables nominales sin un orden específico entre categorías.

Este es un ejemplo usando pandas:

importar pandas como pd

df = pd.DataFrame({'category': ['A', 'B', 'C', 'A']})

one_hot_encoded = pd.get_dummies(df['category'], prefijo='category')

Codificación simulada: La codificación simulada es similar a la codificación de un solo uso, pero descarta una de las columnas binarias para evitar problemas de multicolinealidad en modelos lineales. Se utiliza comúnmente en modelos de regresión en los que una categoría sirve como categoría de referencia.

Este es un ejemplo usando pandas:

dummy_encoded = pd.get_dummies(df['category'], prefijo='category', drop_first=True)

Pautas para el manejo de datos categóricos

Para manejar correctamente los datos categóricos, debe:

Comprender los tipos de variables: Determine si las variables categóricas son ordinales o nominales para elegir la técnica de codificación adecuada.

Evite la mala interpretación ordinal: Tenga cuidado al usar la codificación de etiquetas para variables nominales, ya que puede introducir una ordinalidad no deseada en los datos.

Lidiar con una alta cardinalidad: Para las variables categóricas con un gran número de categorías únicas, considere técnicas como codificación de frecuencia, codificación de objetivos o técnicas de reducción de dimensionalidad como PCA.

Todo esto se suma al manejo ya mencionado de los valores faltantes y la normalización de los datos numéricos. 

5. Cómo lidiar con datos desequilibrados

Lidiar con los datos desequilibrados es un desafío común en el aprendizaje automático, especialmente en las tareas de clasificación en las que la cantidad de instancias en una clase (clase minoritaria) es significativamente menor que en las otras clases (clases mayoritarias). Los datos desequilibrados pueden tener un profundo impacto en la capacitación y evaluación de modelos, lo que lleva a modelos sesgados que favorecen a la clase mayoritaria y tienen un rendimiento deficiente en las clases minoritarias. 

Estos son algunos puntos clave con respecto a los datos desequilibrados y las técnicas para manejarlos:

Impacto de los datos desequilibrados en el rendimiento del modelo

Los modelos capacitados en datos desequilibrados tienden a priorizar la precisión en la clase mayoritaria mientras se descuida la clase minoritaria. Esto puede llevar a un rendimiento deficiente en las predicciones de clase minoritaria. Además, las métricas como la precisión pueden ser engañosas en los conjuntos de datos desequilibrados, ya que una alta precisión puede ser el resultado de predecir correctamente la clase mayoritaria e ignorar la clase minoritaria. Las métricas de evaluación como precisión, recuperación, F1-score y área bajo la curva ROC (AUC-ROC) son más informativas para conjuntos de datos desequilibrados en comparación con la exactitud sola.

Técnicas para manejar datos desequilibrados

Las técnicas más comunes para manejar datos desequilibrados son el sobremuestreo y el submuestreo. El sobremuestreo implica aumentar la cantidad de instancias en la clase minoritaria para equilibrarla con la clase mayoritaria. El submuestreo implica reducir la cantidad de instancias en la clase mayoritaria para equilibrarla con la clase minoritaria. También puede adoptar un enfoque híbrido al combinar el sobremuestreo y el submuestreo.

También hay una ponderación de clase, en la que ajusta las ponderaciones de clase durante el entrenamiento del modelo para penalizar los errores en la clase minoritaria más que los errores en la clase mayoritaria. Esto solo es útil para algoritmos que admiten ponderación de clase, como regresión logística o máquinas de vectores de soporte.

Pautas para el manejo de datos desequilibrados

Para manejar datos desequilibrados, debe:

Comprender la distribución de datos: Analice la distribución de clases en su conjunto de datos para determinar la gravedad del desequilibrio.

Elija la técnica adecuada: Seleccione la técnica de sobremuestreo, submuestreo o híbrida según el tamaño del conjunto de datos, la relación de desequilibrio y los recursos informáticos.

Evalúe las métricas: Use métricas de evaluación adecuadas como precisión, recuerdo, F1-score o curva AUC-ROC para evaluar el rendimiento del modelo en ambas clases.

Validación cruzada: Aplique técnicas dentro de los pliegues de validación cruzada para evitar la fuga de datos y obtener estimaciones confiables del rendimiento del modelo.

Conclusiones

El preprocesamiento de datos ayuda a garantizar que los modelos de ML estén capacitados en datos de alta calidad y con el formato adecuado, lo que afecta directamente el rendimiento, la precisión y la capacidad de generalización del modelo. Al abordar problemas como valores faltantes, valores atípicos, variables categóricas y desequilibrio de clase, el procesamiento previo de datos permite a los modelos hacer predicciones más informadas y precisas, lo que conduce a una mejor toma de decisiones en aplicaciones del mundo real.

Con un preprocesamiento de datos adecuado, los profesionales de ML pueden liberar todo el potencial de sus datos y crear modelos predictivos más precisos y confiables para varias aplicaciones en todos los dominios.

Sin embargo, para hacerlo realmente en el mundo real, primero debe tener una solución de almacenamiento de datos flexible, como Pure Storage, que lo ayude a acelerar la AI y el aprendizaje automático, y a avanzar con sus iniciativas de AI empresarial.

03/2024
High-Performance AI for State and Local Government
AI has the potential to transform national, state, and local governments. Here’s how AIRI, AI-ready infrastructure by Pure Storage and NVIDIA, can help.
Resumen de la solución
4 páginas
CONTÁCTENOS
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudar.

Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.