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 los datos brutos en un formato adecuado para entrenar los modelos de ML. Es un paso esencial en un pipeline de ML (o IA ), porque afecta directamente al rendimiento y la precisión de los modelos.

El preprocesamiento de datos incluye varias técnicas, como la limpieza de los datos para manejar los valores que faltan, la eliminación de los valores atípicos, el escalamiento de las características, la codificación de las variables categóricas y la división de los datos en conjuntos de entrenamiento y pruebas. Estas técnicas son clave para garantizar que los datos tienen un formato coherente 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 lo que es, sus beneficios, pasos y ejemplos. 

¿Qué es el preprocesamiento de datos? 

El preprocesamiento de datos es la transformación de los datos brutos en un formato más adecuado y significativo para el análisis y la formación en el modelo. El preprocesamiento de los datos desempeña un papel fundamental para mejorar la calidad y la eficiencia de los modelos de ML, al abordar problemas como los valores faltantes, el ruido, las incoherencias y los valores atípicos de los datos.

Ventajas del preprocesamiento de datos para el aprendizaje automático

El preprocesamiento de datos para el aprendizaje automático tiene muchas ventajas y estas ventajas son las mismas que las de los pasos del preprocesamiento de datos. Echemos un vistazo. 

1. Limpieza de datos

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

La limpieza de datos suele incluir:

Gestión de los valores que faltan

La falta de valores es un problema común en los conjuntos de datos del mundo real y puede afectar negativamente al rendimiento de los modelos de ML. Para identificar y tratar los valores que faltan:

  • Utilice estadísticas descriptivas o visualizaciones para identificar columnas/características con valores faltantes. Los indicadores comunes de valores faltantes incluyen valores NaN (no un número) o NULOS.
  • Determine el impacto de los valores que faltan en su análisis o modelo. Tenga en cuenta el porcentaje de valores que faltan en cada columna y su importancia para el conjunto de datos global.
  • Si el porcentaje de valores que faltan 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 funciones numéricas, puede imputar los valores que faltan usando 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 los valores que faltan basándose en otras características.

Gestión de los valores atípicos

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

Para detectar y manejar los valores atípicos:

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

Gestión de duplicados

Los registros duplicados pueden sesgar el análisis y el entrenamiento de los modelos al inflar ciertos patrones o sesgos. 

Para detectar y gestionar duplicados:

  • Utilice funciones como duplicado() en los 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 múltiples entradas, pero tienen identificadores únicos. Asegúrese de conservar identificadores únicos o columnas clave que diferencien entre registros duplicados.

Si sigue estos pasos y utiliza las técnicas adecuadas, podrá limpiar y preprocesar eficazmente sus datos para las tareas de aprendizaje automático, mejorando la calidad y la fiabilidad de las predicciones de sus modelos.

2. Normalización de datos

La normalización es una técnica de preprocesamiento 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ápidamente cuando las características de entrada están a una escala similar y tienen una distribución similar.

Los beneficios de la normalización incluyen:

  • Ayudar a evitar que las características a gran escala dominen a las que tienen una escala más pequeña durante el entrenamiento del modelo. 
  • Los algoritmos como el descenso de gradiente convergen más rápidamente cuando las características se normalizan, lo que permite unos tiempos de entrenamiento más rápidos. 
  • Reducción del impacto de los valores atípicos al poner todos los valores dentro de un rango limitado. Los datos normalizados pueden ser más fáciles de interpretar y comparar entre diferentes características.

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 de 0 a 1.

 

Ejemplo:

Normalización de la puntuación 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:

Directrices para aplicar la normalización

Escalamiento mín-máx: El escalamiento mín-máx es adecuado para algoritmos que requieren que las características de entrada estén dentro de un rango específico, como las redes neuronales y las máquinas vectoriales de soporte. Asegúrese de que los valores atípicos se gestionan adecuadamente, ya que pueden afectar al escalamiento.

Normalización de la puntuación Z: Esto es adecuado para algoritmos como la agrupación de medios k, la regresión lineal y la regresión logística. El resultado es una distribución centrada en torno a 0 con una desviación estándar de 1, lo que la hace ideal para algoritmos que asumen datos normalmente distribuidos.

Datos dispersos: Para conjuntos de datos dispersos (donde la mayoría de los valores son cero), considere el uso de 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 caliente antes de la normalización para garantizar un escalamiento significativo.

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 sobre el rendimiento del modelo son aspectos clave de la aplicación efectiva de la normalización.

3. Escalamiento de características

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

El papel de la escalabilidad de características en el preprocesamiento de datos

Las funciones de escalamiento garantizan que los algoritmos de ML automático traten todas las características por igual, evitando sesgos hacia las características a mayor escala. También mejora las convergencias, ya que muchos algoritmos de optimización (por ejemplo, el descenso de gradiente) convergen más rápidamente cuando las características se escalan, lo que permite un entrenamiento más rápido del modelo. También puede evitar problemas de inestabilidad numérica que pueden 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 del escalamiento mínimo-máximo descrito anteriormente y la normalización de la puntuación Z, también hay:

MaxAbsScaler: Esto escala cada característica por su valor absoluto máximo, por lo que los valores resultantes van de -1 a 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.

Directrices para aplicar el escalamiento de características

Para aplicar el escalamiento de características:

  • Aplique la estandarización (normalización de la puntuación Z) cuando los datos sigan una distribución normal o cuando usen algoritmos como la regresión lineal, la regresión logística o la agrupación de medios k.
  • Aplique la normalización (escalamiento mín.-máx.) cuando necesite que los datos estén dentro de un rango específico, como las redes neuronales o las máquinas vectoriales de soporte.
  • Utilice MaxAbsScaler cuando se enfrente a datos dispersos, como datos de texto o características dispersas de gran dimensión.
  • Utilice RobustScaler cuando se enfrente a conjuntos de datos que contengan valores atípicos o características no distribuidas normalmente.

Tenga en cuenta que las características categóricas pueden necesitar codificación (por ejemplo, codificación en caliente) antes de aplicar el escalamiento de características, sobre todo si son nominales (categorías no ordenadas).

4. Gestión de los datos categóricos

Las variables categóricas representan grupos o categorías y a menudo son de naturaleza no numérica, lo que plantea retos durante el entrenamiento del modelo, lo que incluye:

  • Representación no numérica: Las variables categóricas suelen representarse 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 el entrenamiento 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). El tratamiento de las variables ordinales como nominales o viceversa puede dar lugar a interpretaciones incorrectas del modelo o a predicciones sesgadas.
  • La maldición de la dimensionalidad: La codificación en un solo punto, una técnica común para gestionar los datos categóricos, puede provocar un aumento de la dimensionalidad del conjunto de datos, sobre todo con un gran número de categorías únicas. Esto puede afectar al rendimiento del modelo y aumentar la complejidad computacional.

Técnicas para codificar variables categóricas

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

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

Este es un ejemplo de cómo usar el aprendizaje rápido de Python:

desde sklearn.preprocesamiento importación LabelEncoder

le = Codificador de etiquetas()

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

Codificación en caliente: Una 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 de 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 ficticia: La codificación ficticia es similar a la codificación en caliente, pero deja caer una de las columnas binarias para evitar problemas de multicolinealidad en los 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 de pandas:

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

Directrices para el tratamiento de los datos categóricos

Para manejar correctamente los datos categóricos, debe:

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

Evite las interpretaciones erróneas ordinales: Tenga cuidado al usar la codificación de etiquetas para las variables nominales, ya que puede introducir una ordinalidad no deseada en los datos.

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

Todo esto se suma al tratamiento ya mencionado de los valores que faltan y a la normalización de los datos numéricos. 

5. Cómo hacer frente a los datos desequilibrados

Enfrentarse a los datos desequilibrados es un reto común en el aprendizaje automático, sobre todo en las tareas de clasificación, en las que el número de instancias de una clase (clase de menor importancia) es significativamente menor que en las otras clases (clases de mayor importancia). Los datos desequilibrados pueden tener un profundo impacto en el entrenamiento y la evaluación de los modelos, lo que conduce a unos modelos sesgados que favorecen a la clase mayoritaria y que tienen un mal rendimiento en las clases minoritarias. 

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

Impacto de los datos desequilibrados en el rendimiento del modelo

Los modelos entrenados en datos desequilibrados tienden a priorizar la precisión en la clase mayoritaria y al mismo tiempo descuidan la clase minoritaria. Esto puede dar lugar a un mal rendimiento en las predicciones de clase minoritaria. Además, métricas como la precisión pueden ser engañosas en los conjuntos de datos desequilibrados, ya que una gran precisión puede resultar de predecir correctamente la clase mayoritaria e ignorar la clase minoritaria. Las métricas de evaluación, como la precisión, la F1-score y el área bajo la curva ROC (AUC-ROC), son más informativas para los conjuntos de datos desequilibrados en comparación con la precisión sola.

Técnicas para manejar los datos desequilibrados

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

También hay ponderación de clase, en la que se ajustan las ponderaciones de clase durante el entrenamiento de modelos 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 vectoriales de soporte.

Directrices para el tratamiento de los datos desequilibrados

Para manejar los datos desequilibrados, debe:

Entender la distribución de los datos: Analice la distribución de clase 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 basándose en el tamaño del conjunto de datos, la relación de desequilibrio y los recursos computacionales.

Evalúe las métricas: Utilice 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 fiables del rendimiento del modelo.

Conclusión

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

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

Sin embargo, para lograrlo realmente en el mundo real, primero tiene que tener una solución de almacenamiento de datos flexible, como Pure Storage, que le ayude a acelerar la IA y el aprendizaje automático y a avanzar en sus iniciativas de IA 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
CONTACTAR CON NOSOTROS
¿Preguntas, comentarios?

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

Programe una Demostración

Programe una demostración en vivo y vea personalmente cómo Pure puede ayudarle a convertir sus datos en unos resultados potentes. 

Llámenos al: +34 51 889 8963

Medios de comunicaciónpr@purestorage.com

 

Castellana 81

28046 Madrid

Oficinas Pure: 1415 y 1417 (planta 14)

info@purestorage.com

CERRAR
Your Browser Is No Longer Supported!

Older browsers often represent security risks. In order to deliver the best possible experience when using our site, please update to any of these latest browsers.