skdda.base module#

Scikit-learn-compatible Deep Discriminant Analysis.

Used in David Diaz-Vico, Jose R. Dorronsoro “Deep vs Kernel Fisher Discriminant Analysis”

@author: David Diaz Vico @license: MIT

class skdda.base.FisherTransformer(regressor=MLPRegressor())[source]#

Bases: BaseEstimator, TransformerMixin

Fisher transformer. Can be combined with MLPRegressor to form a Deep Discriminant Analysis classifier.

Parameters:

regressor (RegressorMixin, default=MLPRegressor()) – Scikit-learn RegressorMixin estimator. Use MLPRegressor to get a Deep Discriminant Analysis classifier.

fit(X, y, **fit_params)[source]#
fit_transform(X, y, **fit_params)[source]#

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.

Parameters:
  • X (array-like of shape (n_samples, n_features)) – Input samples.

  • y (array-like of shape (n_samples,) or (n_samples, n_outputs), default=None) – Target values (None for unsupervised transformations).

  • **fit_params (dict) – Additional fit parameters. Pass only if the estimator accepts additional params in its fit method.

Returns:

X_new – Transformed array.

Return type:

ndarray array of shape (n_samples, n_features_new)

transform(X)[source]#
skdda.base.fisher_y(y)[source]#

y_ij = (n-n_j)/(n*sqrt(n_j)) if class(y_i)==j else -sqrt(n_j)/n