import numpy as np from sklearn.decomposition import PCA import matplotlib.pyplot as plt # Generate sample data np.random.seed(42) n_samples = 100 n_features = 3 X = np.random.randn(n_samples, n_features) X[:, 0] += np.linspace(0, 5, n_samples) # Add some correlation # Perform PCA pca = PCA() pca.fit(X) # Transform the data X_pca = pca.transform(X) # Print explained variance ratio print("Explained variance ratio:") print(pca.explained_variance_ratio_) # Plot the first two principal components plt.figure(figsize=(10, 6)) plt.scatter(X_pca[:, 0], X_pca[:, 1], alpha=0.7) plt.title("PCA: First Two Principal Components") plt.xlabel("PC1") plt.ylabel("PC2") plt.show()