SVD分解在特征降维的应用

最近在做图像分割的实验,但在分类过程中有时会出现所使用的矩阵closely singular而很难accurately calculate. 于是想到了采用SVD decompositon进行降维(这种解决方法是否可行,还有待验证)。

--------------------------------------------------------

(1) 基本公式

从网上看了很多有关SVD分解的资料,对大小为m*n的矩阵进行SVD分解,使用matlab可以很容易进行分解:

X = U * Σ * V'

Um×m酉矩阵;Σ是半正定m×n对角矩阵;而V',即V共轭转置,是n×n阶酉矩阵。这样的分解就称作M奇异值分解。Σ对角线上的元素Σi,i即为M奇异值

----------------------------------------------------------------------

(2) svd具体实现

在matlab中,实现svd分解的函数为:

[u s v]=svd(x);

---------------------------------

(3) 下面要考虑的问题就是如何降维了

假设最终只保留k维,则首先

s = s(1:k,1:k); u = u(:,1:k); v = v'(1:k,:);

然后,

  x1   =  u  *  s  *   v;

(n*d   = n*k   k*k     k*d)

由此,可以用x1近似x。


使用 yi' = xi' * u * inv(s) 作为降维后的第i个特征数据,从而得到降维特征集合

y = [yi'].大小为n*k.

(这个理解是否正确还不清楚,需要通过实验进行验证!)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值