一、方法

主成分分析也成主分量分析,利用降维的思想,将多个指标特征转化为少数的几个综合指标特征。是一种线性变化来简化数据集的技术。在减少维数的同时还尽可能多的保留数据集的特征。

作用在于: 降低维数,弄清变量间关系,在低维可以图形化,构造回归模型以及筛选回归变量等

二、步骤

1.对原始数据标准化 xi=(Xi-平均值Xi)/Si

2.计算标准化后的相关系数矩阵R

3.计算R的特征值和特征向量

4.计算贡献率和累计贡献率以及主成分载荷 lij=sqrt(lambai)eij,其中ei是对应特征值lambdai的特征向量,eij为ei的第j个分量

三、实验

数据 data.txt

148 41 72 78
139 34 71 76
160 49 77 86
149 36 67 79
159 45 80 86
142 31 66 76
153 43 76 83
150 43 77 79
151 42 77 80
139 31 68 74
140 29 64 74
161 47 78 84
158 49 78 83
140 33 67 77
137 31 66 73
152 35 73 79
149 47 82 79
145 35 70 77
160 47 74 87
156 44 78 85
151 42 73 82
147 38 73 78
157 39 68 80
147 30 65 75
157 48 80 88
151 36 74 80
144 36 68 76
141 30 67 76
139 32 68 73
148 38 70 78

print.m

%pca 主成分分析结果表
function print(X)
Z=zscore(X);%进行标准化 (x-平均x/s)
R=corrcoef(Z);%对标准化后的矩阵求相关系数矩阵R,这里使用cov也是可以的,和结果相差无几,cov的时候可以不对X进行标准化
[V,D]=eig(R); %对相关系数矩阵R求特征值和特征向量分别为D和V
Cols=size(X,2);%获取特征的个数
characters=zeros(1,Cols);%将特征值保存在characters中
for i=1:Colscharacters(i)=D(i,i);
end
[sortedCharacters,label]=sort(characters,'descend'); %逆序排序,并记下结果和索引
fprintf('                       Eigenvalue of the Correlation Matrix                          \n');
fprintf('          Eigenvalue     Difference       Proportion     Cumulative                  \n');
total=0;
for i=1:Colsfprintf(['    Z' num2str(i)]);fprintf('     %.4f',sortedCharacters(i));if i==Colsfprintf('            .  ');elsefprintf('         %.4f',sortedCharacters(i)-sortedCharacters(i+1));endfprintf('           %.4f',sortedCharacters(i)/sum(sortedCharacters));total=total+sortedCharacters(i);fprintf('         %.4f\n',total/sum(sortedCharacters));
end
fprintf('                            Eigenvectors                          \n');
fprintf('             Z1             Z2             Z3             Z4              \n');
for i=1:Colsfprintf(['    X' num2str(i)]); %[]进行字符串连接for j=1:Colsfprintf('   %8.4f    ',V(i,label(j))); %格式化输出endfprintf('\n');
end

结果

可以看出前两个特征累计贡献率已达到96.36%,因此只需要两个特征就可以很好地概括这组数据. 一般取累计贡献率达85%-95%的特征值lambda1,lambda2,..lambdam对应的前m个主成分. 当沿着Z1的向量方向投影是最好的.

特征抽取 PCA主成分分析相关推荐

  1. R语言PCA主成分分析(Principle Component Analysis)实战2

    R语言PCA主成分分析(Principle Component Analysis)实战2 目录 R语言PCA主成分分析(Principle Component Analysis)实战2 #案例分析

  2. R语言PCA主成分分析(Principle Component Analysis)与线性回归结合实战

    R语言PCA主成分分析(Principle Component Analysis)与线性回归结合实战 目录 R语言PCA主成分分析(Principle Component Analysis)与线性回归 ...

  3. R语言PCA主成分分析(Principle Component Analysis)实战1

    R语言PCA主成分分析(Principle Component Analysis)实战1 目录 R语言PCA主成分分析(Principle Component Analysis)实战1 #案例分析

  4. 【Python-ML】SKlearn库特征抽取-PCA

    # -*- coding: utf-8 -*- ''' Created on 2018年1月18日 @author: Jason.F @summary: 特征抽取-PCA方法,无监督.线性 ''' i ...

  5. 【数学与算法】PCA主成分分析(降维)的通俗理解

    1.PCA降维 PCA主成分分析简单的理解,就是把某物的很多个能直接获取到的特征,经过变换得到很多个新特征,这些新特征对该物体来说,有的影响很大,有的影响很小,只需要使用这些影响大的新特征,舍弃很多影 ...

  6. 统计学习方法第十六章作业:PCA主成分分析算法 代码实现

    PCA主成分分析 import numpy as np class PCA:def __init__(self,x,R=None):self.x = np.array(x)self.dim = sel ...

  7. PCA主成分分析 特征降维 opencv实现

    最近对PCA主成分分析做了一定的了解,对PCA基础和简单的代码做了小小的总结 有很多博客都做了详细的介绍,这里也参考了这些大神的成果: http://blog.sina.com.cn/s/blog_7 ...

  8. pca 主成分分析_超越普通PCA:非线性主成分分析

    pca 主成分分析 TL;DR: PCA cannot handle categorical variables because it makes linear assumptions about t ...

  9. pca 主成分分析_六分钟的主成分分析(PCA)的直观说明。

    pca 主成分分析 Principle Component Analysis (PCA) is arguably a very difficult-to-understand topic for be ...

最新文章

  1. 去除菜单项的加速键--‘’符号
  2. linuxsed替换字符串后保存_字符串方法——replace()
  3. linux7.5进单用户模式,linux进入单用户模式
  4. bat set命令详解
  5. 每天5分钟玩转kubernetes_DNS 访问 Service 每天5分钟玩转 Docker 容器技术(138)
  6. [130_存储业务]001_富士通存储系统Eternus_高级拷贝(Advanced Copy)特性介绍
  7. Layui--代码修饰器layui.code
  8. 小朋友报数(约瑟夫问题)
  9. [Servletamp;JSP] 标准标签
  10. 程序设计导引及在线实践之时区间时间的转换
  11. Neat Download Manager-ndm下载器:短小精悍的mac下载工具
  12. 无线ac配置dhcp服务器,华硕RT-AC86U路由器怎么设置DHCP功能
  13. 云服务器无限多开一个软件吗,只需要一个神器就能无限多开微信!
  14. win10去除桌面快捷方式图标(亲测可用)
  15. meta的http-equiv属性
  16. quark h5 学习
  17. Linux中的rm指令
  18. Python解题 - NOIP2005 青蛙过河
  19. matlab lms算法,LMS算法
  20. Java匿名内部类中this的小知识(待补充完整)

热门文章

  1. 2008年信息安全服务市场发展报告
  2. ASP.NET 学习笔记
  3. 关于sqlite断电或者存储空间不足造成的数据文件损坏问题-转
  4. Docker常见命令---简易教程
  5. oracle分页查询过程的简单实现
  6. Wide character in print at ../lib/MonWalkProc.pm line 569.
  7. [JAVA]定时任务之-Quartz使用篇
  8. 探访新疆北部主力气田:推陈出新 “新科技”保供气
  9. 【学习笔记】圆方树(CF487E Tourists)
  10. DevExpress v18.1新版亮点——WPF篇(二)