Task 2.2.4: Find K-Means Clusters with PCA
Now that we are clear about how PCA works, let us try to perform K-Means clustering again. However, this time, we shall first reduce the dimensionality of our
data using PCA, then do clustering. Please implement your solution in `find_kmeans_clusters_w_pca`.
IMPORTANT: From this task onwards, you should use scikit-learn's PCA.
The inputs which `find_kmeans_clusters_w_pca` takes are almost identical to those of `k_means`. The only difference is that
`find_kmeans_clusters_w_pca` accepts an additional argument `n_components` which specifies $N$ for the PCA model.
Here, the output should be `centroids` and `pca`, where `centroids` is an $n_{\text{categories}} \times n_{\text{components}}$ matrix representing the centroids of the
clusters in the transformed coordinate system (or space), and `pca` is the PCA model that is used to perform this transformation.
IMPORTANT: please call PCA with `random_state` set to `find_kmeans_clusters_w_pca`'s `random_state` input value, and other than this argument and
`n_components`, use the default values for the other arguments.