GeometricMovingAverage#

class frouros.detectors.concept_drift.streaming.change_detection.GeometricMovingAverage(config: GeometricMovingAverageConfig | None = None, callbacks: BaseCallbackStreaming | list[BaseCallbackStreaming] | None = None)#

Geometric Moving Average [robertst1959control] detector.

Parameters:
  • config (Optional[GeometricMovingAverageConfig]) – configuration object of the detector, defaults to None. If None, the default configuration of GeometricMovingAverageConfig is used.

  • callbacks (Optional[Union[BaseCallbackStreaming, list[BaseCallbackStreaming]]]) – callbacks, defaults to None

References:

[robertst1959control]

Roberts, S. W. “Control Chart Tests Based on Geometric Moving Averages.” Technometrics, vol. 1, no. 3, 1959, pp. 239–50. JSTOR, https://doi.org/10.2307/1266443.

Example:

>>> from frouros.detectors.concept_drift import GeometricMovingAverage, GeometricMovingAverageConfig
>>> import numpy as np
>>> np.random.seed(seed=31)
>>> dist_a = np.random.normal(loc=0.2, scale=0.01, size=1000)
>>> dist_b = np.random.normal(loc=0.8, scale=0.04, size=1000)
>>> stream = np.concatenate((dist_a, dist_b))
>>> detector = GeometricMovingAverage(config=GeometricMovingAverageConfig(lambda_=0.3))
>>> for i, value in enumerate(stream):
...     _ = detector.update(value=value)
...     if detector.drift:
...         print(f"Change detected at step {i}")
...         break
Change detected at step 1071
config_type#

alias of GeometricMovingAverageConfig

property additional_vars: dict[str, Any] | None#

Additional variables property.

Returns:

additional variables

Return type:

Optional[dict[str, Any]]

property callbacks: list[BaseCallback] | None#

Callbacks property.

Returns:

callbacks

Return type:

Optional[list[BaseCallback]]

property config: BaseConceptDriftConfig#

Config property.

Returns:

configuration parameters of the estimator

Return type:

BaseConceptDriftConfig

property mean_error_rate: Mean#

Mean error rate property.

Returns:

mean error rate to use

Return type:

Mean

property num_instances: int#

Number of instances counter property.

Returns:

Number of instances counter value

Return type:

int

reset() None#

Reset method.

property status: dict[str, bool]#

Status property.

Returns:

status dict

Return type:

dict[str, bool]

property sum_: float#

Sum count property.

Returns:

sum count value

Return type:

float

update(value: int | float, **kwargs: Any) dict[str, Any]#

Update method.

Parameters:
  • value (Union[int, float]) – value to update detector

  • kwargs (Any) – additional keyword arguments

Returns:

callbacks logs

Return type:

dict[str, Any]]