avatars.processors.PerturbationProcessor

class avatars.processors.PerturbationProcessor(perturbation_level: Dict[str, float] | None = None, *, seed: int | None = None)

Processor to reduce the difference between originals and avatars.

Specifies the perturbation level of specified variables, 0 means no perturbation. (default: np.ones(df.shape[1]))

Parameters:

perturbation_level – variables and perturbation level

Keyword Arguments:

seed – A seed to initialize the BitGenerator.

Examples

>>> import numpy as np
>>> df = pd.DataFrame(np.zeros(3), columns=["column"], dtype="float")
>>> df
   column
0     0.0
1     0.0
2     0.0
>>> processor = PerturbationProcessor(perturbation_level={"column": 0.3}, seed=1)
>>> processor.preprocess(df)
   column
0     0.0
1     0.0
2     0.0
>>> avatar = pd.DataFrame(np.ones(3), columns=["column"], dtype="float")
>>> avatar
   column
0     1.0
1     1.0
2     1.0

The post process reduces the gap between df and avatar

>>> processor.postprocess(df, avatar)
   column
0     0.3
1     0.3
2     0.3
preprocess(df: DataFrame) DataFrame

Preprocess is doing nothing.

postprocess(source: DataFrame, dest: DataFrame) DataFrame

Force to reduce the difference between originals and avatars.