以下用於 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 難度:★★★