【简洁新闻源码】【源码分析的网站】【分销裂变抽奖源码】matlab cov源码

来源:拟合程序 源码

1.C#中如何编写PCA算法代码?

matlab cov源码

C#中如何编写PCA算法代码?

               PCA的处理步骤:

               1,均值化

               2,求协方差矩阵(我知道的有两种方法,这是简洁新闻源码第一种,按部就班的求,第二种是源码分析的网站:(A*A‘/(N-1)))

               3,求协方差的特征值和特征向量

               4,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵

               5,将样本点投影到选取的特征向量上

       matlab实现源代码

%PCA算法,matlab实现

       function F=pcad(A,n)%A是M*N

       %测试实例A=[2.5,0.5,2.2,1.9,3.1,2.3,2,1,1.5,1.1;2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9]

       %结果F=[0.,-1.,分销裂变抽奖源码0.,0.,1.,网站模版源码平台0.,-0.,-1.,各种副图源码-0.,-1.]

       %PCA第一步:均值化

       X=A-repmat(mean(A,2),1,size(A,2))%去均值

       %PCA第二步:求特征协方差矩阵

       B=COV(X')%求协方差

       %PCA第三步:求特征协方差矩阵的特征值和特征向量

       [v,d]=eig(B)%求特征值和特征向量

       %PCA第四步:将特征值按照从大到小的顺序排序

       d1=diag(d);%取出对角矩阵,也就是把特征值提出来组成一个新的M*1的d1矩阵

       [d2 index]=sort(d1); %特征值以升序排序 d2是排序后的结果 index是数排序以前的排名位置

       cols=size(v,2);% 特征向量矩阵的列数

       for i=1:cols   %对特征向量做相反位置的调整 是个降序排列。这个过程把特征值和特征向量同时做相应的降序排列

           vsort(:,i) = v(:,index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量,每一列构成一个特征向量

           %vsort保存的是协方差矩阵降序后的特征向量,为M*M阶

           dsort(i) = d1(index(cols-i+1));  % dsort 保存的是按降序排列的特征值,是一维行向量,1*M

       end  %完成降序排列

       M=vsort(:,1:n)%提取主成分量

       %PCA第五步:将样本点投影到选取的特征向量上

       F=(X'*M)'%最终的投影

文章所属分类:知识频道,点击进入>>