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) # 錯誤行 ```
你的作答
在題目頁作答不會存進學習紀錄,想留下紀錄可以到題庫練習。
解析
正確答案:B. 將最後一行改為 X_denoised = pca.inverse_transform(pca.transform(X))
PCA 去雜訊的流程:先用 transform 將資料投影到低維主成分空間,再用 inverse_transform 將其重構回原始維度空間。重構後的資料只保留主要成分,去除了對應小特徵值的雜訊成分。僅用 transform 輸出的是 5 維低維表示,不是去雜訊後的原始維度資料。
每個選項為什麼對或錯
-
A 將 PCA 的 n_components 改為 10 錯誤選項
增加 n_components 不解決邏輯錯誤。
-
B 將最後一行改為 X_denoised = pca.inverse_transform(pca.transform(X)) 正解
inverse_transform(transform(X)) 才能正確執行 PCA 去雜訊,此為正確修正。
-
C 在 fit 前先對 X 進行標準化 錯誤選項
標準化是預處理步驟,不解決去雜訊的邏輯錯誤。
-
D 將 pca.fit(X) 改為 pca.fit_transform(X) 錯誤選項
fit_transform 只是簡化寫法,輸出仍是低維表示,不解決問題。
答案、題目或解析有問題?回報這題