2012-11-27 57 views
0

我有2D數據(我有一個零均值歸一化數據)。我知道它的協方差矩陣,特徵值和特徵向量。我想決定是否將維度減少到1(我使用主成分分析,PCA)。我該如何決定?有沒有任何方法?用PCA決定降維降維

我正在尋找某物。就像如果你看看這個比例,如果這個比例高,那麼繼續降維也是合乎邏輯的。

PS 1: PoV(變異比例)代表它嗎?

PS 2:這裏是一個答案:https://stats.stackexchange.com/questions/22569/pca-and-proportion-of-variance-explained它是一個測試它的標準嗎?

回答

0

PoV(變異比例)表示數據的多少信息將相對於使用它們全部而言保持相對。它可以使用可以用於該目的。如果POV較高,則較少的信息將會丟失。

0

您想按照量級對特徵值進行排序,然後選取最高的1或2個值。具有非常小的相對值的特徵值可以被認爲是排除的。然後,您可以翻譯數據值並僅使用前1或2個特徵向量來繪製結果的維度。這將給出PCA拆分的視覺表示。另請參閱scikit-learn瞭解PCA的更多信息。精度,召回,F1分數會告訴你它有多好作品

http://sebastianraschka.com/Articles/2014_pca_step_by_step.html ...

步驟1:3D舉例

「對於我們的簡單的例子,我們正在減少的3維特徵空間的2維特徵空間中,我們結合兩個特徵向量具有最高特徵值來構建我們的d×KD×k維特徵向量矩陣WW

matrix_w = np.hstack((eig_pairs[0][1].reshape(3,1), 
        eig_pairs[1][1].reshape(3,1))) 
print('Matrix W:\n', matrix_w) 

>>>Matrix W: 
[[-0.49210223 -0.64670286] 
[-0.47927902 -0.35756937] 
[-0.72672348 0.67373552]]" 

步驟2:實施例3D

「 在最後的步驟中,我們使用2×32×3維矩陣WW,我們只是計算經由方程 y以我們的樣品變換到新的子空間= W^T×X

transformed = matrix_w.T.dot(all_samples) 
assert transformed.shape == (2,40), "The matrix is not 2x40 dimensional."