En este artículo, cubriremos cómo normalizar una array NumPy para que los valores oscilen exactamente entre 0 y 1.
La normalización se realiza en los datos para transformar los datos para que aparezcan en la misma escala en todos los registros. Después de la normalización, el valor mínimo en los datos se normalizará a 0 y el valor máximo se normalizará a 1. Todos los demás valores variarán de 0 a 1. La normalización es necesaria para los datos representados en diferentes escalas. Porque los modelos de aprendizaje automático pueden verse demasiado influenciados por el parámetro con valores más altos. Hay diferentes formas de normalizar los datos. Uno de los procedimientos estándar es el enfoque de valor mínimo-máximo.
Normalización usando valores Min Max
Aquí, la normalización de los datos se puede realizar restando los datos con el valor mínimo en los datos y dividiendo el resultado por la diferencia entre el valor máximo y el valor mínimo en los datos dados. profundizaremos más en el código para una mejor comprensión.
Ejemplo
El valor máximo y el valor mínimo en una array NumPy se pueden determinar mediante min() y max(). La fórmula para la normalización usando valores min-max se da a continuación
Datos normalizados= (datos-min(datos))/(max(datos)-min(datos))
Python3
# import necessary packages import numpy as np # create an array data = np.array([[10, 20], [30, 40], [5, 15], [0, 10]]) normalizedData = (data-np.min(data))/(np.max(data)-np.min(data)) # normalized data using min max value print(normalizedData)
Producción
[[0.25 0.5 ] [0.75 1. ] [0.125 0.375] [0. 0.25 ]]
También hay otras formas de normalizar los datos. Están:
- Normalización usando sklearn MinMaxScaler
- Normalización usando numpy.linalg.norm
- Normalización usando fórmula matemática
Normalización usando sklearn MinMaxScaler
En Python, el módulo sklearn proporciona un objeto llamado MinMaxScaler que normaliza los datos proporcionados utilizando valores mínimos y máximos. Aquí el método fit_tranform escala los datos entre 0 y 1 usando el objeto MinMaxScaler.
Python3
# import necessary packages import numpy as np from sklearn import preprocessing as p # create an array data = np.array([[10, 20], [30, 40], [5, 15], [0, 10]]) min_max_scaler = p.MinMaxScaler() normalizedData = min_max_scaler.fit_transform(data) # normalized data using MinMaxScaler print(normalizedData)
Producción
[[0.33333333 0.33333333] [1. 1. ] [0.16666667 0.16666667] [0. 0. ]]
Normalización usando numpy.linalg .norm
La biblioteca NumPy proporciona un método llamado norma que devuelve una de ocho normas de array diferentes o una de un número infinito de normas de vector. Depende completamente del parámetro ord en el método de norma. Por defecto, la norma considera la norma de Frobenius. Los datos aquí se normalizan dividiendo los datos proporcionados con la norma devuelta por el método de norma.
Python3
# import necessary packages import numpy as np # create an array data = np.array([[10, 20], [30, 40], [5, 15], [0, 10]]) normalizedData = data/np.linalg.norm(data) # normalized data using linalg.norm print(normalizedData)
Producción
[[0.17277369 0.34554737] [0.51832106 0.69109474] [0.08638684 0.25916053] [0. 0.17277369]]
Normalización usando fórmula matemática
Aquí los datos se normalizan sumergiendo los datos con la raíz cuadrada de la suma de los cuadrados de los datos dados. Para implementar esto, se requiere una biblioteca NumPy simple que proporcione métodos de suma y raíz cuadrada que ayuden a reducir las líneas de código. A continuación se muestra el código implementado para normalizar los datos utilizando la suma de cuadrados de datos
Python3
# import necessary packages import numpy as np # create an array data = np.array([[10, 20], [30, 40], [5, 15], [0, 10]]) normalizedData = data/np.sqrt(np.sum(data**2)) # normalized data using sum of squares print(normalizedData)
Producción
[[0.17277369 0.34554737] [0.51832106 0.69109474] [0.08638684 0.25916053] [0. 0.17277369]]
Publicación traducida automáticamente
Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA