A data scientist is tasked with reducing the dimensionality of a large dataset containing highly correlated features.
The goal is to create a smaller set of new, uncorrelated features that capture the maximum possible variance from the original data.
Which unsupervised learning technique is most suitable for this purpose?