Matlab实现PCA】的更多相关文章

在主成分分析(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的每…
关于PCA的一道练习题.这个折腾了好久...终于做出来像样的图,开始的时候忘记对原始数据标准化,怎么也不对.经过标准化之后,做的图看着还可以,有错误请指出! MATLAB代码PCA.m: clear clc % 生成training sample MU1 = [6 10]'; MU2 = [6 20]'; SIGMA1 = [2 4; 4 9]; SIGMA2 = [2 4; 4 9]; M1 = mvnrnd(MU1,SIGMA1,1000); M2 = mvnrnd(MU2,SIGMA2,1…
PCA(主成分分析)算法,主要用于数据降维,保留了数据集中对方差贡献最大的若干个特征来达到简化数据集的目的. 实现数据降维的步骤: 1.将原始数据中的每一个样本用向量表示,把所有样本组合起来构成一个矩阵,通常需对样本矩阵进行处理,得到中性化样本矩阵 2.求样本矩阵的协方差矩阵 3.求协方差矩阵的特征值和特征向量 4.将求出的特征向量按照特征值的大小进行组合形成一个映射矩阵.并根据指定的PCA保留的特征个数取出映射矩阵的前n行或者前n列作为最终的映射矩阵. 5.用映射矩阵对数据进行映射,达到数据降…
上次那篇文章在理论层次介绍了下协方差矩阵,没准很多人觉得这东西用处不大,其实协方差矩阵在好多学科里都有很重要的作用,比如多维的正态分布,再比如今天我们今天的主角——主成分分析(Principal Component Analysis,简称PCA).结合PCA相信能对协方差矩阵有个更深入的认识. PCA的缘起 PCA大概是198x年提出来的吧,简单的说,它是一种通用的降维工具.在我们处理高维数据的时候,为了能降低后续计算的复杂度,在“预处理”阶段通常要先对原始数据进行降维,而PCA就是干这个事的.…
0. 关于主成分分析的详细理解以及理论推导,这篇blog中讲的很清楚. 主成分分析是一种常用手段.这应该与因子分析等区别开来,重点在于理解主成分分析的作用以及什么情况下使用主成分分析,本文重点讲解如何使用PCA. 1. 主成分分析是一种降维方法. 实际上这个降维是这样做的:原始变量有m维,PCA主成分变量有t维(t<m),那么就相当于把这m维分别往t维上投影. 例如我们要做回归分析,如果自变量众多,彼此之间又具有复杂的相关性,那么我们考虑对自变量个数进行“减少”.而这个减少不能够丢失有效信息,由…
方案选择可参考:[Scikit-learn] 4.3 Preprocessing data 代码示范可参考:[ML] Pyspark ML tutorial for beginners 本篇涉及:Feature Transformers Tokenizer StopWordsRemover nn-gram Binarizer PCA PolynomialExpansion Discrete Cosine Transform (DCT) StringIndexer IndexToString On…
大家看了之后,可以点一波关注或者推荐一下,以后我也会尽心尽力地写出好的文章和大家分享. 本文先导:在我们平时看NBA的时候,可能我们只关心球员是否能把球打进,而不太关心这个球的颜色,品牌,只要有3D效果,看到球员扣篮的动作就可以了,比如下图: 如果我们直接对篮球照片进行几百万像素的处理,会有几千维甚至几万维的数据要计算,计算量很大.而往往我们只需要大概勾勒出篮球的大概形状就可以描述问题,所以必须对此类数据降维,这样会使处理数据更加轻松.这个在人脸识别中必须要降维,因为我们在做特征提取的时候几万维…
MATLAB基础知识 l  Imread:  读取图片信息: l  axis:轴缩放:axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 设置 x.y 和 z 轴范围以及颜色缩放范围(请参阅 caxis).v = axis 返回包含 x.y 和 z 轴缩放因子的行矢量.v 具有 4 或 6 个分量,具体分别取决于当前坐标轴是二维还是三维.返回值是当前坐标轴的 XLim.Ylim 和 ZLim 属性.   基于 x.y 和 z 数据的最小值和最大值,ax…
简单的主成分分析.第一次见识PCA,我的认识是,尽量用更少的维度来描述数据,以达到理想(虽不是最好,但是''性价比''最高)的效果. %% 主成分分析降维 clear; % 参数初始化 inputfile = 'F:\Techonolgoy\MATLAB\file\MTALAB数据分析与挖掘实战\Datasets\chapter4\chapter4\示例程序\data\principal_component.xls'; outputfile = 'F:\Techonolgoy\MATLAB\fi…
matlab 中自带的函数就不必怀疑. princomp:principal componet analysis (PCA). [COEFF,SCORE,latent,tsquare]=princomp(X); 参数: %%%%%%%%%%%%%%%%%% INPUT: X是数据:n*p,其中n代表样本个数,p代表特征维数 %%%%%%%%%%%%%%%%%% OUTPUT: COEFF: 协方差 p*p,投影矩阵 SCORE:投影之后的数据.如果样本个数<=特征维数,有一个有意思的 现象:SC…
最近跑深度学习,提出的feature是4096维的,放到我们的程序里,跑得很慢,很慢.... 于是,一怒之下,就给他降维处理了,但是matlab 自带的什么pca( ), princomp( )函数,搞不清楚怎么用的,表示不大明白,下了一个软件包: 名字:Matlab Toolbox for Dimensionality Reduction 链接:http://lvdmaaten.github.io/drtoolbox/ Currently, the Matlab Toolbox for Dim…
PCA需要先求数据的散布矩阵x*x',再求其特征向量,那么随便一个400*450的图像,就是180000维,矩阵就是180000*180000,matlab无法容纳,那么通常的PCA对图像的降维,比如求eigenface是怎么实现的?难道都是很小的图像?修改 举报添加评论 分享 • 邀请回答   0 吕祺,喜欢思考,爱美好的食物 修改话题经验   Suppose you store the images as column vectors of length NxN (the number of…
一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法,大家知道,我们在处理有关数字图像处理方面的问题时,比如经常用的图像的查询问题,在一个几万或者几百万甚至更大的数据库中查询一幅相近的图像.这时,我们通常的方法是对图像库中的图片提取响应的特征,如颜色,纹理,sift,surf,vlad等等特征,然后将其保存,建立响应的数据索引,然后对要查询的图像提取相应的特征,与数据库中的图像特征对比,找出与之最近的图片.这里,如果我们为了提…
function [V,S,E]=princa(X) [m,n]=size(X); %计算矩阵的行m和列n %-------------第一步:标准化矩阵-----------------% mv=mean(X); %计算各变量的均值 st=std(X); %计算各变量的标准差 X=(X-repmat(mv,m,1))./repmat(st,m,1); %标准化矩阵X %-------------第二步:计算相关系数矩阵-----------------% % R1=X'*X/(m-1); %方…
Matlab 自带PCA函数形式为 [mappedX, mapping] = pca(X, no_dims) 自己编写PCA函数的步骤 %第一步:输入样本矩阵%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% data=rand(10,8)+randn(10,8)+ones(10,8); %现对其进行pca降维 %% %第二步:计算样本中每一维的均值,然后计算观察值与均值之间的偏差,再计算协方差矩阵 data=bsxfun(@minus,data,mean(data)…
PCA的一些基本资料 最近因为最人脸表情识别,提取的gabor特征太多了,所以需要用PCA进行对提取的特征进行降维. 本来最早的时候我没有打算对提取的gabor特征进行降维,但是如果一个图像时64*64,那么使用五个尺度八个方向的gabor滤波器进行滤波,这样提取的特征足足有64*64*5*8这么多,如果图像稍微大一点,比如128*128的图像,那么直接提取的特征就会几十万,所以不降维的话直接用SVM训练分类器是非常困难的. 所以在这段时间我就学习了一下PCA降维的基本原理和使用方法,网上给出的…
PCA基本流程: 1.训练集矩阵算协方差矩阵A; 2.算协方差矩阵特征值与特征向量; 3.按特征值的大小排列特征矩阵,得B,对应的特征值(按从大到小排列)组成向量a; 4.A*B得到去关联的新矩阵C,A与C的对应位置物理意义相同(指样本维度和样本数),但是去掉了关联,并且按特征贡献度大小排列; 5.选贡献度百分比或降维后的维度.例如百分之90,则是取满足sum(a(1:n))/sum(a)>90%的最小的n:如果直接定降维后的维度,则直接设置个n; 6.任一样本的降维公式相同,对于样本x:x*B…
关于 PCA(Principal component analysis)主成分分析.是SVD(Singular value decomposition)神秘值分析的一种特殊情况.主要用于数据降维.特征提取. Matlab演示 生成一个随机矩阵 这里生成一个3∗3的小矩阵便于说明. A = rand(3,3); A=⎡⎣⎢2.7694−1.34993.03490.7254−0.06310.7147−0.2050−0.12411.4897⎤⎦⎥ 特征值分解 [V,D] = eig(A); V=⎡⎣⎢…
MATLAB实例:PCA降维 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. iris数据 5.1,3.5,1.4,0.2,1 4.9,3.0,1.4,0.2,1 4.7,3.2,1.3,0.2,1 4.6,3.1,1.5,0.2,1 5.0,3.6,1.4,0.2,1 5.4,3.9,1.7,0.4,1 4.6,3.4,1.4,0.3,1 5.0,3.4,1.5,0.2,1 4.4,2.9,1.4,0.2,1 4.9,3.1,1.5,0.1…
MATLAB实例:PCA(主成成分分析)详解 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 主成成分分析 2. MATLAB解释 详细信息请看:Principal component analysis of raw data - mathworks [coeff,score,latent,tsquared,explained,mu] = pca(X) coeff = pca(X) returns the principal componen…
传统的OLS(普通最小二乘)方法无法解决样本数据的共线性(multicollinearity)问题,如果你的数据样本中每个特征变量具有共线性,那么使用基于PCA的PCR和PLSR方法对数据样本进行回归建立模型将会是一个不错的选择.PCA是一种数据降维方式,但同时保持了原始数据降维后的特性:PCR是在降维后的数据空间(英文里常称为score)上进行OLSR(普通最小二乘回归),然后将回归系数矩阵转化为原始空间:PLSR则可以看成改进版的PCR,该方法通过X和Y数据集的交叉投影方法使得回归模型兼顾到…
之前princomp函数还可以正常使用,但是今天突然不能使了!总是显示错误使用 pca输入参数太多. 出错 princomp (line 29)    [varargout{1:nargout}]=pca(varargin{1},'Algorithm','svd','Economy',fEconomy); 因为当前路径下其他的程序里有princomp函数,把其他的删掉就可以了 which -all pca  查看命令  …
clear all;close all;clc;img1=imread('Corner.png');img2=imread('Corner1.png');img3=imread('Corner2.png'); img1=imresize(img1,[35 90]); %Matlab的svd不支持太大的数据,我把数据变小了.img2=imresize(img2,[35 90]);img3=imresize(img3,[35 90]); [height width]=size(img2);a=res…
我接触princomp函数,主要是因为实验室的项目需要,所以我一接触的时候就希望快点学会怎么用. 项目中需要利用PCA算法对大量数据进行降维. 简介:主成分分析 ( Principal Component Analysis , PCA )或者主元分析.是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题.计算主成分的目的是将高维数据投影到较低维空间. 对于银行后台存储的大量数据进行分析,并不一件易事,由于每个人的信息属性众多,辨别起来颇为费力…
Introduction 主成分分析(Principal Components Analysis)是一种对特征进行降维的方法.由于观测指标间存在相关性,将导致信息的重叠与低效,我们倾向于用少量的.尽可能多能反映原特征的新特征来替代他们,主成分分析因此产生.主成分分析可以看成是高维空间通过旋转坐标系找到最佳投影(几何上),生成新维度,其中新坐标轴每一个维度都是原维度的线性组合\(\theta'X\)(数学上),满足: 新维度特征之间的相关性尽可能小 参数空间\(\theta\)有界 方差尽可能大,…
原理 计算方法 主要性质 有关统计量 主成分个数的选取 ------------------------------------------------------------------------------------------------------------------------ http://my.oschina.net/gujianhan/blog/225241 ---------------------------------------------------------…
主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通过PCA降维,我们能够有效的降低数据的维度,加快运算速度.而白化就是为了使得每个特征能有同样的方差,降低相邻像素的相关性. 主成分分析PCA PCA算法可以将输入向量转换为一个维数低很多的近似向量.我们在这里首先用2D的数据进行试验,其数据集可以在UFLDL网站的相应页面http://ufldl.stanford.edu/wiki/index.php/Exercise:PCA_in_2D…
http://blog.json.tw/using-matlab-implementing-pca-dimension-reduction 設有m筆資料, 每筆資料皆為n維, 如此可將他們視為一個mxn matrix.若資料的維度太大時, 可能不利於分析, 例如這m筆資料用作機器學習. PCA的想法是算出這mxn matrix的斜方差矩陣, 此矩陣大小為nxn, 計算此矩陣n個特徵值(eigen value)及其對應的特徵向量(eigen vector), 依eigen value大小由小到大排…
我理解PCA应该分为2个过程:1.求出降维矩阵:2.利用得到的降维矩阵,对数据/特征做降维. 这里分成了两篇博客,来做总结. http://matlabdatamining.blogspot.com/2010/02/principal-components-analysis.html 英文Principal Components Analysis的博客,这种思路挺好,但是有2处写错了,下面有标注. http://www.cnblogs.com/denny402/p/4020831.html 这个…
这篇博客会以攻略形式介绍PCA在前世今生. 其实,主成分分析知识一种分析算法,他的前生:应用场景:后世:输出结果的去向,在网上的博客都没有详细的提示.这里,我将从应用场景开始,介绍到得出PCA结果后,接下来的后续操作. 前世篇 我们要先从多元线性回归开始.对图9-3作一下多远线性回归 X1——总产值,X2——存储量,X3——总消费,Y——进口总额 从最直白的讲,对Y进行多元线性回归分析,就是在X1,X2,X3前加个系数,然后总体相加的结果,越接近越好. 用R的多远线性归回方法分析看看: cono…