使用matlab中的SVD技术进行特征缩减

本文详细介绍了奇异值分解(SVD)技术的基本过程及其在数据降维中的应用。包括如何通过SVD对矩阵进行分解,如何选取奇异值,以及如何通过调整奇异值实现数据集的特征缩减。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用SVD技术的过程是:
(1)对给定集进行奇异值分解,得到奇异矩阵S。
(2)将奇异值居矩阵S中最小的几个值置为0,并将U和V中对应的行和列都置为0;
(3)得到经过特征缩减的新数据集X'=U*S*V。

格式:

s = svd (X) 

%返回矩阵X 的奇异值向量 


[U,S,V] = svd (X) 

%返回一个与X 同大小的对角矩阵S,两个正交矩阵U 和V, 且满足X= U*S*V'。若A 为m×n 阵,则U 为m×m 阵,V 为n×n阵。奇异值在S 的对角线上,非负且按降序排列。 


[U,S,V] = svd (X,0) 

%得到一个“有效大小”的分解,只计算出矩阵U 的前n 列,矩阵S 的大小为n×n。 结果中 s 矩阵表示的是奇异值,代表了原矩阵的特性,这样做,可以对数据降维,保留数据特性的基础上做降维,方便做一些特征对比处理,减小计算量,提高匹配精度。


例:

>> A=[1 2;3 4;5 6;7 8];
>> [U,S,V]=svd(A)
U =
-0.1525 -0.8226 -0.3945 -0.3800
-0.3499 -0.4214 0.2428 0.8007
-0.5474 -0.0201 0.6979 -0.4614
-0.7448 0.3812 -0.5462 0.0407
S =
14.2691 0
0 0.6268
0 0
0 0
V =
-0.6414 0.7672
-0.7672 -0.6414
>> [U,S,V]=svd(A,0)
U =
-0.1525 -0.8226
-0.3499 -0.4214
-0.5474 -0.0201
-0.7448 0.3812
S =
14.2691 0
0 0.6268
V =
-0.6414 0.7672
-0.7672 -0.6414


原文地址:http://www.zdh1909.com/html/matlab/10115.html

http://zhidao.baidu.com/link?url=1Zxe7I3pB5Lk2F-zwQW6LWR_DmLwfi61WNM0FScvcUzEzNz2J95CTZ6pt09Fui41fAEEFhAWVDusnQCwk82I8q


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值