nannyml.base module

Module containing base classes for drift calculation.

class nannyml.base.Abstract1DResult(results_data: pandas.core.frame.DataFrame, *args, **kwargs)[source]

Bases: nannyml.base.AbstractResult, abc.ABC

Creates a new AbstractCalculatorResult instance.

Parameters

results_data (pd.DataFrame) – The data returned by the Calculator.

property chunk_end_dates: pandas.core.series.Series
property chunk_end_indices: pandas.core.series.Series
property chunk_indices: pandas.core.series.Series
property chunk_keys: pandas.core.series.Series
property chunk_periods: pandas.core.series.Series
property chunk_start_dates: pandas.core.series.Series
property chunk_start_indices: pandas.core.series.Series
class nannyml.base.Abstract2DResult(results_data: pandas.core.frame.DataFrame, *args, **kwargs)[source]

Bases: nannyml.base.AbstractResult, abc.ABC

Creates a new AbstractCalculatorResult instance.

Parameters

results_data (pd.DataFrame) – The data returned by the Calculator.

property chunk_end_dates: pandas.core.series.Series
property chunk_end_indices: pandas.core.series.Series
property chunk_indices: pandas.core.series.Series
property chunk_keys: pandas.core.series.Series
property chunk_periods: pandas.core.series.Series
property chunk_start_dates: pandas.core.series.Series
property chunk_start_indices: pandas.core.series.Series
class nannyml.base.AbstractCalculator(chunk_size: Optional[int] = None, chunk_number: Optional[int] = None, chunk_period: Optional[str] = None, chunker: Optional[nannyml.chunk.Chunker] = None, timestamp_column_name: Optional[str] = None)[source]

Bases: abc.ABC

Base class for drift calculation.

Creates a new instance of an abstract DriftCalculator.

Parameters
  • chunk_size (int) – Splits the data into chunks containing chunks_size observations. Only one of chunk_size, chunk_number or chunk_period should be given.

  • chunk_number (int) – Splits the data into chunk_number pieces. Only one of chunk_size, chunk_number or chunk_period should be given.

  • chunk_period (str) – Splits the data according to the given period. Only one of chunk_size, chunk_number or chunk_period should be given.

  • chunker (Chunker) – The Chunker used to split the data sets into a lists of chunks.

  • timestamp_column_name (str) – The column name of the column containing timestamp information.

calculate(data: pandas.core.frame.DataFrame, *args, **kwargs) nannyml._typing.Result[source]

Performs a calculation on the provided data.

fit(reference_data: pandas.core.frame.DataFrame, *args, **kwargs) typing_extensions.Self[source]

Trains the calculator using reference data.

class nannyml.base.AbstractEstimator(chunk_size: Optional[int] = None, chunk_number: Optional[int] = None, chunk_period: Optional[str] = None, chunker: Optional[nannyml.chunk.Chunker] = None, timestamp_column_name: Optional[str] = None)[source]

Bases: abc.ABC

Base class for drift calculation.

Creates a new instance of an abstract DriftCalculator.

Parameters
  • chunk_size (int) – Splits the data into chunks containing chunks_size observations. Only one of chunk_size, chunk_number or chunk_period should be given.

  • chunk_number (int) – Splits the data into chunk_number pieces. Only one of chunk_size, chunk_number or chunk_period should be given.

  • chunk_period (str) – Splits the data according to the given period. Only one of chunk_size, chunk_number or chunk_period should be given.

  • chunker (Chunker) – The Chunker used to split the data sets into a lists of chunks.

  • timestamp_column_name (str) – The column name of the column containing timestamp information.

estimate(data: pandas.core.frame.DataFrame, *args, **kwargs) nannyml._typing.Result[source]

Performs a calculation on the provided data.

fit(reference_data: pandas.core.frame.DataFrame, *args, **kwargs) typing_extensions.Self[source]

Trains the calculator using reference data.

class nannyml.base.AbstractEstimatorResult(results_data: pandas.core.frame.DataFrame)[source]

Bases: abc.ABC

Contains the results of a drift calculation and provides additional functionality such as plotting.

The result of the calculate() method of a DriftCalculator.

It is an abstract class containing shared properties and methods across implementations. For each DriftCalculator class there will be an associated DriftResult implementation.

Creates a new DriftResult instance.

Parameters

results_data (pd.DataFrame) – The result data of the performed calculation.

DEFAULT_COLUMNS = ['key', 'chunk_index', 'start_index', 'end_index', 'start_date', 'end_date', 'period']
property empty: bool
filter(period: str = 'all', metrics: Optional[Union[str, List[str]]] = None, *args, **kwargs) typing_extensions.Self[source]

Returns result metric data.

plot(*args, **kwargs) plotly.graph_objs._figure.Figure[source]

Plot drift results.

to_df(multilevel: bool = True)[source]

Export results do pandas dataframe.

class nannyml.base.AbstractResult(results_data: pandas.core.frame.DataFrame, *args, **kwargs)[source]

Bases: abc.ABC

Contains the results of a calculation and provides plotting functionality.

The result of the calculate() method of a AbstractCalculator.

It is an abstract class containing shared properties and methods across implementations. For each AbstractCalculator class there will be a corresponding AbstractCalculatorResult implementation.

Creates a new AbstractCalculatorResult instance.

Parameters

results_data (pd.DataFrame) – The data returned by the Calculator.

DEFAULT_COLUMNS = ('key', 'chunk_index', 'start_index', 'end_index', 'start_date', 'end_date', 'period')
alerts(key: nannyml._typing.Key) Optional[pandas.core.series.Series][source]
property empty: bool
filter(period: str = 'all', metrics: Optional[Union[str, List[str]]] = None, *args, **kwargs) typing_extensions.Self[source]

Returns filtered result metric data.

abstract keys() List[nannyml._typing.Key][source]
lower_confidence_bounds(key: nannyml._typing.Key) Optional[pandas.core.series.Series][source]
lower_thresholds(key: nannyml._typing.Key) Optional[pandas.core.series.Series][source]
abstract plot(*args, **kwargs) plotly.graph_objs._figure.Figure[source]

Plots calculation results.

sampling_error(key: nannyml._typing.Key) Optional[pandas.core.series.Series][source]
to_df(multilevel: bool = True) pandas.core.frame.DataFrame[source]

Export results to pandas dataframe.

upper_confidence_bounds(key: nannyml._typing.Key) Optional[pandas.core.series.Series][source]
upper_thresholds(key: nannyml._typing.Key) Optional[pandas.core.series.Series][source]
values(key: nannyml._typing.Key) Optional[pandas.core.series.Series][source]
class nannyml.base.PerColumnResult(results_data: pandas.core.frame.DataFrame, column_names: Union[str, List[str]] = [], *args, **kwargs)[source]

Bases: nannyml.base.Abstract1DResult, abc.ABC

Creates a new AbstractCalculatorResult instance.

Parameters

results_data (pd.DataFrame) – The data returned by the Calculator.

class nannyml.base.PerMetricPerColumnResult(results_data: pandas.core.frame.DataFrame, metrics: list[MetricLike] = [], column_names: List[str] = [], *args, **kwargs)[source]

Bases: nannyml.base.Abstract2DResult, abc.ABC, Generic[nannyml.base.MetricLike]

Creates a new AbstractCalculatorResult instance.

Parameters

results_data (pd.DataFrame) – The data returned by the Calculator.

class nannyml.base.PerMetricResult(results_data: pandas.core.frame.DataFrame, metrics: list[MetricLike] = [], *args, **kwargs)[source]

Bases: nannyml.base.Abstract1DResult, abc.ABC, Generic[nannyml.base.MetricLike]

Creates a new AbstractCalculatorResult instance.

Parameters

results_data (pd.DataFrame) – The data returned by the Calculator.