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 siwith_mean=False
, ys
es la desviación estándar de las muestras de entrenamiento o uno siwith_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 aNone
cuandowith_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
cuandowith_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 aNone
cuandowith_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 utilizasample_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 apartial_fit
.
Ver también
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 deddof
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
Calcula la media y la desviación estándar (std) que se utilizarán para el escalado posterior.
Ajusta los datos y luego los transforma.
Obtiene los parámetros para este estimador.
Escala los datos a la representación original
Cálcula en línea la media y la std en X para su posterior escalamiento.
Establece los parámetros de este estimador.
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
ey
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- 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 den_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.