make_example_multi_index_dataframe

make_example_multi_index_dataframe(n_cases: int = 10, n_channels: int = 1, min_n_timepoints: int = 8, max_n_timepoints: int = 12, n_labels: int = 2, regression_target: bool = False, random_state=None, return_y: bool = True)[source]

Randomly generate multi-index pd.DataFrame X and numpy y data for testing.

Generates data in ‘pd-multiindex’ format.

Will ensure there is at least one sample per label if a classification label is being returned (regression_target=False).

Parameters:
n_casesint, default = 10

The number of samples to generate.

n_channelsint, default = 1

The number of series channels to generate.

min_n_timepointsint, default = 12

The minimum number of features/series length to generate for individual series.

max_n_timepointsint, default = 12

The maximum number of features/series length to generate for individual series.

n_labelsint, default = 2

The number of unique labels to generate.

regression_targetbool, default = False

If True, the target will be a float, otherwise a discrete.

random_stateint or None, default = None

Seed for random number generation.

return_ybool, default = True

Return the y target variable.

Returns:
Xpd.DataFrame

Randomly generated potentially unequal length 3D data.

ynp.ndarray

Randomly generated labels if return_y is True.

Examples

>>> from aeon.testing.data_generation import make_example_multi_index_dataframe
>>> from aeon.utils.validation.collection import get_type
>>> data, labels = make_example_multi_index_dataframe(
...     n_cases=2,
...     n_channels=2,
...     min_n_timepoints=4,
...     max_n_timepoints=6,
...     n_labels=2,
...     random_state=0,
... )
>>> print(data)  
                channel_0  channel_1
case timepoint
0    0           0.000000   1.247127
     1           1.688531   0.768763
     2           1.715891   0.595069
     3           1.694503   0.113426
1    0           2.000000   3.702387
     1           3.166900   0.284144
     2           2.115580   0.348517
     3           2.272178   0.080874
>>> print(labels)
[0 1]
>>> get_type(data)
'pd-multiindex'