PPP#

class mlquantify.evaluation.protocol.PPP(batch_size, prevalences, repeats=1, random_state=None)[source]#

Personalized Prevalence Protocol (PPP) for evaluation. This protocol generates artificial prevalence distributions personalized for each class.

Parameters:
batch_sizeint or list of int

The size of the batches to be used in the evaluation.

prevalenceslist of float

The list of artificial prevalences to generate for each class.

repeatsint

The number of times to repeat the evaluation with different random seeds.

random_stateint, optional

The random seed for reproducibility.

Attributes:
prevalenceslist of float

The list of artificial prevalences to generate for each class.

repeatsint

The number of times to repeat the evaluation with different random seeds.

random_stateint

The random seed for reproducibility.

Examples

>>> protocol = PPP(batch_size=100, prevalences=[0.1, 0.9], repeats=3, random_state=42)
>>> for train_idx, test_idx in protocol.split(X, y):
...     # Train and evaluate model
...     pass
get_n_combinations() int[source]#

Get the number of combinations for the current protocol.

split(X: ndarray, y: ndarray)[source]#

Split the data into samples for evaluation.

Parameters:
Xnp.ndarray

The input features.

ynp.ndarray

The target labels.

Yields:
Generator[np.ndarray, np.ndarray]

A generator that yields the indices for each split.