PCA Workshop
Comprehensive PCA tutorial covering dimensionality reduction, noise filtering, and eigenfaces
3D PCA Visualization
Interactive 3D visualizations with matplotlib and Plotly
Introduction
Consider an artificial data set constructed by taking one of the off-line digits, represented by a 64 x 64 pixel grey-level image, and embedding it in a larger image of size 100 x 100 by padding with pixels having the value zero (corresponding to white pixels) in which the location and orientation of the digit is varied at random, as illustrated in the figure below.
Geometric interpretation
Can we define PCA from a graphical point of view? This is shown in the next figure.
Key concepts
PCA is fundamentally a dimensionality reduction algorithm, but it can also be useful as a tool for:- Visualization - Project high-dimensional data to 2D or 3D for plotting
- Noise filtering - Reconstruct data using only the largest principal components
- Feature extraction - Discover the most important directions of variance
- Data compression - Represent data with fewer dimensions while preserving information
Applications covered in the notebooks
- Introducing PCA - Principal axes and explained variance
- PCA as dimensionality reduction - Projecting to lower dimensions
- PCA for visualization - Hand-written digits example
- Choosing the number of components - Explained variance ratio
- PCA as noise filtering - Denoising images
- Eigenfaces - Face recognition with PCA
References
- Armeni, I., Sax, S., Zamir, A., Savarese, S. (2017). Joint 2D-3D-Semantic Data for Indoor Scene Understanding.
- Bronstein, M., Bruna, J., LeCun, Y., Szlam, A., Vandergheynst, P. (2016). Geometric deep learning: going beyond Euclidean data.
- Chang, A., Dai, A., Funkhouser, T., Halber, M., Nießner, M., et al. (2017). Matterport3D: Learning from RGB-D Data in Indoor Environments.
- Qi, C., Su, H., Mo, K., Guibas, L. (2016). PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation.
- Zeng, A., Song, S., Nießner, M., Fisher, M., Xiao, J., et al. (2016). 3DMatch: Learning Local Geometric Descriptors from RGB-D Reconstructions.

