sklearn.preprocessing.RobustScaler

class sklearn.preprocessing.RobustScaler

Escala las características utilizando estadísticas que son robustas a los valores atípicos.

Este escalador elimina la mediana y escala los datos de acuerdo con el rango cuantílico (por defecto es IQR: rango intercuartílico). El IQR es el rango entre el primer cuartil (cuantil 25) y el tercer cuartil (cuantil 75).

El centrado y el escalamiento se realizan independientemente en cada característica, calculando los estadísticos pertinentes en las muestras del conjunto de entrenamiento. La mediana y el rango intercuartílico se almacenan para utilizarlos en datos posteriores mediante el método transform.

La estandarización de un conjunto de datos es un requisito común para muchos estimadores de aprendizaje automático. Normalmente, esto se hace eliminando la media y escalando a la varianza unitaria. Sin embargo, los valores atípicos pueden influir a menudo en la media/varianza de la muestra de forma negativa. En estos casos, la mediana y el rango intercuartílico suelen dar mejores resultados.

Nuevo en la versión 0.17.

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

Parámetros
with_centeringbool, default=True

Si es True, centra los datos antes de escalarlos. Esto hará que transform lance una excepción cuando se intente con matrices dispersas, ya que centrarlas implica construir una matriz densa que, en los casos de uso más comunes, es probable que sea demasiado grande para caber en la memoria.

with_scalingbool, default=True

Si es True, escala los datos al rango intercuartílico.

quantile_rangetuple (q_min, q_max), 0.0 < q_min < q_max < 100.0, default=(25.0, 75.0), == (1st quantile, 3rd quantile), == IQR

Rango cuantílico utilizado para calcular scale_.

Nuevo en la versión 0.18.

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.

unit_variancebool, default=False

Si es True, escala los datos para que las características distribuidas normalmente tengan una varianza de 1. En general, si la diferencia entre los valores x de q_max y q_min para una distribución normal estándar es mayor que 1, el conjunto de datos será escalado hacia abajo. Si es menor que 1, el conjunto de datos se escalará hacia arriba.

Nuevo en la versión 0.24.

Atributos
center_arreglo de flotantes

El valor de la mediana de cada característica del conjunto de entrenamiento.

scale_arreglo de flotantes

El rango intercuartílico (escalado) de cada característica en el conjunto de entrenamiento.

Nuevo en la versión 0.17: atributo scale_.

Ver también

robust_scale

Función equivalente sin la API estimator.

PCA

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

Notas

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

https://en.wikipedia.org/wiki/Median https://en.wikipedia.org/wiki/Interquartile_range

Ejemplos

>>> from sklearn.preprocessing import RobustScaler
>>> X = [[ 1., -2.,  2.],
...      [ -2.,  1.,  3.],
...      [ 4.,  1., -2.]]
>>> transformer = RobustScaler().fit(X)
>>> transformer
RobustScaler()
>>> transformer.transform(X)
array([[ 0. , -2. ,  0. ],
       [-1. ,  0. ,  0.4],
       [ 1. ,  0. , -1.6]])

Métodos

fit

Calcula la mediana y los cuantiles que se utilizarán para el escalamiento.

fit_transform

Ajusta los datos y luego los transforma.

get_params

Obtiene los parámetros para este estimador.

inverse_transform

Reduce los datos a la representación original

set_params

Establece los parámetros de este estimador.

transform

Centra y escala los datos.

fit()

Calcula la mediana y los cuantiles que se utilizarán para el escalamiento.

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

Los datos utilizados para calcular la mediana y los cuantiles utilizados para el posterior escalamiento a lo largo del eje de las características.

yNone

Ignorado.

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()

Reduce los datos a la representación original

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

Los datos reescalados para ser transformados de nuevo.

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

Arreglo transformado.

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()

Centra y escala los datos.

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

Los datos utilizados para escalar a lo largo del eje especificado.

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

Arreglo transformado.

Ejemplos utilizando sklearn.preprocessing.RobustScaler