matlab中如何解决argmin问题_Matlab 问题 集锦

本文介绍了MATLAB中解决argmin问题的技巧,特别是在LDA(线性判别分析)和特征值分解场景下。讨论了eig函数的用法,如何求解最小特征值对应的特征向量,并分析了不同参数设置对结果的影响。同时,文章还涉及了数据归一化、中心化在NPE(Nonlinear Projected Embedding)中的作用,以及在特定情况下argmax可能优于argmin的情况。
摘要由CSDN通过智能技术生成

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 = eigvecto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值