Perform PCA dimensionality reduction (using transpose trick). User specifies either number of eigenvectors to return, or else the percent of the total variance that should be explained.