otica.model.OTICA

class OTICA(n_components=None, *, whiten=True, w_init='fastica', max_iter=200, history_size=10, tol=1e-05, max_line_search_steps=20, armijo_min_increase=0.0001, random_state=None)[source]

Optimal transport ICA using orthogonal L-BFGS.

The estimator whitens the observations and maximizes the sum of empirical squared Wasserstein distances between the recovered components and a standard Gaussian. Optimization uses an L-BFGS approximation on the orthogonal group.

Data preprocessing settings:
  • n_components: Number of components retained during whitening. When this is smaller than the ambient dimension, optimization runs in the reduced space.

  • whiten: Whether to center and whiten the observations before fitting. When disabled, the observations are assumed to already be whitened.

Initialization settings:
  • w_init: Initialization method or square initial unmixing matrix.

  • random_state: Seed used for random initialization and FastICA.

Optimization settings:
  • max_iter: Maximum number of L-BFGS iterations.

  • history_size: Maximum number of L-BFGS correction pairs.

  • tol: Convergence tolerance.

  • max_line_search_steps: Maximum number of Armijo backtracking steps.

  • armijo_min_increase: Armijo sufficient increase constant.

Variables:
  • n_components (int | None) – Number of retained components before fitting.

  • whiten (bool) – Whether to whiten the data before fitting.

  • w_init (str | np.typing.ArrayLike) – Initialization method or initial unmixing matrix.

  • max_iter (int) – Maximum L-BFGS iterations.

  • history_size (int) – Maximum number of L-BFGS correction pairs.

  • tol (float) – Convergence tolerance.

  • max_line_search_steps (int) – Maximum Armijo backtracking steps.

  • armijo_min_increase (float) – Armijo sufficient increase constant.

  • random_state (int | None) – Random seed.

  • mean (np.ndarray) – Feature means removed during fitting. Available only when whiten=True.

  • whitening (np.ndarray) – Whitening matrix used to project onto the reduced component space. Available only when whiten=True.

  • components (np.ndarray) – Estimated unmixing matrix.

  • mixing (np.ndarray) – Pseudo-inverse of the unmixing matrix.

  • n_iter (int) – Number of L-BFGS iterations.

  • converged (bool) – Indicator of estimator convergence.

Parameters:
  • n_components (int | None)

  • whiten (bool)

  • w_init (str | ArrayLike)

  • max_iter (int)

  • history_size (int)

  • tol (float)

  • max_line_search_steps (int)

  • armijo_min_increase (float)

  • random_state (int | None)

__init__(n_components=None, *, whiten=True, w_init='fastica', max_iter=200, history_size=10, tol=1e-05, max_line_search_steps=20, armijo_min_increase=0.0001, random_state=None)[source]

Initializes the OTICA model.

Parameters:
  • n_components (int | None, optional) – Number of retained components. Defaults to None.

  • whiten (bool, optional) – Whether to whiten the data. Defaults to True.

  • w_init (str | np.typing.ArrayLike, optional) – Initialization method or square initial unmixing matrix. Defaults to "fastica".

  • max_iter (int, optional) – Maximum L-BFGS iterations. Defaults to 200.

  • history_size (int, optional) – Maximum number of L-BFGS correction pairs. Defaults to 10.

  • tol (float, optional) – Convergence tolerance. Defaults to 1e-5.

  • max_line_search_steps (int, optional) – Maximum Armijo backtracking steps. Defaults to 20.

  • armijo_min_increase (float, optional) – Armijo sufficient increase constant. Defaults to 1e-4.

  • random_state (int | None, optional) – Random seed. Defaults to None.

fit(X, y=None)[source]

Fits the optimal transport ICA model.

Parameters:
  • X (np.typing.ArrayLike) – Training observations.

  • y (object, optional) – Ignored. Defaults to None.

Returns:

The fitted estimator.

Return type:

Self

transform(X)[source]

Recovers independent components from observations.

Parameters:

X (np.typing.ArrayLike) – Observations to transform.

Returns:

Recovered independent components.

Return type:

np.ndarray

inverse_transform(X)[source]

Reconstructs observations from independent components.

Parameters:

X (np.typing.ArrayLike) – Independent components to reconstruct.

Returns:

Reconstructed observations in the original feature space.

Return type:

np.ndarray