繁体   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