What is Principal Component Analysis (PCA) and why is it used in machine learning? How does PCA transform high-dimensional data into a lower-dimensional representation? What role do eigenvalues and eigenvectors play in PCA? How does PCA help in reducing noise and improving model performance? What are the limitations and challenges of using PCA in real-world applications?