簡體   English   中英

使用np.linalg.norm檢查PCA中的特征向量

[英]Use of np.linalg.norm for checking the eigen vectors in PCA

我遵循了有關PCA的教程,然后才開始選擇主要組件。

這是PCA教程的鏈接

我現在仍然停留在代碼中。 我不明白它的實際作用?

eigen_values, eigen_vectors = np.linalg.eig(cor_mat2)

for ev in eigen_vectors:
    np.testing.assert_array_almost_equal(1.0, np.linalg.norm(ev))
print('Everything ok!')

如果有人可以幫助我理解我,我非常感謝。

np.linalg.norm在這里檢查什么?

可以在np.linalng.norm文檔中閱讀,此函數計算向量的L2 Norm

該循環所做的全部工作是確保每個eigenvector具有單位長度,因此可以使用eigenvalues來比較每個特征向量對數據表示的重要性。

特征向量跨越了投影的新基礎,因此,它們具有單位長度(如文章中所述)。 它們不一定非要如此,但是用這種方法更容易,您可以將其視為3-D中的新xyz軸(這樣的規范基始終由在各個維度上都包含零且僅在一個位置包含一個零的向量構成, x為向量(1, 0, 0) ,y將是(0, 1, 0)和z (0, 0, 1) )。

為了獲得包含有關數據的最多信息的新方向(至少是線性的,最大方差)並執行所需大小的降維(例如N ),我們將必須比較它們對數據的“影響”。 這就是特征值的用途,因為無法將特征向量標准化為相同(單位)標度后再進行比較。

暫無
暫無

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

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