FRONEC

class frlearn.classifiers.FRONEC(Q_type: int = 2, R_d_type: int = 1, k: int = <function at_most.<locals>._f>, owa_weights: Callable[[int], np.array] | None = LinearWeights(), dissimilarity: str or float or Callable[[np.array], float] or Callable[[np.array, np.array], float] = 'boscovich', nn_search: NeighbourSearchMethod = <frlearn.neighbours.neighbour_search_methods.KDTree object>, preprocessors=(<frlearn.statistics.feature_preprocessors.RangeNormaliser object>,))[source]

Implementation of the Fuzzy ROugh NEighbourhood Consensus (FRONEC) multilabel classifier.

Parameters
Q_typeint {1, 2, 3, }, default=2

Quality measure to use for identifying most relevant instances. Q^1 uses lower approximation, Q^2 uses upper approximation, Q^3 is the mean of Q^1 and Q^2.

R_d_typeint {1, 2, }, default=1

Label similarity relation to use. R_d^1 is simple Hamming similarity. R_d^2 is similar, but takes the prior label probabilities into account.

kint, default = at_most(20)

Number of neighbours to consider for neighbourhood consensus.

owa_weights: (int -> np.array) = LinearWeights()

OWA weights to use for calculation of soft maximum and/or minimum.

dissimilarity: str or float or (np.array -> float) or ((np.array, np.array) -> float) = ‘boscovich’

The dissimilarity measure to use. The similarity between two instances is calculated as 1 minus their dissimilarity.

A vector size measure np.array -> float induces a dissimilarity measure through application to y - x. A float is interpreted as Minkowski size with the corresponding value for p. For convenience, a number of popular measures can be referred to by name.

When a float or string is passed, the corresponding dissimilarity measure is automatically scaled to ensure that the dissimilarity of [1, 1, …, 1] with [0, 0, …, 0] is 1.

For instance, the default Boscovich norm (also known as cityblock, Manhattan or taxicab norm) normally assigns a dissimilarity that is the sum of the per-attribute differences. In this case, the scaling step divides by the number of dimensions, and we obtain a dissimilarity that is the mean of the per-attribute differences.

This can be prevented by explicitly passing a dissimilarity measure without scaling.

nn_search: NeighbourSearchMethod = KDTree()

Nearest neighbour search algorithm to use.

preprocessorsiterable = (RangeNormaliser(), )

Preprocessors to apply. The default range normaliser ensures that all features have range 1.

References

1

Vluymans S, Cornelis C, Herrera F, Saeys Y (2018). Multi-label classification using a fuzzy rough neighborhood consensus. Information Sciences, vol 433, pp 96–114. doi: 10.1016/j.ins.2017.12.034

class Model[source]

Examples using frlearn.classifiers.FRONEC