BandApproximateEntropy¶
- class torcheeg.transforms.BandApproximateEntropy(M: int = 5, R: float = 1.0, sampling_rate: int = 128, order: int = 5, band_dict: Dict[str, Tuple[int, int]] = {'alpha': [8, 14], 'beta': [14, 31], 'gamma': [31, 49], 'theta': [4, 8]}, apply_to_baseline: bool = False)[source][source]¶
A transform method for calculating the approximate entropy of EEG signals in several sub-bands with EEG signals as input. We revised part of the implementation in PyEEG to fit the TorchEEG pipeline.
Paper: Bao F S, Liu X, Zhang C. PyEEG: an open source python module for EEG/MEG feature extraction[J]. Computational intelligence and neuroscience, 2011, 2011.
Related Project: https://github.com/forrestbao/pyeeg/blob/master/pyeeg/entropy.py
Please cite the above paper if you use this module.
from torcheeg import transforms t = transforms.BandApproximateEntropy() t(eeg=np.random.randn(32, 128))['eeg'].shape >>> (32, 4)
- Parameters:
M (int) – A positive integer represents the length of each compared run of data. (default:
5
)R (float) – A positive real number specifies a filtering level. (default:
5
)band_dict – (dict): Band name and the critical sampling rate or frequencies. By default, the differential entropy of the four sub-bands, theta, alpha, beta and gamma, is calculated. (default:
{...}
)apply_to_baseline – (bool): Whether to act on the baseline signal at the same time, if the baseline is passed in when calling. (default:
False
)
- __call__(*args, eeg: ndarray, baseline: ndarray | None = None, **kwargs) Dict[str, ndarray] [source][source]¶
- Parameters:
eeg (np.ndarray) – The input EEG signals in shape of [number of electrodes, number of data points].
baseline (np.ndarray, optional) – The corresponding baseline signal, if apply_to_baseline is set to True and baseline is passed, the baseline signal will be transformed with the same way as the experimental signal.
- Returns:
The differential entropy of several sub-bands for all electrodes.
- Return type:
np.ndarray[number of electrodes, number of sub-bands]