Utils#
Tools for handling features and feature labels during classification, data preparation and evaluation
- brainmaze_eeg.features.utils.augment_features(x, feature_names=None, feature_indexes=[], operation=None, mutual=False, operation_str='')#
Augments features with entered operations (mutual - between features such as
*
,/
,+
,-
, ….; non mutual - log, exp, power, …)- Parameters:
x (numpy ndarray) – shape[n_samples, n_features]
feature_names (list or numpy array of strings, optional) – names of features
feature_indexes (list or numpy array) – indexes of features which will be augmented
operation (function) – callable function which will be applied on existing features.
mutual (bool) – indicates whether operation is applied on single feature e.g. np.log10, or on 2 parameters e.g. np.divide if mutual = True, then applied on all feature combination specified in feature_indexes
- Return type:
numpy ndarray -> shape[n_samples, n_features]
- brainmaze_eeg.features.utils.balance_classes(x, y, std_factor=0.0)#
Balances unbalanced classes in dataset by extending the sample array with same samples, possibly with introduced noise. Detects classes from y variable and number of samples per category. Duplicates samples from the categories with lower number of samples. std_factor gives the level of noise introduced into duplicated samples relatively to the std of a given dimension for a given category.
- Parameters:
x (numpy ndarray) – shape[n_samples, n_features]
y (list or numpy array) – string or int indexes for each category
std_factor (float) – Amount of noise introduced into duplicated features relatively to std of a given feature within a category.
- Returns:
numpy ndarray – x - samples
list – y - categories
- brainmaze_eeg.features.utils.find_category_outliers(x, y=None)#
Finds outliers for each category within data. Check website: https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.LocalOutlierFactor.html
- Parameters:
x (numpy ndarray) – shape[n_samples, n_features]
y (list or numpy array) – string or int indexes for each category
- Returns:
position index list with detected outliers
- Return type:
list
- brainmaze_eeg.features.utils.get_class_count(Y, classes=None)#
Returns a number of class appearance in the labels
- brainmaze_eeg.features.utils.get_classification_scores(Y, YY, labels=None)#
Returns a classification report. All values are already in a formated string.
- brainmaze_eeg.features.utils.print_classification_scores(Y, YY, N_merge=False)#
Prints classification report for hypnogram scoring labels.
- brainmaze_eeg.features.utils.remove_features(x, feature_names=None, to_del=None)#
Removes features
- Parameters:
x (numpy ndarray) – shape[n_samples, n_features]
feature_names (list or numpy array, optional) – names of features
to_del
- brainmaze_eeg.features.utils.remove_samples(x, y=None, to_del=None)#
Removes samples
- Parameters:
x (numpy ndarray / list / pd.DataFrame) – shape[n_samples, n_features]
y (list or numpy array, optional) – category reference for each sample
to_del
- brainmaze_eeg.features.utils.replace_annotations(Y, old_key=None, new_key=None)#
Replaces annotation names in a numpy array or list
- brainmaze_eeg.features.utils.zscore(x)#
Calculates Z-score :param x: shape[n_samples, n_features] :type x: numpy ndarray
- Returns:
normalized_features
- Return type:
numpy ndarray