忙活了一天再加一个上午,查阅了很多资料,终于捣鼓出来了
在调用LLE函数的时候,发现中间用到了一个eigs函数
[Y,eigenvals] = eigs(M,d+1,0,options);
这行代码一开始也看不懂,直接调用lle降维,之后再进行libsvm识别的时候发现准确率一直上下波动的很大,以为是libsvm的问题,看代码半天也看不懂,后来放弃了,就回过头来看lle函数,一步步查数据,发现是再调用eigs函数的时候,产生特征向量的时候,因为特征值是唯一的,但是每个特征值对应的特征向量其实是可以有很多种情况的(具体原因百度吧===数学不好,懒得解释哈哈哈)
在matlab论坛上看到有网友遇到跟我一样的情况,可惜联系不上人家是怎么解决的,只能靠自己了
看matlab里面的eigs heip其实能看出来的
options.disp = 0;
options.isreal = 1;
options.v0=ones(3019,1);
options.issym = 1;
这几行代码定义了options的一些属性,其中有一个属性值opt.v0,(描述是Starting vector)
然后再往下翻,你会发现matlab特别人性化的给了提醒