evorbf.helpers package

evorbf.helpers.center_finder module

class evorbf.helpers.center_finder.CenterFinder(seed=None, **params)[source]

Bases: abc.ABC

Abstract base class for center-finding strategies.

abstract find_centers(X)[source]

Find centers for the RBF Network.

Parameters
  • X – Input data (numpy array of shape [n_samples, n_features]).

  • n_centers – Number of centers to find.

  • seed – Random seed.

Returns

A numpy array of shape [num_centers, n_features] representing the centers.

class evorbf.helpers.center_finder.DbscanFinder(eps=0.75, seed=None, **params)[source]

Bases: evorbf.helpers.center_finder.CenterFinder

Uses DBSCAN clustering to determine the centers.

find_centers(X)[source]

Find centers for the RBF Network.

Parameters
  • X – Input data (numpy array of shape [n_samples, n_features]).

  • n_centers – Number of centers to find.

  • seed – Random seed.

Returns

A numpy array of shape [num_centers, n_features] representing the centers.

class evorbf.helpers.center_finder.KMeansFinder(n_centers=10, seed=None, **params)[source]

Bases: evorbf.helpers.center_finder.CenterFinder

Uses k-means clustering to determine the centers.

find_centers(X)[source]

Find centers for the RBF Network.

Parameters
  • X – Input data (numpy array of shape [n_samples, n_features]).

  • n_centers – Number of centers to find.

  • seed – Random seed.

Returns

A numpy array of shape [num_centers, n_features] representing the centers.

class evorbf.helpers.center_finder.MeanShiftFinder(bandwidth=2.5, seed=None, **params)[source]

Bases: evorbf.helpers.center_finder.CenterFinder

Uses Mean Shift clustering to determine the centers.

find_centers(X)[source]

Find centers for the RBF Network.

Parameters
  • X – Input data (numpy array of shape [n_samples, n_features]).

  • n_centers – Number of centers to find.

  • seed – Random seed.

Returns

A numpy array of shape [num_centers, n_features] representing the centers.

class evorbf.helpers.center_finder.RandomFinder(n_centers=10, seed=None, **params)[source]

Bases: evorbf.helpers.center_finder.CenterFinder

Randomly selects centers from the input data.

find_centers(X)[source]

Find centers for the RBF Network.

Parameters
  • X – Input data (numpy array of shape [n_samples, n_features]).

  • n_centers – Number of centers to find.

  • seed – Random seed.

Returns

A numpy array of shape [num_centers, n_features] representing the centers.

evorbf.helpers.kernel module

class evorbf.helpers.kernel.GaussianKernel(sigma=1.0)[source]

Bases: evorbf.helpers.kernel.Kernel

Gaussian radial basis function kernel.

compute(x, c)[source]

Compute the RBF kernel value between x and c.

Parameters
  • x – Input data point(s), shape [n_samples, n_features] or [n_features].

  • c – Center, shape [n_features].

Returns

RBF kernel value(s), scalar or array depending on x.

class evorbf.helpers.kernel.InverseMultiquadricKernel(sigma=1.0)[source]

Bases: evorbf.helpers.kernel.Kernel

Inverse multiquadric radial basis function kernel.

compute(x, c)[source]

Compute the RBF kernel value between x and c.

Parameters
  • x – Input data point(s), shape [n_samples, n_features] or [n_features].

  • c – Center, shape [n_features].

Returns

RBF kernel value(s), scalar or array depending on x.

class evorbf.helpers.kernel.Kernel(**params)[source]

Bases: abc.ABC

Abstract base class for kernel radial basis functions.

abstract compute(x, c)[source]

Compute the RBF kernel value between x and c.

Parameters
  • x – Input data point(s), shape [n_samples, n_features] or [n_features].

  • c – Center, shape [n_features].

Returns

RBF kernel value(s), scalar or array depending on x.

get_params()[source]

Get the current hyperparameters of the RBF kernel.

Returns

Dictionary of hyperparameters.

set_params(**kwargs)[source]

Set hyperparameters for the RBF kernel.

Parameters

kwargs – Hyperparameters to update.

class evorbf.helpers.kernel.LinearKernel(**params)[source]

Bases: evorbf.helpers.kernel.Kernel

Linear radial basis function kernel.

compute(x, c)[source]

Compute the RBF kernel value between x and c.

Parameters
  • x – Input data point(s), shape [n_samples, n_features] or [n_features].

  • c – Center, shape [n_features].

Returns

RBF kernel value(s), scalar or array depending on x.

class evorbf.helpers.kernel.MultiquadricKernel(sigma=1.0)[source]

Bases: evorbf.helpers.kernel.Kernel

Multiquadric radial basis function kernel.

compute(x, c)[source]

Compute the RBF kernel value between x and c.

Parameters
  • x – Input data point(s), shape [n_samples, n_features] or [n_features].

  • c – Center, shape [n_features].

Returns

RBF kernel value(s), scalar or array depending on x.

evorbf.helpers.metrics module

evorbf.helpers.metrics.get_all_classification_metrics()[source]

Gets a dictionary of all supported classification metrics.

This function returns a dictionary where keys are metric names and values are their optimization types (“min” or “max”).

Returns

A dictionary containing all supported classification metrics.

Return type

dict

evorbf.helpers.metrics.get_all_regression_metrics()[source]

Gets a dictionary of all supported regression metrics.

This function returns a dictionary where keys are metric names and values are their optimization types (“min” or “max”).

Returns

A dictionary containing all supported regression metrics.

Return type

dict

evorbf.helpers.metrics.get_metric_sklearn(task='classification', metric_names=None)[source]

Creates a dictionary of scorers for scikit-learn cross-validation.

This function takes the task type (classification or regression) and a list of metric names. It creates an appropriate metrics instance (ClassificationMetric or RegressionMetric) and iterates through the provided metric names. For each metric name, it checks if it exists in the metrics instance and retrieves the corresponding method. Finally, it uses make_scorer to convert the method to a scorer and adds it to a dictionary.

Parameters
  • task (str, optional) – The task type, either “classification” or “regression”. Defaults to “classification”.

  • metric_names (list, optional) – A list of metric names. Defaults to None.

Returns

A dictionary of scorers for scikit-learn cross-validation.

Return type

dict

evorbf.helpers.metrics.get_metrics(problem, y_true, y_pred, metrics=None, testcase='test')[source]

Calculates metrics for regression or classification tasks.

This function takes the true labels (y_true), predicted labels (y_pred), problem type (regression or classification), a dictionary or list of metrics to calculate, and an optional test case name. It returns a dictionary containing the calculated metrics with descriptive names.

Parameters
  • problem (str) – The type of problem, either “regression” or “classification”.

  • y_true (array-like) – The true labels.

  • y_pred (array-like) – The predicted labels.

  • metrics (dict or list, optional) – A dictionary or list of metrics to calculate. Defaults to None.

  • testcase (str, optional) – An optional test case name to prepend to the metric names. Defaults to “test”.

Returns

A dictionary containing the calculated metrics with descriptive names.

Return type

dict

Raises

ValueError – If the metrics parameter is not a list or dictionary.

evorbf.helpers.preprocessor module

class evorbf.helpers.preprocessor.Data(X=None, y=None, name='Unknown')[source]

Bases: object

The structure of our supported Data class

Parameters
  • X (np.ndarray) – The features of your data

  • y (np.ndarray) – The labels of your data

SUPPORT = {'scaler': ['standard', 'minmax', 'max-abs', 'log1p', 'loge', 'sqrt', 'sinh-arc-sinh', 'robust', 'box-cox', 'yeo-johnson']}
static check_y(y)[source]
static encode_label(y)[source]
static scale(X, scaling_methods=('standard',), list_dict_paras=None)[source]
set_train_test(X_train=None, y_train=None, X_test=None, y_test=None)[source]

Function use to set your own X_train, y_train, X_test, y_test in case you don’t want to use our split function

Parameters
  • X_train (np.ndarray) –

  • y_train (np.ndarray) –

  • X_test (np.ndarray) –

  • y_test (np.ndarray) –

split_train_test(test_size=0.2, train_size=None, random_state=41, shuffle=True, stratify=None, inplace=True)[source]

The wrapper of the split_train_test function in scikit-learn library.

class evorbf.helpers.preprocessor.FeatureEngineering[source]

Bases: object

A class for performing custom feature engineering on numeric datasets.

create_threshold_binary_features(X, threshold)[source]

Add binary indicator columns to mark values below a given threshold. Each original column is followed by a new column indicating whether each value is below the threshold (1 if True, 0 otherwise).

Parameters
  • X (numpy.ndarray) – The input 2D matrix of shape (n_samples, n_features).

  • threshold (float) – The threshold value used to determine binary flags.

Returns

A new 2D matrix of shape (n_samples, 2 * n_features), where each original column is followed by its binary indicator column.

Return type

numpy.ndarray

Raises

ValueError – If X is not a NumPy array or not 2D. If threshold is not a numeric type.

class evorbf.helpers.preprocessor.LabelEncoder[source]

Bases: object

Encode categorical labels as integer indices and decode them back.

This class maps unique categorical labels to integers from 0 to n_classes - 1.

fit(y)[source]

Fit the encoder by finding unique labels in the input data.

Parameters

y (array-like) – Input labels.

Returns

self – Fitted LabelEncoder instance.

Return type

LabelEncoder

fit_transform(y)[source]

Fit the encoder and transform labels in one step.

Parameters

y (array-like of shape (n_samples,)) – Input labels.

Returns

Encoded integer labels.

Return type

np.ndarray

inverse_transform(y)[source]

Transform integer indices back to original labels.

Parameters

y (array-like of int) – Encoded integer labels.

Returns

original_labels – Original labels.

Return type

np.ndarray

Raises

ValueError – If the encoder has not been fitted or index is out of bounds.

transform(y)[source]

Transform labels to integer indices.

Parameters

y (array-like) – Labels to encode.

Returns

encoded_labels – Encoded integer labels.

Return type

np.ndarray

Raises

ValueError – If the encoder has not been fitted or unknown labels are found.

class evorbf.helpers.preprocessor.TimeSeriesDifferencer(interval=1)[source]

Bases: object

A class for applying and reversing differencing on time series data.

Differencing helps remove trends and seasonality from time series for better modeling.

difference(X)[source]

Apply differencing to the input time series.

Parameters

X (array-like) – The original time series data.

Returns

The differenced time series of length (len(X) - interval).

Return type

np.ndarray

inverse_difference(diff_data)[source]

Reverse the differencing transformation using the stored original data.

Parameters

diff_data (array-like) – The differenced data to invert.

Returns

The reconstructed original data (excluding the first interval values).

Return type

np.ndarray

Raises

ValueError – If the original data is not available.

evorbf.helpers.scaler module

class evorbf.helpers.scaler.BoxCoxScaler(lmbda=None)[source]

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

fit(X, y=None)[source]
inverse_transform(X)[source]
transform(X)[source]
class evorbf.helpers.scaler.DataTransformer(scaling_methods=('standard',), list_dict_paras=None)[source]

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

The class is used to transform data using different scaling techniques.

Parameters
  • scaling_methods (str, tuple, list, or np.ndarray) – The name of the scaler you want to use. Supported scaler names are: ‘standard’, ‘minmax’, ‘max-abs’, ‘log1p’, ‘loge’, ‘sqrt’, ‘sinh-arc-sinh’, ‘robust’, ‘box-cox’, ‘yeo-johnson’.

  • list_dict_paras (dict or list of dict) – The parameters for the scaler. If you have only one scaler, please use a dict. Otherwise, please use a list of dict.

SUPPORTED_SCALERS = {'box-cox': <class 'evorbf.helpers.scaler.BoxCoxScaler'>, 'log1p': <class 'evorbf.helpers.scaler.Log1pScaler'>, 'loge': <class 'evorbf.helpers.scaler.LogeScaler'>, 'max-abs': <class 'sklearn.preprocessing._data.MaxAbsScaler'>, 'minmax': <class 'sklearn.preprocessing._data.MinMaxScaler'>, 'robust': <class 'sklearn.preprocessing._data.RobustScaler'>, 'sinh-arc-sinh': <class 'evorbf.helpers.scaler.SinhArcSinhScaler'>, 'sqrt': <class 'evorbf.helpers.scaler.SqrtScaler'>, 'standard': <class 'sklearn.preprocessing._data.StandardScaler'>, 'yeo-johnson': <class 'evorbf.helpers.scaler.YeoJohnsonScaler'>}
fit(X, y=None)[source]

Fit the sequence of scalers on the data.

Parameters
  • X (array-like of shape (n_samples, n_features)) – The input data.

  • y (Ignored) – Not used, exists for compatibility with sklearn’s pipeline.

Returns

self – Fitted transformer.

Return type

object

inverse_transform(X)[source]

Reverse the transformations applied to the data.

Parameters

X (array-like) – Transformed data to invert.

Returns

X_original – Original data before transformation.

Return type

array-like

transform(X)[source]

Transform the input data using the sequence of fitted scalers.

Parameters

X (array-like of shape (n_samples, n_features)) – Input data to transform.

Returns

X_transformed – Transformed data.

Return type

array-like

class evorbf.helpers.scaler.Log1pScaler[source]

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

fit(X, y=None)[source]
inverse_transform(X)[source]
transform(X)[source]
class evorbf.helpers.scaler.LogeScaler[source]

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

fit(X, y=None)[source]
inverse_transform(X)[source]
transform(X)[source]
class evorbf.helpers.scaler.ObjectiveScaler(obj_name='sigmoid', ohe_scaler=None)[source]

Bases: object

For label scaler in classification (binary and multiple classification)

inverse_transform(data)[source]
transform(data)[source]
class evorbf.helpers.scaler.OneHotEncoder[source]

Bases: object

A simple implementation of one-hot encoding for 1D categorical data.

categories_

Sorted array of unique categories fitted from the input data.

Type

np.ndarray

fit(X)[source]

Fit the encoder to the unique categories in X.

Parameters

X (array-like) – 1D array of categorical values.

Returns

Fitted OneHotEncoder instance.

Return type

self

fit_transform(X)[source]

Fit the encoder to X and transform X.

Parameters

X (array-like) – 1D array of categorical values.

Returns

One-hot encoded array of shape (n_samples, n_categories).

Return type

np.ndarray

inverse_transform(one_hot)[source]

Convert one-hot encoded data back to original categories.

Parameters

one_hot (np.ndarray) – 2D array of one-hot encoded data.

Returns

1D array of original categorical values.

Return type

np.ndarray

Raises

ValueError – If the encoder has not been fitted or shape mismatch occurs.

transform(X)[source]

Transform input data into one-hot encoded format.

Parameters

X (array-like) – 1D array of categorical values.

Returns

One-hot encoded array of shape (n_samples, n_categories).

Return type

np.ndarray

Raises

ValueError – If the encoder has not been fitted or unknown category is found.

class evorbf.helpers.scaler.SinhArcSinhScaler(epsilon=0.1, delta=1.0)[source]

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

fit(X, y=None)[source]
inverse_transform(X)[source]
transform(X)[source]
class evorbf.helpers.scaler.SqrtScaler[source]

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

fit(X, y=None)[source]
inverse_transform(X)[source]
transform(X)[source]
class evorbf.helpers.scaler.YeoJohnsonScaler(lmbda=None)[source]

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

fit(X, y=None)[source]
inverse_transform(X)[source]
transform(X)[source]

evorbf.helpers.validator module

evorbf.helpers.validator.check_bool(name: str, value: bool, bound=(True, False))[source]
evorbf.helpers.validator.check_float(name: str, value: None, bound=None)[source]
evorbf.helpers.validator.check_int(name: str, value: None, bound=None)[source]
evorbf.helpers.validator.check_str(name: str, value: str, bound=None)[source]
evorbf.helpers.validator.check_tuple_float(name: str, values: tuple, bounds=None)[source]
evorbf.helpers.validator.check_tuple_int(name: str, values: None, bounds=None)[source]
evorbf.helpers.validator.is_in_bound(value, bound)[source]
evorbf.helpers.validator.is_str_in_list(value: str, my_list: list)[source]