sklearn.preprocessing.StandardScaler

class sklearn.preprocessing.StandardScaler

Se estandarizan las características eliminando la media y escalando a la varianza unitaria

La puntuación estándar de una muestra x se calcula como:

z = (x - u) / s

donde u es la media de las muestras de entrenamiento o cero si with_mean=False, y s es la desviación estándar de las muestras de entrenamiento o uno si with_std=False.

El centrado y el escalado se realizan de forma independiente en cada característica, calculando los estadísticos pertinentes en las muestras del conjunto de entrenamiento. La media y la desviación estándar se almacenan para ser utilizadas en datos posteriores utilizando transform.

La estandarización de un conjunto de datos es un requisito común para muchos estimadores de aprendizaje automático: podrían comportarse mal si las características individuales no se parecen más o menos a los datos distribuidos normalmente estándar (por ejemplo, gaussianos con media 0 y varianza unitaria).

Por ejemplo, muchos elementos utilizados en la función objetivo de un algoritmo de aprendizaje (como el kernel RBF de Máquinas de Vectores de Soporte o los regularizadores L1 y L2 de modelos lineales) asumen que todas las características están centradas en torno a cero y tienen varianza del mismo orden. Si una característica tiene varianza de un orden de magnitud mayor que otras, podría dominar la función objetivo y hacer que el estimador no pueda aprender de otras características correctamente como se espera.

Este escalador también puede aplicarse a matrices CSR o CSC dispersas pasando with_mean=False para evitar romper la estructura de dispersión de los datos.

Más información en el Manual de usuario.

Parámetros
copybool, default=True

Si es False, intenta evitar una copia y, en su lugar, realiza un escalamiento in place. No se garantiza que esto funcione siempre in place; por ejemplo, si los datos no son un arreglo de NumPy o una matriz CSR scipy.sparse, es posible que se devuelva una copia.

with_meanbool, default=True

Si es True, centra los datos antes de escalarlos. Esto no funciona (y lanzará una excepción) cuando se intenta con matrices dispersas, porque centrarlas implica construir una matriz densa que, en casos de uso común, es probable que sea demasiado grande para caber en la memoria.

with_stdbool, default=True

Si es True, escala los datos a la varianza unitaria (o, de manera equivalente, a la desviación estándar unitaria).

Atributos
scale_ndarray de forma (n_features,) o None

Por característica de escala relativa de los datos para lograr una media cero y una varianza unitaria. Generalmente esto se calcula usando np.sqrt(var_). Si una varianza es cero, no podemos lograr una varianza unitaria, y los datos se dejan como están, dando un factor de escala de 1. scale_ es igual a None cuando with_std=False.

Nuevo en la versión 0.17: scale_

mean_ndarray de forma (n_features,) o None

El valor medio de cada característica en el conjunto de entrenamiento. Es igual a None cuando with_mean=False.

var_ndarray de forma (n_features,) o None

La varianza de cada característica en el conjunto de entrenamiento. Se utiliza para calcular scale_. Igual a None cuando with_std=False.

n_samples_seen_int o ndarray de forma (n_features,)

El número de muestras procesadas por el estimador para cada característica. Si no hay muestras faltantes, el n_samples_seen será un entero, de lo contrario será un arreglo de tipo int. Si se utiliza sample_weights será un float (si no hay datos faltantes) o un arreglo de tipo float que sume las ponderaciones vistas hasta el momento. Se restablecerá en las nuevas llamadas a fit, pero se incrementa a través de las llamadas a partial_fit.

Ver también

scale

Función equivalente sin la API estimator.

PCA

Elimina además la correlación lineal entre características con “whiten=True”.

Notas

Los NaN se tratan como valores faltantes: no se tienen en cuenta en el ajuste y se mantienen en la transformación.

Utilizamos un estimador sesgado para la desviación estándar, equivalente a numpy.std(x, ddof=0). Ten en cuenta que la elección de ddof es poco probable que afecte al rendimiento del modelo.

Para una comparación de los diferentes escaladores, transformadores y normalizadores, ver examples/preprocessing/plot_all_scaling.py.

Ejemplos

>>> from sklearn.preprocessing import StandardScaler
>>> data = [[0, 0], [0, 0], [1, 1], [1, 1]]
>>> scaler = StandardScaler()
>>> print(scaler.fit(data))
StandardScaler()
>>> print(scaler.mean_)
[0.5 0.5]
>>> print(scaler.transform(data))
[[-1. -1.]
 [-1. -1.]
 [ 1.  1.]
 [ 1.  1.]]
>>> print(scaler.transform([[2, 2]]))
[[3. 3.]]

Métodos

fit

Calcula la media y la desviación estándar (std) que se utilizarán para el escalado posterior.

fit_transform

Ajusta los datos y luego los transforma.

get_params

Obtiene los parámetros para este estimador.

inverse_transform

Escala los datos a la representación original

partial_fit

Cálcula en línea la media y la std en X para su posterior escalamiento.

set_params

Establece los parámetros de este estimador.

transform

Realiza la estandarización mediante el centrado y el escalado

fit()

Calcula la media y la desviación estándar (std) que se utilizarán para el escalado posterior.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Los datos utilizados para calcular la media y la desviación estándar utilizadas para el posterior escalamiento a lo largo del eje de las características.

yNone

Ignorado.

sample_weightarray-like de forma (n_samples,), default=None

Ponderaciones individuales para cada muestra.

Nuevo en la versión 0.24: el parámetro sample_weight tiene soporte para StandardScaler.

Devuelve
selfobject

Escalador ajustado.

fit_transform()

Ajusta los datos y luego los transforma.

Ajusta el transformador a X e y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

inverse_transform()

Escala los datos a la representación original

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Los datos utilizados para escalar a lo largo del eje de las características.

copybool, default=None

Copia la entrada X o no.

Devuelve
X_tr{ndarray, sparse matrix} de forma (n_samples, n_features)

Arreglo transformado.

partial_fit()

Cálcula en línea la media y la std en X para su posterior escalamiento.

Todo X se procesa como un único lote. Esto está pensado para casos en los que fit no es factible debido a un número muy grande de n_samples o porque X se lee de un flujo continuo.

El algoritmo para la media y la std incrementales se da en la ecuación 1.5a,b en Chan, Tony F., Gene H. Golub, y Randall J. LeVeque. «Algorithms for computing the sample variance: Analysis and recommendations.» The American Statistician 37.3 (1983): 242-247:

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Los datos utilizados para calcular la media y la desviación estándar utilizadas para el posterior escalamiento a lo largo del eje de las características.

yNone

Ignorado.

sample_weightarray-like de forma (n_samples,), default=None

Ponderaciones individuales para cada muestra.

Nuevo en la versión 0.24: el parámetro sample_weight tiene soporte para StandardScaler.

Devuelve
selfobject

Escalador ajustado.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto con estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia de estimador

Instancia del estimador.

transform()

Realiza la estandarización mediante el centrado y el escalado

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Los datos utilizados para escalar a lo largo del eje de las características.

copybool, default=None

Copia la entrada X o no.

Devuelve
X_tr{ndarray, sparse matrix} de forma (n_samples, n_features)

Arreglo transformado.

Ejemplos utilizando sklearn.preprocessing.StandardScaler