Low-dimensional PCA-derived manifolds and everything in between!
Intro#
PCAfold is an open-source Python library for generating, analyzing and improving low-dimensional manifolds. It incorporates a variety of data preprocessing tools (including data clustering and sampling), implements several dimensionality reduction strategies and utilizes novel approaches to assess the quality of the obtained low-dimensional manifolds. The latest software version introduces algorithms to optimize projection topologies based on quantities of interest (QoIs) and novel tools to reconstruct QoIs from the low-dimensional data representations using partition of unity networks (POUnets).
A general overview for using PCAfold modules is presented in the diagram below:
Each module’s functionalities can also be used as a standalone tool for performing a specific task and can easily combine with techniques outside of this software.
Reach out to the Getting started section for more information on installing the software and for possible workflows that can be achieved with PCAfold.
YouTube tutorials#
Check out the YouTube tutorials on PCAfold:
Citing PCAfold#
PCAfold is published in the SoftwareX journal. We have also recently published PCAfold 2.0. If you use PCAfold in a scientific publication, you can cite the software as:
Zdybał, K., Armstrong, E., Parente, A. and Sutherland, J.C., 2020. PCAfold: Python software to generate, analyze and improve PCA-derived low-dimensional manifolds. SoftwareX, 12, p.100630.
or using BibTeX:
@article{pcafold2020,
title = "PCAfold: Python software to generate, analyze and improve PCA-derived low-dimensional manifolds",
journal = "SoftwareX",
volume = "12",
pages = "100630",
year = "2020",
issn = "2352-7110",
doi = "https://doi.org/10.1016/j.softx.2020.100630",
url = "http://www.sciencedirect.com/science/article/pii/S2352711020303435",
author = "Kamila Zdybał and Elizabeth Armstrong and Alessandro Parente and James C. Sutherland"
}
- Getting started
- Module: preprocess
- Module: reduction
- Module: analysis
- Module: reconstruction
- Tools for reconstructing quantities of interest (QoIs)
- Regression assessment
- Class
RegressionAssessment
- Regression quality metrics
coefficient_of_determination()
stratified_coefficient_of_determination()
mean_absolute_error()
stratified_mean_absolute_error()
max_absolute_error()
stratified_max_absolute_error()
mean_squared_error()
stratified_mean_squared_error()
mean_squared_logarithmic_error()
stratified_mean_squared_logarithmic_error()
root_mean_squared_error()
stratified_root_mean_squared_error()
normalized_root_mean_squared_error()
stratified_normalized_root_mean_squared_error()
turning_points()
good_estimate()
good_direction_estimate()
generate_tex_table()
- Class
- Plotting functions
- Module: utilities
- Bibliography
- Preprocessing
- Data clustering
- Data sampling
- Global and local PCA
- Plotting PCA results
- PCA on sampled data sets
- Handling source terms
- Manifold Assessment
- Local feature size estimation
- Cost function for manifold topology assessment and optimization
- Nonlinear regression
- Partition of Unity Networks (POUnets)
- QoI-aware encoder-decoder
- QoI-aware encoder-decoders employing Partition of Unity Networks (POUnets)