ITMO_FS.filters.multivariate.MultivariateFilter

class ITMO_FS.filters.multivariate.MultivariateFilter(measure, n_features, beta=None, gamma=None)

Provides basic functionality for multivariate filters.

Parameters:
  • measure (string or callable) – A metric name defined in GLOB_MEASURE or a callable with signature measure(selected_features, free_features, dataset, labels) which should return a list of metric values for each feature in the dataset.
  • n_features (int) – Number of features to select.
  • beta (float, optional) – Initialize only in case you run MIFS or generalizedCriteria metrics.
  • gamma (float, optional) – Initialize only in case you run generalizedCriteria metric.

Examples

>>> from ITMO_FS.filters.multivariate import MultivariateFilter
>>> from sklearn.datasets import make_classification
>>> from sklearn.preprocessing import KBinsDiscretizer
>>> import numpy as np
>>> dataset = make_classification(n_samples=100, n_features=20, n_informative=4, n_redundant=0, shuffle=False)
>>> est = KBinsDiscretizer(n_bins=10, encode='ordinal')
>>> data, target = np.array(dataset[0]), np.array(dataset[1])
>>> est.fit(data)
>>> data = est.transform(data)
>>> model = MultivariateFilter('MRMR', 8)
>>> model.fit(data, target)
>>> print(model.selected_features)
__init__(measure, n_features, beta=None, gamma=None)

Initialize self. See help(type(self)) for accurate signature.

fit(X, y, feature_names=None)

Fits the filter.

Parameters:
  • X (array-like, shape (n_samples, n_features)) – The training input samples.
  • y (array-like, shape (n_samples, )) – The target values.
  • feature_names (list of strings, optional) – In case you want to define feature names
Returns:

Return type:

None

fit_transform(X, y=None, feature_names=None, **fit_params)

Fits the filter and transforms given dataset X.

Parameters:
  • X (array-like, shape (n_features, n_samples)) – The training input samples.
  • y (array-like, shape (n_samples, ), optional) – The target values.
  • feature_names (list of strings, optional) – In case you want to define feature names
  • **fit_params – dictonary of measure parameter if needed.
Returns:

Return type:

X dataset sliced with features selected by the filter

transform(X)

Transform given data by slicing it with selected features.

Parameters:X (array-like, shape (n_samples, n_features)) – The training input samples.
Returns:
Return type:Transformed 2D numpy array