Matlab实现PCA
来源:互联网 发布:自学java好找工作吗 编辑:程序博客网 时间:2024/05/16 16:19
在主成分分析(PCA)中,介绍了PCA的数学原理,其实用Matlab可以很方便地对矩阵进行操作!
比如,用Matlab求多个样本的协方差矩阵、求矩阵的特征根和特征向量等。
下面介绍用Matlab实现PCA:
假设有4个样本A、B、C、D,每个样本都是6维。
>> A=[1,2,3,4,5,6];
>> B=[1,3,5,7,9,9];
>> C=[2,3,4,6,7,8];
>> D=[3,4,6,7,8,9];
将这4个样本组合成一个矩阵Q,矩阵Q的每一行为一个样本。
>> Q=[A;B;C;D]
Q =
1 2 3 4 5 6
1 3 5 7 9 9
2 3 4 6 7 8
3 4 6 7 8 9
根据cov()函数,求训练样本的协方差矩阵W(注意W是对称的,也即W==W‘)
>> W=cov(Q)
W =
0.9167 0.6667 0.8333 0.6667 0.4167 0.6667
0.6667 0.6667 1.0000 1.0000 1.0000 1.0000
0.8333 1.0000 1.6667 1.6667 1.8333 1.6667
0.6667 1.0000 1.6667 2.0000 2.3333 2.0000
0.4167 1.0000 1.8333 2.3333 2.9167 2.3333
0.6667 1.0000 1.6667 2.0000 2.3333 2.0000
由于cov()函数是按行处理的,也即它认为Q中每一行为一个样本,
所以如果Q写成Q=[A',B',C',D'](6*4的矩阵,每一列为一个样本),W将会为4*4的矩阵,显然不对。
根据协方差矩阵求特征根v、特征向量d(d中每一列为特征根v对应的特征向量)
>> [d,v]=eig(W)
d =
-0.0338 0.4409 -0.3021 0.3507 -0.7491 0.1704
-0.1133 -0.8695 -0.2299 0.0334 -0.3427 0.2444
0.0490 0.1429 0.1773 -0.8342 -0.2871 0.4092
-0.5987 0.0439 0.5673 0.2998 0.0718 0.4720
-0.1319 0.1552 -0.6568 -0.0176 0.4782 0.5460
0.7796 -0.0563 0.2668 0.2998 0.0718 0.4720
v =
-0.0000 0 0 0 0 0
0 0.0000 0 0 0 0
0 0 0.0000 0 0 0
0 0 0 0.1169 0 0
0 0 0 0 1.1473 0
0 0 0 0 0 8.9024
如果要降到3维,那么根据特征根大小,选择前三个特征根对应的特征向量组合成6*3的投影矩阵----PCA投影矩阵!
- PCA的MATLAB实现
- PCA matlab实现
- Matlab实现PCA
- PCA的MATLAB实现
- PCA-MATLAB 实现
- PCA分析以及MATLAB实现
- PCA降维算法总结以及matlab实现PCA
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_2(PCA理论的matlab实现)
- PCA算法学习_2(PCA理论的matlab实现)
- PCA降维算法总结以及matlab实现PCA
- PCA的一些基本资料 以及MATLAB实现
- 主成分分析PCA的matlab实现
- PCA (主成分分析)matlab实现
- PCA的原理及MATLAB实现
- PCA图像压缩的matlab实现
- java apache commons HttpClient发送get和post请求的学习整理
- 【每日一C之二十四】sizeof结构体探究
- Android (shape,gradient)使用总结
- tomcat集群配置
- 国人吃盐成本:像烧油一样居全球前列
- Matlab实现PCA
- css设置属性
- 哈夫曼编码
- [Unity3D]Script 脚本所有编译器属性详解
- 把帧分成场就可以减少大面积闪烁现象的原因解释
- 红木家具伤痕的修复技巧
- 学习速率
- 什么是去偶电容
- APK应用程序的解包、修改、编辑、汉化、打包及应用