Normalización de datos

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

Vuelve a escalar datos numéricos para restringir los valores del conjunto de datos a un intervalo estándar

Categoría: Transformación y reducción de datos

Nota

Se aplica a: solo Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo Normalizar datos en Machine Learning Studio (clásico) para transformar un conjunto de datos mediante la normalización.

La normalización es una técnica que se aplica a menudo como parte de la preparación de datos para el aprendizaje automático. El objetivo de la normalización es cambiar los valores de las columnas numéricas del conjunto de datos para usar una escala común, sin distorsionar las diferencias en los intervalos de valores ni perder información. La normalización también es necesaria para que algunos algoritmos modelen los datos correctamente.

Por ejemplo, suponga que el conjunto de datos de entrada contiene una columna con valores comprendidos entre 0 y 1, y otra columna con valores comprendidos entre 10 000 y 100 000. La enorme diferencia en el escala de los números podría generar problemas al intentar combinar los valores como características durante el modelado.

La normalización evita estos problemas mediante la creación de nuevos valores que mantienen la distribución general y las relaciones en los datos de origen, a la vez que se conservan los valores dentro de una escala que se aplica en todas las columnas numéricas que se usan en el modelo.

Este módulo ofrece varias opciones para transformar los datos numéricos:

  • Puede cambiar todos los valores a la escala de 0 a 1, o transformar los valores para representarlos como percentiles en lugar de como valores absolutos.
  • Puede aplicar la normalización a una sola columna o a varias columnas en el mismo conjunto de datos.
  • Si tiene que repetir el experimento, o aplica los mismos pasos de normalización a otros datos, puede guardar los pasos como transformación de normalización y aplicarla a otros conjuntos de datos que tengan el mismo esquema.

Advertencia

Algunos algoritmos requieren que se normalicen los datos antes de entrenar un modelo. Otros algoritmos realizan su propio escalado o normalización de datos. Por lo tanto, al elegir un algoritmo de aprendizaje automático para usar en la creación de un modelo predictivo, asegúrese de revisar los requisitos de datos del algoritmo antes de aplicar la normalización a los datos de entrenamiento.

Configuración de normalización de datos

Con este módulo, puede aplicar solo un método de normalización a la vez. Por lo tanto, se aplica el mismo método de normalización a todas las columnas que seleccione. Para usar los métodos de normalización diferentes, use una segunda instancia de Normalize Data.

  1. Agregue el módulo Normalize Data al experimento. Puede encontrar el módulo en Machine Learning Studio (clásico), en Transformación de datos, en la categoría Escala y reducción.

  2. Conecte un conjunto de datos que contenga al menos una columna de todos los números.

  3. Use el selector de columnas para elegir las columnas numéricas que quiere normalizar. Si no elige columnas individuales, de forma predeterminada se incluyen en la entrada todas las columnas de tipo numérico y se aplica el mismo proceso de normalización a todas las columnas seleccionadas.

    Esto puede conducir a resultados extraños si incluye columnas numéricas que no deberían normalizarse. Compruebe siempre las columnas con cuidado.

    Si no se detectan columnas numéricas, compruebe los metadatos de columna para verificar que el tipo de datos de la columna sea un tipo numérico admitido.

    Sugerencia

    Para asegurarse de que las columnas de un tipo específico se proporcionen como entrada, pruebe a usar el módulo Select Columns in Dataset (Seleccionar columnas en conjunto de datos) antes de Normalize Data.

  4. Use 0 para las columnas de constantes cuando esté activada: seleccione esta opción cuando cualquier columna numérica contenga un único valor invariable. Esto garantiza que estas columnas no se usen en las operaciones de normalización.

  5. En la lista desplegable Método de transformación, elija una sola función matemática para aplicar a todas las columnas seleccionadas.

    • Zscore: Convierte todos los valores en puntuación z.

      Los valores de la columna se transforman mediante la fórmula siguiente:

      normalization using z-scores

      La media y la desviación estándar se calculan por separado para cada columna. Se usa la desviación estándar poblacional.

    • MinMax: el normalizador mínimo-máximo vuelve a escalar linealmente todas las características del intervalo [0,1].

      Para cambiar la escala del intervalo [0,1] se cambian los valores de cada característica para que el valor mínimo sea 0, y, luego, se divide por el nuevo valor máximo (que es la diferencia entre los valores máximos y mínimos originales).

      Los valores de la columna se transforman mediante la fórmula siguiente:

      normalization using the min-max function

    • Logística: Los valores de la columna se transforman mediante la fórmula siguiente:

      formula for normalization by logistic function

    • LogNormal: Esta opción convierte todos los valores en una escala logarítmica normal.

      Los valores de la columna se transforman mediante la fórmula siguiente:

      formula log-normal distribution

      Aquí μ y σ son los parámetros de la distribución, calculados empíricamente a partir de los datos como las estimaciones de verosimilitud máxima para cada columna por separado.

    • TanH: Todos los valores se convierten en una tangente hiperbólica.

      Los valores de la columna se transforman mediante la fórmula siguiente:

      normalization using the tanh function

  6. Ejecute el experimento, o haga doble clic en el módulo Normalize Data y seleccione Ejecutar seleccionados.

Results

El módulo Normalize Data genera dos salidas:

  • Para ver los valores transformados, haga clic con el botón derecho en el módulo, seleccione Transformed dataset (Conjunto de datos transformado) y haga clic en Visualizar.

    De forma predeterminada, los valores se transforman en su lugar. Si desea comparar los valores transformados con los valores originales, use el módulo Agregar columnas para volver a ensamblar los conjuntos de datos y ver las columnas en paralelo.

  • Para guardar la transformación para que pueda aplicar el mismo método de normalización para otro conjunto de datos similar, haga clic con el botón derecho en el módulo, seleccione Transformation function (Función de transformación) y haga clic en Save as Transform (Guardar como transformación).

    A continuación, puede cargar las transformaciones guardadas desde el grupo Transformaciones del panel de navegación izquierdo y aplicarlas a un conjunto de datos con el mismo esquema con Aplicar transformación.

Ejemplos

Para obtener ejemplos de cómo se usa la normalización en el aprendizaje automático, consulte la Galería de Azure AI:

  • Predicción del riesgo de crédito: en este ejemplo, la normalización se aplica a todos los datos numéricos excepto a la columna de clase, la puntuación de riesgo de crédito. En este ejemplo se usa la transformación tanh , que convierte todas las características numéricas en valores dentro de un intervalo de 0 a 1.

Notas técnicas

Este módulo solo admite los métodos de normalización estándar enumerados en la sección Procedimiento y no admite la normalización de matrices ni otras transformaciones complejas.

Si necesita crear un método de normalización personalizado, puede usar los módulos Execute R Script (Ejecutar script R) o Execute Python Script (Ejecutar script de Python ) para calcular y aplicar la transformación.

Algoritmos que aplican normalización

Normalizar las características para que usen una escala común es un requisito general para muchos algoritmos de aprendizaje automático.

  • En los algoritmos de clasificación lineal, las instancias se ven como vectores en espacio multidimensional. Dado que el intervalo de valores de datos sin procesar varía mucho, algunas funciones objetivas no funcionan correctamente sin la normalización. Por ejemplo, si una de las características tiene un intervalo amplio de valores, las distancias entre los puntos se rigen por esta característica en particular.

    Por lo tanto, se deben normalizar las características numéricas para que cada característica contribuya de manera aproximadamente proporcional a la distancia final. Esto puede ofrecer grandes ventajas de velocidad y precisión.

  • Al usar los algoritmos Regresión logística y Perceptrón promedio , de forma predeterminada, las características se normalizan antes del entrenamiento.

Más información y recursos

Si no está seguro de qué tipo de normalización se adapta a los datos, consulte estos recursos:

  • Módulos recomendados para mis datos: este módulo personalizado por un miembro del equipo de Azure ML evalúa el conjunto de datos y recomienda los pasos para limpiar y escalar datos.

  • Escalado de características: en Este artículo de Wikipedia se explican los métodos básicos que se usan para normalizar los datos numéricos.

  • La preparación de datos para la minería de datos cubre muchos pasos de preparación de datos en profundidad. Consulte el capítulo 7 para obtener una explicación de la normalización de datos.

Entradas esperadas

Nombre Tipo Descripción
Dataset Tabla de datos Conjunto de datos de entrada

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Método de transformación cualquiera TransformationMethods ZScore Elegir el método matemático usado para escalar
Columnas para transformar cualquiera ColumnSelection NumericAll Seleccionar todas las columnas a la que se debe aplicar la transformación seleccionada

Salidas

Nombre Tipo Descripción
Conjunto de datos transformado Tabla de datos Conjunto de datos transformado
Función de transformación Interfaz ITransform Definición de la función de transformación, que se puede aplicar a otros conjuntos de datos

Excepciones

Excepción Descripción
Error 0001 Se produce una excepción si no se encontraron una o más columnas especificadas del conjunto de datos.
Error 0003 Se produce una excepción si una o varias de las entradas son NULL o están vacías.
Error 0017 Se produce una excepción si una o varias columnas especificadas tienen un tipo no compatible con el módulo actual.
Error 0020 Se produce una excepción si en algunos de los conjuntos de datos que se pasan al módulo el número de columnas es demasiado pequeño.
Error 0021 Se produce una excepción si el número de filas en algunos de los conjuntos de datos que se pasan al módulo es demasiado pequeño.

Para obtener una lista de errores específicos de los módulos de Studio (clásico), consulte Machine Learning códigos de error.

Para obtener una lista de excepciones de API, consulte Machine Learning códigos de error de la API REST.

Consulte también

Escalar y reducir