以下用於 PCA 降維去除雜訊的程式碼有一個邏輯錯誤,應如何修正? ```python from sklearn.decomposition import PCA import numpy as np X = np.random.randn(100, 20) pca = PCA(n_components=5) pca.fit(X) X_denoised = pca.transform(X) # 錯誤行 ```

iPAS 考題解析

以下用於 PCA 降維去除雜訊的程式碼有一個邏輯錯誤,應如何修正? ```python from sklearn.decomposition import PCA import numpy as np X = np.random.randn(100, 20) pca = PCA(n_components=5) pca.fit(X) X_denoised = pca.transform(X) # 錯誤行 ```

  • A. 將 PCA 的 n_components 改為 10
  • B. 將最後一行改為 X_denoised = pca.inverse_transform(pca.transform(X)) ✓ 正確答案
  • C. 在 fit 前先對 X 進行標準化
  • D. 將 pca.fit(X) 改為 pca.fit_transform(X)

詳細解析

PCA 去雜訊的流程:先用 transform 將資料投影到低維主成分空間,再用 inverse_transform 將其重構回原始維度空間。重構後的資料只保留主要成分,去除了對應小特徵值的雜訊成分。僅用 transform 輸出的是 5 維低維表示,不是去雜訊後的原始維度資料。

出題年份:114 難度:★★★