# `drift`

Simulate concept drift in datastreams.

## Classes

| [`AbruptDrift`](capymoa.stream.drift.AbruptDrift.md#capymoa.stream.drift.AbruptDrift)                                 | An instantaneous change of concept at `position`.                               |
|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| [`Concept`](capymoa.stream.drift.Concept.md#capymoa.stream.drift.Concept)                                         | A concept and the number of instances it contributes to the stream.             |
| [`Drift`](capymoa.stream.drift.Drift.md#capymoa.stream.drift.Drift)                                             | Represents a concept drift in a DriftStream.                                    |
| [`DriftStream`](capymoa.stream.drift.DriftStream.md#capymoa.stream.drift.DriftStream)                                 | A stream composed of concepts separated by drifts.                              |
| [`GradualDrift`](capymoa.stream.drift.GradualDrift.md#capymoa.stream.drift.GradualDrift)                               | A drift where two concepts overlap over a window of instances.                  |
| [`IndexedCycle`](capymoa.stream.drift.IndexedCycle.md#capymoa.stream.drift.IndexedCycle)                               | An iterator that cycles through an iterable, returning tuples of (index, item). |
| [`RecurrentConceptDriftStream`](capymoa.stream.drift.RecurrentConceptDriftStream.md#capymoa.stream.drift.RecurrentConceptDriftStream) |                                                                                 |

## Module Attributes

| [`TRANSITION_FUNCTIONS`](#capymoa.stream.drift.TRANSITION_FUNCTIONS)   | Named transition ramps.   |
|-------------------------------------------------------------------------|---------------------------|

### capymoa.stream.drift.TRANSITION_FUNCTIONS *= {'linear': <function <lambda>>, 'sigmoid': <function <lambda>>}*

Named transition ramps. Each maps progress through the drift window,
`0.0` at the start and `1.0` at the end, to the probability that an
instance is drawn from the new concept.

## Functions

| [`get_class_and_init_attributes_with_values`](#capymoa.stream.drift.get_class_and_init_attributes_with_values)   |    |
|----------------------------------------------------------------------------------------------|----|
| [`get_recurrent_concept_drift_stream_list`](#capymoa.stream.drift.get_recurrent_concept_drift_stream_list)     |    |

### capymoa.stream.drift.get_class_and_init_attributes_with_values(obj)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/stream/drift.py#L1058)

### capymoa.stream.drift.get_recurrent_concept_drift_stream_list(concept_list: [list](https://docs.python.org/3/builtins/stdtypes.html#list), max_recurrences_per_concept: [int](https://docs.python.org/3/builtins/functions.html#int) = 3, transition_type_template: [Drift](capymoa.stream.drift.Drift.md#capymoa.stream.drift.Drift) | [None](https://docs.python.org/3/builtins/constants.html#None) = None, concept_name_list: [list](https://docs.python.org/3/builtins/stdtypes.html#list) | [None](https://docs.python.org/3/builtins/constants.html#None) = None) → [list](https://docs.python.org/3/builtins/stdtypes.html#list)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/stream/drift.py#L1073)
