pyppur.optimizers package

Optimization methods for projection pursuit.

class pyppur.optimizers.GridOptimizer(objective_func, n_components, n_directions=250, n_iterations=10, max_iter=1000, tol=1e-06, random_state=None, verbose=False, **kwargs)[source]

Bases: BaseOptimizer

Optimizer using a grid-based search approach.

This optimizer is particularly useful for projection indices that are not differentiable or have many local minima. It systematically explores the space of projection directions using a grid-based approach.

Parameters:
optimize(X, initial_guess=None, **kwargs)[source]

Optimize the projection directions using a grid-based approach.

Parameters:
  • X (ndarray) – Input data, shape (n_samples, n_features).

  • initial_guess (ndarray | None) – Optional initial guess for projection directions.

  • **kwargs (Any) – Additional arguments for the objective function.

Returns:

  • Optimized projection directions, shape (n_components, n_features)

  • Final objective value

  • Additional optimizer information

Return type:

Tuple containing

class pyppur.optimizers.ScipyOptimizer(objective_func, n_components, method='L-BFGS-B', max_iter=1000, tol=1e-06, random_state=None, verbose=False, **kwargs)[source]

Bases: BaseOptimizer

Optimizer using SciPy’s optimization methods.

This optimizer leverages SciPy’s optimization functionality, particularly the L-BFGS-B method which is well-suited for projection pursuit problems.

Parameters:
optimize(X, initial_guess=None, **kwargs)[source]

Optimize the projection directions using SciPy’s optimization methods.

Parameters:
  • X (ndarray) – Input data, shape (n_samples, n_features).

  • initial_guess (ndarray | None) – Optional initial guess for projection directions.

  • **kwargs (Any) – Additional arguments for the objective function.

Returns:

  • Optimized projection directions, shape (n_components, n_features)

  • Final objective value

  • Additional optimizer information

Return type:

Tuple containing

Submodules

pyppur.optimizers.base module

Base class for optimization methods.

pyppur.optimizers.scipy_optimizer module

SciPy-based optimizer for projection pursuit.

pyppur.optimizers.scipy_optimizer.normalize_projection_directions(a_flat, n_components, n_features)[source]

Normalize the encoder projection directions to unit norm.

Parameters:
  • a_flat (ndarray) – Flattened parameter vector.

  • n_components (int) – Number of projection components.

  • n_features (int) – Number of features.

Returns:

Normalized parameter vector.

Return type:

ndarray

pyppur.optimizers.grid_optimizer module

Grid-based optimizer for projection pursuit.