column_noiser#

Defines the ColumnNoiser.

class ColumnNoiser(noisers: dict[str, simba_ml.simulation.noisers.noiser.Noiser])#

Bases: Noiser

The ColumnNoiser applies a different Noiser to every column of the signal.

Columns without a provided Noiser will be skipped.

noisers#

A dictionary containing the column names as keys and the corresponding Noiser as values.

Example

>>> import pandas as pd
>>> from simba_ml.simulation import distributions
>>> from simba_ml.simulation import noisers
>>> clean_signal = pd.DataFrame.from_dict({
...     "A": [75, 52, 68],
...     "B": [33, 96, 64],
...     "C": [57, 5, 13],
...     "D": [65, 4, 51],})
>>> clean_signal
    A   B   C   D
0  75  33  57  65
1  52  96   5   4
2  68  64  13  51
>>> col_noisers = {
...     "A": noisers.AdditiveNoiser(distributions.Constant(2)),
...     "B": noisers.MultiplicativeNoiser(distributions.Constant(2)),
...     "D": noisers.NoNoiser()}
>>> noiser = noisers.ColumnNoiser(col_noisers)
>>> noiser.noisify(clean_signal)
    A    B   C   D
0  77   66  57  65
1  54  192   5   4
2  70  128  13  51

Inits ColumnNoiser with the provided params.

Parameters:

noisers – A dictionary containing the column names as keys and the corresponding Noiser as values.

noisify(signal: DataFrame) DataFrame#

Applies noise to each column individually.

Parameters:

signal – The input data.

Returns:

pd.DataFrame