aggregation_metric

Base classes for reducers over single-run metric results.

class pysatl_cpd.analysis.metrics.multiple_run.aggregation_metric.AggregationMetric[source]

Bases: IMultipleRunMetric, Generic

Evaluate a single-run metric on each run and aggregate the results.

Notes

The generic parameters identify the detection trace type, labeled data provider type, per-run metric result type, and aggregated result type.

abstract property base_metric: ISingleRunMetric

Underlying per-run metric.

Return type:

ISingleRunMetric

abstractmethod aggregate(results)[source]

Aggregate a sequence of single-run metric results into a final value.

Parameters:

results (Sequence[TypeVar(ResultInT)]) – Per-run metric results.

Return type:

TypeVar(ResultOutT)

evaluate(runs)[source]

Evaluate the source metric on each run and aggregate.

Parameters:

runs (Sequence[SingleRun[TypeVar(TraceT, bound= DetectionTrace), TypeVar(ProviderT, bound= LabeledData[Any, Any])]]) – Sequence of single runs to evaluate.

Return type:

TypeVar(ResultOutT)

class pysatl_cpd.analysis.metrics.multiple_run.aggregation_metric.TotalSum[source]

Bases: AggregationMetric[TraceT, ProviderT, NumberT | Sequence, NumberT], Generic

Sum flat or nested per-run numeric results into one total.

aggregate(results)[source]
Overloads:
  • self, results (Sequence[NumberT]) → NumberT

  • self, results (Sequence[Sequence[NumberT]]) → NumberT

  • self, results (Sequence[NumberT | Sequence[NumberT]]) → NumberT

Parameters:

results (Sequence[NumberT | Sequence])

Return type:

NumberT

Sum all numeric results across runs.

Parameters:

results (Sequence[Union[TypeVar(NumberT, bound= double | int | float), Sequence[TypeVar(NumberT, bound= double | int | float)]]]) – Per-run metric results, possibly nested.

Returns:

The total sum.

Return type:

NumberT

class pysatl_cpd.analysis.metrics.multiple_run.aggregation_metric.TotalMean[source]

Bases: AggregationMetric[TraceT, ProviderT, NumberT | Sequence, float], Generic

Take the global mean of flat or nested per-run numeric results.

aggregate(results)[source]
Overloads:
  • self, results (Sequence[NumberT]) → float

  • self, results (Sequence[Sequence[NumberT]]) → float

  • self, results (Sequence[NumberT | Sequence[NumberT]]) → float

Parameters:

results (Sequence[NumberT | Sequence])

Return type:

float

Compute the mean of all numeric results across runs.

Parameters:

results (Sequence[Union[TypeVar(NumberT, bound= double | int | float), Sequence[TypeVar(NumberT, bound= double | int | float)]]]) – Per-run metric results, possibly nested.

Returns:

The arithmetic mean.

Return type:

float

Raises:

ValueError – If the results sequence is empty.

class pysatl_cpd.analysis.metrics.multiple_run.aggregation_metric.TotalMedian[source]

Bases: AggregationMetric[TraceT, ProviderT, NumberT | Sequence, float], Generic

Take the global median of flat or nested per-run numeric results.

aggregate(results)[source]
Overloads:
  • self, results (Sequence[NumberT]) → float

  • self, results (Sequence[Sequence[NumberT]]) → float

  • self, results (Sequence[NumberT | Sequence[NumberT]]) → float

Parameters:

results (Sequence[NumberT | Sequence])

Return type:

float

Compute the median of all numeric results across runs.

Parameters:

results (Sequence[Union[TypeVar(NumberT, bound= double | int | float), Sequence[TypeVar(NumberT, bound= double | int | float)]]]) – Per-run metric results, possibly nested.

Returns:

The median value.

Return type:

float

Raises:

ValueError – If the results sequence is empty.