gpt4 book ai didi

python - 在python中查找具有稀疏矩阵特定特征值的特征向量

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:03 25 4
gpt4 key购买 nike

我有一个很大的稀疏矩阵,我想找到它具有特定特征值的特征向量。在 scipy.sparse.linalg.eigs 中,它表示所需的参数 k:

“k 是所需特征值和特征向量的数量。k 必须小于 N-1。不可能计算矩阵的所有特征向量”。

问题是我不知道我想要的特征值对应的特征向量有多少。这种情况怎么办?

最佳答案

我建议改用奇异值分解 (SVD)。 scipy 中有一个函数,您可以在其中使用 SVD from scipy.sparse.linalg import svds 并且它可以处理稀疏矩阵。您可以通过以下方式找到特征值(在本例中为奇异值)和特征向量:

U, Sigma, VT = svds(X, k=n_components, tol=tol)

其中X可以是稀疏CSR矩阵,UVT中奇异值对应的左特征向量和右特征向量的集合>西格玛。在这里,您可以控制组件的数量。我会说先从小的 n_components 开始,然后再增加它。您可以对您的 Sigma 进行排名并查看您拥有的奇异值的分布。会有一些很大的数量并且会迅速下降。您可以设定要从奇异值中保留多少个特征向量的阈值。

如果你想使用 scikit-learn,有一个类 sklearn.decomposition.TruncatedSVD 可以让你按照我解释的去做。

关于python - 在python中查找具有稀疏矩阵特定特征值的特征向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com