from sklearn.datasets import load_digits from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler X, _ = load_digits(return_X_y=True) scaler = StandardScaler() X_scaled = scaler.fit_transform(X) pca = PCA(n_components=2) X_reduced = pca.fit_transform(X_scaled) print(f"original shape: {X.shape}") print(f"scaled shape: {X_scaled.shape}") print(f"reduced shape: {X_reduced.shape}") print(f"components kept: {pca.n_components_}") print(f"explained variance ratio: {pca.explained_variance_ratio_.round(4).tolist()}") print(f"total explained variance: {pca.explained_variance_ratio_.sum():.4f}") print(f"first reduced row: {X_reduced[0].round(3).tolist()}")