aggregators

This module gathers MAVT aggregators.

class ChoquetIntegral(capacity, in_scales=None, out_scale=None)

Bases: Aggregator[QuantitativeScale, QuantitativeScale]

This class represents a Choquet integral aggregator.

Parameters
  • capacity (ISetFunction) – capacity used for aggregation (either in regular or Möbius representation)

  • in_scales (Union[QuantitativeScale, Mapping[Any, QuantitativeScale], None]) – input scales (inferred from input if not provided)

  • out_scale (Union[QuantitativeScale, None]) – output scales (inferred from output if not provided)

Note

Implementation is based on [GKM08].

__call__(data, *args, **kwargs)

Apply aggregation method to input data.

Parameters

data (Union[PartialValueMatrix[I_S], IValueMatrix[I_S], DataFrame, Series, Values[I_S]]) –

Returns

aggregation result

Return type

Union[Any, Series, CommensurableValues[O_S], AdjacencyValueMatrix[O_S]]

Note

aggregation is applied for each row in case of tabular data

within_in_scales(data)

Check potential input is inside input scales.

Parameters

data (Union[Series, Values[I_S], DataFrame, IValueMatrix[I_S], PartialValueMatrix[I_S]]) –

Returns

True if data is within in_scales

Return type

bool

class NormalizedWeightedSum(criteria_weights, in_scales=None, out_scale=None)

Bases: WeightedSum

This class represents a normalized weighted sum aggregator.

Parameters
  • criteria_weights (Union[Dict[Any, float], Series]) –

  • in_scales (Union[QuantitativeScale, Mapping[Any, QuantitativeScale], None]) – input scales (inferred from input if not provided)

  • out_scale (Union[QuantitativeScale, None]) – output scales (inferred from output if not provided)

Attr weight_function

functions applying weights without aggregation

__call__(data, *args, **kwargs)

Apply aggregation method to input data.

Parameters

data (Union[PartialValueMatrix[I_S], IValueMatrix[I_S], DataFrame, Series, Values[I_S]]) –

Returns

aggregation result

Return type

Union[Any, Series, CommensurableValues[O_S], AdjacencyValueMatrix[O_S]]

Note

aggregation is applied for each row in case of tabular data

within_in_scales(data)

Check potential input is inside input scales.

Parameters

data (Union[Series, Values[I_S], DataFrame, IValueMatrix[I_S], PartialValueMatrix[I_S]]) –

Returns

True if data is within in_scales

Return type

bool

class OWA(weights, in_scales=None, out_scale=None)

Bases: Aggregator[QuantitativeScale, QuantitativeScale]

This class represents an Ordered Weighted Aggregator (OWA).

Parameters
  • weights (List[float]) –

  • in_scales (Union[QuantitativeScale, Mapping[Any, QuantitativeScale], None]) – input scales (inferred from input if not provided)

  • out_scale (Union[QuantitativeScale, None]) – output scales (inferred from output if not provided)

Note

Implementation is based on [GKM08].

__call__(data, *args, **kwargs)

Apply aggregation method to input data.

Parameters

data (Union[PartialValueMatrix[I_S], IValueMatrix[I_S], DataFrame, Series, Values[I_S]]) –

Returns

aggregation result

Return type

Union[Any, Series, CommensurableValues[O_S], AdjacencyValueMatrix[O_S]]

Note

aggregation is applied for each row in case of tabular data

classmethod and_aggregator(size)

Return and OWA aggregator of given weights size.

Parameters

size (int) –

Returns

Return type

OWA

Note

\(W_*\) as defined in [Yag88]

property andness: float

Return andness measure of OWA weights.

Returns

Note

andness as defined in [Yag88]

property balance: float

Return OWA weights balance.

Returns

Note

balance as defined in [Yag96]

property dispersion: float

Return OWA weights dispersion (also called entropy).

Returns

Note

dispersion as defined in [Yag88]

property divergence: float

Return OWA weights divergence.

Returns

Note

divergence as defined in [Yag02]

classmethod from_quantifier(quantifier)

Return OWA aggregator corresponding to given quantifier.

Parameters

quantifier (List[float]) –

Returns

Return type

OWA

Note

quantifier as defined in [Yag88]

classmethod or_aggregator(size)

Return or OWA aggregator of given weights size.

Parameters

size (int) –

Returns

Return type

OWA

Note

\(W^*\) as defined in [Yag88]

property orness: float

Return orness measure of OWA weights.

Returns

Note

orness as defined in [Yag88]

property quantifier: List[float]

Return quantifier corresponding to OWA weights.

Returns

Note

quantifier as defined in [Yag88]

within_in_scales(data)

Check potential input is inside input scales.

Parameters

data (Union[Series, Values[I_S], DataFrame, IValueMatrix[I_S], PartialValueMatrix[I_S]]) –

Returns

True if data is within in_scales

Return type

bool

class Sum(in_scales=None, out_scale=None, in_stype=None, out_stype=None)

Bases: Aggregator[QuantitativeScale, QuantitativeScale]

This class represents a simple sum aggregator.

Parameters
  • in_scales (Union[I_S, Mapping[Any, I_S], None]) – input scales (inferred from input if not provided)

  • out_scale (Union[O_S, None]) – output scales (inferred from output if not provided)

  • in_stype (Union[Type[I_S], None]) –

  • out_stype (Union[Type[O_S], None]) –

__call__(data, *args, **kwargs)

Apply aggregation method to input data.

Parameters

data (Union[PartialValueMatrix[I_S], IValueMatrix[I_S], DataFrame, Series, Values[I_S]]) –

Returns

aggregation result

Return type

Union[Any, Series, CommensurableValues[O_S], AdjacencyValueMatrix[O_S]]

Note

aggregation is applied for each row in case of tabular data

within_in_scales(data)

Check potential input is inside input scales.

Parameters

data (Union[Series, Values[I_S], DataFrame, IValueMatrix[I_S], PartialValueMatrix[I_S]]) –

Returns

True if data is within in_scales

Return type

bool

class ULOWA(weights, scale)

Bases: Aggregator[FuzzyScale, FuzzyScale]

This class represents an Unbalanced Linguistic Weighted Average (ULOWA) aggregator.

Parameters
  • weights (List[float]) –

  • scale (FuzzyScale) – fuzzy scale used for the average

Note

implementation based on [IMVM10]

__call__(data, *args, **kwargs)

Apply aggregation method to input data.

Parameters

data (Union[PartialValueMatrix[I_S], IValueMatrix[I_S], DataFrame, Series, Values[I_S]]) –

Returns

aggregation result

Return type

Union[Any, Series, CommensurableValues[O_S], AdjacencyValueMatrix[O_S]]

Note

aggregation is applied for each row in case of tabular data

delta(a, b, weight)

Returns ULOWA delta value.

Parameters
  • a (Any) – worst value

  • b (Any) – best value

  • weight (float) – ULOWA weight

Returns

Return type

float

most_similar(a, b, ref_fuzzy)

Returns label which fuzzy number is the most similar to the reference (between a and b labels).

Parameters
  • a (Any) –

  • b (Any) –

  • ref_fuzzy (FuzzyNumber) – fuzzy number that is being compared to

Returns

Return type

Any

within_in_scales(data)

Check potential input is inside input scales.

Parameters

data (Union[Series, Values[I_S], DataFrame, IValueMatrix[I_S], PartialValueMatrix[I_S]]) –

Returns

True if data is within in_scales

Return type

bool

class WeightedSum(criteria_weights, in_scales=None, out_scale=None)

Bases: Sum

This class represents a weighted sum aggregator.

Parameters
  • criteria_weights (Union[Dict[Any, float], Series]) –

  • in_scales (Union[QuantitativeScale, Mapping[Any, QuantitativeScale], None]) – input scales (inferred from input if not provided)

  • out_scale (Union[QuantitativeScale, None]) – output scales (inferred from output if not provided)

Attr weight_function

functions applying weights without aggregation

__call__(data, *args, **kwargs)

Apply aggregation method to input data.

Parameters

data (Union[PartialValueMatrix[I_S], IValueMatrix[I_S], DataFrame, Series, Values[I_S]]) –

Returns

aggregation result

Return type

Union[Any, Series, CommensurableValues[O_S], AdjacencyValueMatrix[O_S]]

Note

aggregation is applied for each row in case of tabular data

within_in_scales(data)

Check potential input is inside input scales.

Parameters

data (Union[Series, Values[I_S], DataFrame, IValueMatrix[I_S], PartialValueMatrix[I_S]]) –

Returns

True if data is within in_scales

Return type

bool