ezmsg.sigproc.scaler#

Adaptive standard scaling using exponentially weighted moving statistics.

Functions

scaler(time_constant=1.0, axis=None)[source]#

Create a RiverAdaptiveStandardScalerTransformer with the given parameters.

Parameters:
  • time_constant (float)

  • axis (str | None)

Return type:

RiverAdaptiveStandardScalerTransformer

scaler_np(time_constant=1.0, axis=None)[source]#
Parameters:
  • time_constant (float)

  • axis (str | None)

Return type:

AdaptiveStandardScalerTransformer

Classes

class AdaptiveStandardScaler(*args, settings=None, **kwargs)[source]#

Bases: BaseTransformerUnit[AdaptiveStandardScalerSettings, AxisArray, AxisArray, AdaptiveStandardScalerTransformer]

Parameters:

settings (Settings | None)

SETTINGS#

alias of AdaptiveStandardScalerSettings

INPUT_ACCUMULATE = InputStream:unlocated[bool]()#
async on_accumulate(accumulate)[source]#
Parameters:

accumulate (bool)

Return type:

None

class AdaptiveStandardScalerSettings(time_constant: float = 1.0, axis: str | None = None, accumulate: bool = True)[source]#

Bases: EWMASettings

Parameters:
__init__(time_constant=1.0, axis=None, accumulate=True)#
Parameters:
Return type:

None

class AdaptiveStandardScalerState[source]#

Bases: object

samps_ewma: EWMATransformer | None = None#
vars_sq_ewma: EWMATransformer | None = None#
alpha: float | None = None#
class AdaptiveStandardScalerTransformer(*args, **kwargs)[source]#

Bases: BaseStatefulTransformer[AdaptiveStandardScalerSettings, AxisArray, AxisArray, AdaptiveStandardScalerState]

NONRESET_SETTINGS_FIELDS: ClassVar[frozenset[str]] = frozenset({'accumulate'})#
update_settings(new_settings)[source]#

Apply new settings to this processor, requesting a state reset if needed.

Diffs new_settings against the current self.settings. If every changed field is listed in NONRESET_SETTINGS_FIELDS, self.settings is simply rebound and the processor keeps running. Otherwise, _request_reset() is called so the next message triggers a fresh _reset_state (for stateful subclasses). Override for finer-grained control than the class-level allow-list provides.

Parameters:

new_settings (AdaptiveStandardScalerSettings)

Return type:

None

property accumulate: bool#

Whether to accumulate statistics from incoming samples.

class RiverAdaptiveStandardScalerSettings(time_constant: float = 1.0, axis: str | None = None)[source]#

Bases: Settings

Parameters:
  • time_constant (float)

  • axis (str | None)

time_constant: float = 1.0#

Decay constant tau in seconds.

axis: str | None = None#

The name of the axis to accumulate statistics over.

__init__(time_constant=1.0, axis=None)#
Parameters:
  • time_constant (float)

  • axis (str | None)

Return type:

None

class RiverAdaptiveStandardScalerState[source]#

Bases: object

scaler: Any = None#
axis: str | None = None#
axis_idx: int = 0#
class RiverAdaptiveStandardScalerTransformer(*args, **kwargs)[source]#

Bases: BaseStatefulTransformer[RiverAdaptiveStandardScalerSettings, AxisArray, AxisArray, RiverAdaptiveStandardScalerState]

Apply the adaptive standard scaler from river.

This processes data sample-by-sample using River’s online learning implementation. For a vectorized EWMA-based alternative, see AdaptiveStandardScalerTransformer.