2012-11-27 72 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."