进行PCA降维,环境是MATLAB,

网上找了很多都是介绍PCA原理的,两篇介绍的不错的PCA 原理文章,只是想实现pCA的大可不必看.原理文章1 
原理文章2

下面开始介绍用MATLAB自带工具包函数pca(对应老版本函数princomp,在maltab里help princomp会提示你用pca代替他)进行降维的方法. 
直接上代码分析:

[pc,score,latent,tsquare] = pca(feature);%我们这里需要他的pc和latent值做分析
  • 1

feature是被降维的特征,每一行是一个特征,列数代表总的特征个数,比如一个图片的HOG特征是96维,总共有8000个HOG特征,那么feature的维度是8000×96,我们的目标就是将其降维(假设将96维降到50维,)那么我们期望的降维后feature就变成了我们需要的feature_after_PCA:8000×50

latent用来计算降维后取多少维度能够达到自己需要的精度, 
通过下面的代码运行结果可以得到取pc中对应每一维度对原始数据的精度:

cumsum(latent)./sum(latent)0.27630.39540.87650.88540.89310.89950.90550.91110.98080.98190.98280.98380.98460.98540.98620.98690.98760.98830.99991.0000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

结果应该是有96维,但是太长,这里随机删减了一部分,我们可以看到只去取第一维的话和原始数据的准确度只有27%,很低,取全部的维度最后的精度就是100%,如果我们觉得精度达到90%就能接受的话我们就只需要取精度为90%对应的维度,这里假设第50维的精度是90%. 
因此我们需要取pc中的1:50列来做最后的变换矩阵:

tran=pc(:,1:50);
  • 1

因此我们最终的feature降维后的矩阵feature_after_PCA就通过下式计算:

feature_after_PCA=score(:,1:50);
  • 1
转载自 fighter_584C 的博客: https://blog.csdn.net/u014381600/article/details/52767427

MATLAB自带工具箱实现PCA降维代码相关推荐

  1. matlab中利用princomp实现PCA降维

    matlab中利用princomp实现PCA降维 在matlab中有函数princomp可以实现数据的降维,本文主要说明该函数的用法. PCA的作用: PCA(主成分分析法),主要用来对数据进行降维, ...

  2. 通俗易懂的机器学习——协方差、奇异值分解、PCA降维代码实现

    协方差.奇异值分解.PCA降维代码实现 原理剖析 数据选用 鸢尾花数据观测 瑞士卷数据观测 代码实现 奇异值分解法 鸢尾花数据集降维后的效果 瑞士卷数据集降维后的效果 协方差法 鸢尾花数据集降维后的效 ...

  3. matlab cdfx,matlab自带工具箱svmtrain函数参数的选择

    1.在使用svmtrain函数时,需要使用核函数进行分类,百度大部分的都是关于libsvm下的核函数使用,看到了一篇写matlab的svmtrain参数选择,如下 https://blog.csdn. ...

  4. PCA降维算法原理及代码实现(python和matlab)

    常见的数据降维算法有:奇异值分解(SVD).主成分分析(PCA).因子分析(FA).独立成分分析(ICA). PCA降维的基本思想:通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值.特征向量. ...

  5. 【主成分分析】PCA降维算法及Matlab代码实现

    前言   机器学习中经常会遇到高维变量的大数据集,并且大数据集的很多高维变量之间并不是独立的,它们之间往往存在相关关系.这些变量一方面为机器学习提供了大量的信息,另一方面由于信息冗余也增加了数据处理的 ...

  6. matlab自带的人脸分类器,基于MATLAB,运用PCA+SVM的特征脸方法人脸识别

    概述: 此文章将要描述一种基于MATLAB平台,运用PCA主成分分析方法对图片数据进行降维,运用SVM支持向量机分类器对降维后的图片数据进行分类处理,从而达到人脸识别的目的. 首先要感谢以下几篇文章的 ...

  7. PCA降维算法总结以及matlab实现PCA(个人的一点理解)

    转载请声明出处.by watkins song 鉴于本文比较混乱, 所以写了一个新的PCA的详细介绍, 请参见: http://blog.csdn.net/watkinsong/article/det ...

  8. pca降维算法java_PCA 降维算法详解 以及代码示例

    1. 前言 PCA : principal component analysis ( 主成分分析) 最近发现我的一篇关于PCA算法总结以及个人理解的博客的访问量比较高, 刚好目前又重新学习了一下PCA ...

  9. MATLAB自带PCA函数的参数含义及使用方法

    目录 1.PCA函数的输入与输出参数 2.PCA函数的使用方法 参考文献: 1.PCA函数的输入与输出参数 function [coeff, score, latent, tsquared, expl ...

最新文章

  1. 十二 手游开发神器 cocos2d-x editor 之游戏暂停悬浮层
  2. nginx限制某个IP同一时间段的访问次数
  3. kettle的安装与连接mysql(包含mysql8)简单使用,
  4. 2020ICPC(南京) - Just Another Game of Stones(吉司机线段树+博弈)
  5. python去重语句_Python Dataframe 指定多列去重、求差集的方法
  6. cocos2d对动画的各种操作
  7. stn算子_深度学习常用算子(二)
  8. cocos2dx 2.0升级为3.0一些常见变化纪录
  9. SmartGit for Mac(图形化Git客户端)
  10. 汉澳Sinox2014X64server高级桌面服务器版操作系统发布
  11. java scene_JavaFX中场景(Scene)的意义是什么?
  12. python自动拨号_python adsl拨号
  13. go服务器验证苹果账号登录
  14. STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口屏
  15. 万字长文!推荐一款日志切割神器
  16. BH-02蓝牙耳机 超重低音蓝牙耳机
  17. SpringBoot基础知识
  18. android studio 出现: Design editor is unavailable until a successful build 问题的处理
  19. 苹果包重新签名及更换包名
  20. Java NIO 应用案例:实现一个简单的群聊系统

热门文章

  1. 判断图片通道数及图片三通道转单通道方法
  2. Java消息队列--JMS概述
  3. 使用 Nginx 三方扩展 ngx_waf 快速实现一个高性能的 Web 应用防火墙
  4. 【前端领域】一个好玩好看的罗盘时钟 --- 附详细介绍
  5. c语言不用math就算次方,C语言中math.h定义了哪些函数
  6. 教你如何做出有创意的作品
  7. matlab某地区12个气象观测站,调整气象观测站问题
  8. 山东计算机一级选择题,计算机一级考试试题选择题(完整)
  9. 俞敏洪力荐:“鬼才”英语记忆法,只需20分钟,轻松记完500单词
  10. WPS JS宏批量重命名文件名