我正在使用以下包在相似度得分的对称矩阵(大小为10×10)上找到最大的特征值及其对应的特征向量:
scipy.sparse.linalg.eigen.arpack.eigsh
,像这样:
scipy.sparse.linalg.eigen.arpack.eigsh(mymatrix,1,which='LM')
现在的问题是,当我运行它几次(使用相同的矩阵,设置等)时,有时特征向量中的值是正的,有时是负的(参见运行3).
有谁知道为什么会这样,或者它是一个错误?似乎没有一种模式,但它只发生在每次迭代后运行代码而不关闭Python时(即每次运行后点击F5).
### Run 1: ###[[-0.31056873][-0.31913092][-0.3149287 ][-0.32262921][-0.32190688][-0.31292658][-0.32424732][-0.31885208][-0.31808024][-0.298174 ]]### Run 2: ###[[-0.31056873][-0.31913092][-0.3149287 ][-0.32262921][-0.32190688][-0.31292658][-0.32424732][-0.31885208][-0.31808024][-0.298174 ]]### Run 3:###[[ 0.31056873][ 0.31913092][ 0.3149287 ][ 0.32262921][ 0.32190688][ 0.31292658][ 0.32424732][ 0.31885208][ 0.31808024][ 0.298174 ]]### Run 4: ###[[-0.31056873][-0.31913092][-0.3149287 ][-0.32262921][-0.32190688][-0.31292658][-0.32424732][-0.31885208][-0.31808024][-0.298174 ]]
这不是一个主要问题,但我不喜欢我的代码中的不确定性;-)
提前谢谢了,
马丁
解决方法 这实际上是一个数学问题.但原因是当你计算特征向量时会有一个任意阶段.你正在为x解决Ax = bx.该方程在(可能是ocmplex)相位的乘法下是不变的.
至于为什么它以(看似)随机的方式发生,我不知道.但我很确定这不是一个错误.
总结以上是内存溢出为你收集整理的python – 最大的特征向量和可能的Scipy古怪全部内容,希望文章能够帮你解决python – 最大的特征向量和可能的Scipy古怪所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)