Skip to content

RobustScaler

Scale features using statistics that are robust to outliers.

This Scaler removes the median and scales the data according to the interquantile range.

Parameters

  • with_centering – defaults to True

    Whether to centre the data before scaling.

  • with_scaling – defaults to True

    Whether to scale data to IQR.

  • q_inf – defaults to 0.25

    Desired inferior quantile, must be between 0 and 1.

  • q_sup – defaults to 0.75

    Desired superior quantile, must be between 0 and 1.

Attributes

  • median (dict)

    Mapping between features and instances of stats.Quantile(0.5).

  • iqr (dict)

    Mapping between features and instances of stats.IQR.

Examples

>>> from pprint import pprint
>>> import random
>>> from river import preprocessing

>>> random.seed(42)
>>> X = [{'x': random.uniform(8, 12)} for _ in range(5)]
>>> pprint(X)
[{'x': 10.557707},
    {'x': 8.100043},
    {'x': 9.100117},
    {'x': 8.892842},
    {'x': 10.945884}]

>>> scaler = preprocessing.RobustScaler()

>>> for x in X:
...     print(scaler.learn_one(x).transform_one(x))
{'x': 0.0}
{'x': -0.0}
{'x': -0.6861149618420798}
{'x': -0.2614459368525924}
{'x': 2.3281631460423204}

Methods

learn_one

Update with a set of features x.

A lot of transformers don't actually have to do anything during the learn_one step because they are stateless. For this reason the default behavior of this function is to do nothing. Transformers that however do something during the learn_one can override this method.

Parameters

  • x (dict)

Returns

Transformer: self

transform_one

Transform a set of features x.

Parameters

  • x (dict)

Returns

dict: The transformed values.