MaxAbsScaler¶
Scales the data to a [-1, 1] range based on absolute maximum.
Under the hood a running absolute max is maintained. This scaler is meant for data that is already centered at zero or sparse data. It does not shift/center the data, and thus does not destroy any sparsity.
Attributes¶
-
abs_max (dict)
Mapping between features and instances of
stats.AbsMax
.
Examples¶
import random
from river import preprocessing
random.seed(42)
X = [{'x': random.uniform(8, 12)} for _ in range(5)]
for x in X:
print(x)
{'x': 10.557707}
{'x': 8.100043}
{'x': 9.100117}
{'x': 8.892842}
{'x': 10.945884}
scaler = preprocessing.MaxAbsScaler()
for x in X:
print(scaler.learn_one(x).transform_one(x))
{'x': 1.0}
{'x': 0.767216}
{'x': 0.861940}
{'x': 0.842308}
{'x': 1.0}
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.