• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab 问题 集锦

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、原来eig得到的特征值 并不是按照从大到小排列的!!!

    而且[v1,e1] = eig(B,A);  等价于  [v3,e3] = eig(A\B);  等价于求 inv(A)*B

    即,若对于LDA而言,我们的公式为 Sw*a= lambda*Sb*a, 等价于 inv(Sb)*Sw*a = lambda*a, 求 eig(Sw,Sb)或eig(Sb\Sw)的最小特征值对应的特征向量,而eig(Sb,Sw) 或eig(Sw\Sb)的最大特征值对应的特征向量。

2、在基于流行学习的方法中,所谓的M=(I-W)*(I-W)\'中的I是单位矩阵。而不是1

3、在caideng大牛人的的LGE中,发现有个小技巧,在求解NPE的特征值分解问题时,理论上应该是

[eigvector, eigvalue] = eig(WPrime,DPrime);  % inv(T*T\')*T*M*T\' 
[junk, index] = sort(eigvalue);    % 特征值从小到大排列
eigvector = eigvector(:,index);    % 特征向量的排列 按照 特征值从小到大的顺序
eigvector = eigvector(:, 1:ReducedDim);  % 取最小特征值对应特征向量

  

但是如果换成
[eigvector1, eigvalue1] = eig((Sw+0.001*eye(size(Sw,1))),Sb);  % inv(Sb)*Sw 求最小特征值对应的特征向量
[eigvalue1,tt] = sort(diag(eigvalue1),\'ascend\');  % 
Pt = eigvector1(:,tt(end-dim+1:end));

识别错误率为96.79

换成[eigvector1, eigvalue1] = eig(Sw,Sb+0.001*eye(size(Sw,1)));  % inv(Sb)*Sw 求最小特征值对应的特征向量 结果却求的最大值对应的特征向量

  

   然而,我们从下面cai deng的代码中发现并不是这么回事,可能是我理解问题,暂时不知道什么原因

我们看看原始代码    
    if bPCA && ~bD 
        [eigvector, eigvalue] = eig(WPrime);
    else
        [eigvector, eigvalue] = eig(WPrime,DPrime);  % inv(T*T\')*T*M*T\' 取最小特征值对应特征向量
    end
    eigvalue = diag(eigvalue);
    
    [junk, index] = sort(-eigvalue);    % 重点 是 这里 加上 负号的作用?  因为加上负号之后变成了求上式最大特征值对应的特征向量了 或者 我们要求的正是最大特征值对应的特征向量?
    eigvalue = eigvalue(index);
    eigvector = eigvector(:,index);

    if ReducedDim < size(eigvector,2)
        eigvector = eigvector(:, 1:ReducedDim);
        eigvalue = eigvalue(1:ReducedDim);
    end

  通过调试代码发现以下两种代码等价:

% [eigvalue1,tt] = sort(-diag(eigvalue1),\'ascend\');
% Pt = eigvector1(:,tt(1:dim));

[eigvalue1,tt] = sort(diag(eigvalue1),\'ascend\');  % 
Pt = eigvector1(:,tt(end-dim+1:end));

3、关于特征投影后,是否还要进行归一化的经验。是 归一化比较好  

4、关于在NPE中是否需要对数据进行中心化的问题,然后是先进行中心化还是先进行归一化~~ 我的建议是,进行归一化,而不进行中心化。

5、2016 3 22这一天调试了整整一天的NPE代码,其中包括cai deng的NPE,降维工具箱中的npe,以及我自己写的NPE,结论是在同样维度200,同样k近邻5下,COIL20-caideng的数据集,每类样本数为10时,发现三种方法居然识别率差距非常大,我们的npe错误率为88.3871,cai deng 的npe为81.78,最后一个错误率为96.75。简直是!!!无解了!!!!

6、2016324,在调试NPE代码的过程中发现,针对类似LDA求特征值和特征向量的问题,argmax比argmin要效果好,特别是我们可以在eig(Sb,Sw)的Sw上添加lambda*I使其非奇异,这样子会更稳定一些。

7、最近读Least Squares Linear Discriminant Analysis(Jieping Ye),提到传统LDA提取的特征向量是特征值非0的向量,而且当散度矩阵St奇异是,可以用St的“伪逆”矩阵代替原来的St;而且当LDA应用在MSE投影后的特征上时,等价于在原始特征空间使用LDA。当然若MSE的类标矩阵


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
SPCOMM控件在Delphi7.0串口通信中的应用发布时间:2022-07-18
下一篇:
DelphiOle操作Word,判断是否有打开的文档,并且给关闭发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap