pyppur.optimizers package¶
Optimization methods for projection pursuit.
- class pyppur.optimizers.GridOptimizer(objective_func: Callable[[...], float], n_components: int, n_directions: int = 250, n_iterations: int = 10, max_iter: int = 1000, tol: float = 1e-06, random_state: int | None = None, verbose: bool = False, **kwargs: Any)[source]
Bases:
BaseOptimizerOptimizer 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.
- optimize(X: ndarray, initial_guess: ndarray | None = None, **kwargs: Any) tuple[ndarray, float, dict[str, Any]][source]
Optimize the projection directions using a grid-based approach.
- Parameters:
X – Input data, shape (n_samples, n_features).
initial_guess – Optional initial guess for projection directions.
**kwargs – 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: Callable[[...], float], n_components: int, method: str = 'L-BFGS-B', max_iter: int = 1000, tol: float = 1e-06, random_state: int | None = None, verbose: bool = False, **kwargs: Any)[source]
Bases:
BaseOptimizerOptimizer 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.
- optimize(X: ndarray, initial_guess: ndarray | None = None, **kwargs: Any) tuple[ndarray, float, dict[str, Any]][source]
Optimize the projection directions using SciPy’s optimization methods.
- Parameters:
X – Input data, shape (n_samples, n_features).
initial_guess – Optional initial guess for projection directions.
**kwargs – 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: ndarray, n_components: int, n_features: int) ndarray[source]
Normalize the encoder projection directions to unit norm.
- Parameters:
a_flat – Flattened parameter vector.
n_components – Number of projection components.
n_features – Number of features.
- Returns:
Normalized parameter vector.
pyppur.optimizers.grid_optimizer module¶
Grid-based optimizer for projection pursuit.