簡體   English   中英

當 n_components 為 None 時如何解釋 Scikit-learn 的 PCA?

[英]How to interpret Scikit-learn's PCA when n_components are None?

我對標題中提到的問題感到困惑。 n_components=None是否意味着在輸入中沒有進行任何轉換,或者它已經轉換到新的維度空間,而不是通常的“減少”(保留少數具有高特征值的組件)並保留所有新的合成特征? 文檔為我建議了前者:

因此, None 情況導致: n_components == min(n_samples, n_features) - 1

但這並不完全清楚,此外,如果它確實意味着保留所有組件,為什么這些組件的數量等於n_components == min(n_samples, n_features) - 1 ,為什么不n_features

但是,我找到了另一種選擇(如果沒有,則放棄整個 PCA 步驟),我從未聽說過在不省略一些特征向量的情況下應用 PCA ......

根據官方文檔 -

如果 svd_solver == 'arpack',組件的數量必須嚴格小於 n_features 和 n_samples 的最小值。 因此, None 情況導致: n_components == min(n_samples, n_features) - 1

所以它取決於用於特征向量的求解器的類型(可以通過參數設置)。

如果 arpack:運行 SVD 截斷為 n_components,通過 scipy.sparse.linalg.svds 調用 ARPACK 求解器。 它嚴格要求 0 < n_components < min(X.shape)

至於您關於刪除整個 PCA 步驟的第二個查詢,這完全取決於您要解決的問題。 由於 PCA 組件按降序解釋數據的變化(第一個組件解釋最大方差,最后一個組件解釋最小方差),因此對於特定任務來說,具有一些解釋更多方差的特征可能很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM