SparsePCA.jl is a Julia package that provides an implementation of the sparse principal component analysis (SparsePCA) algorithm. SparsePCA is a dimensionality reduction technique that finds a sparse representation of high-dimensional data by identifying a set of orthogonal basis vectors that capture the most variation in the data while minimizing the number of non-zero coefficients in each basis vector.
The SparsePCA.jl package provides a flexible implementation of the SparsePCA algorithm that allows for various optimization methods and penalty functions. The package also includes parameters for selecting the optimal number of components and hyperparameters.
The package is designed to be fast and memory-efficient, making it suitable for large-scale problems. The implementation uses the GLMNet.jl package for Elastic net penalty.