zoukankan      html  css  js  c++  java
  • PCA的数学原理Matlab演示

    关于

    PCA(Principal component analysis)主成分分析。是SVD(Singular value decomposition)神秘值分析的一种特殊情况。主要用于数据降维。特征提取。

    Matlab演示

    生成一个随机矩阵

    这里生成一个33的小矩阵便于说明。

    A = rand(3,3);

    A=2.76941.34993.03490.72540.06310.71470.20500.12411.4897

    特征值分解

    [V,D] = eig(A);

    V=0.30460.94450.12300.73680.15180.65880.60360.29140.7421

    D=0.06550001.306000020

    V是特征向量,D是特征向量相应的特征值。特征值从小到大依次为20,1.3060,0.0655。最后一个特征很小。由于我们能够舍去。

    构造子空间的基

    SubSpace = V(:,2:end);

    SubSpace=0.73680.15180.65880.60360.29140.7421

    我们选取最大的两个特征值相应的特征向量。构成我们的子空间。

    构造子空间上的正交投影

    Q = SubSpace * SubSpace ’;

    Q=0.90720.28770.03750.28770.10790.11620.03750.11620.9849

    子空间投影

    B = Q'*A ;

    B=2.78711.29533.04200.64940.29860.68410.20610.12761.4893

    计算子空间与原始空间的差值

    能够看出这里我们使用子空间投影复原的矩阵B和原始矩阵A差异很小,我们能够使用Frobenius范数度量两个矩阵的差异。

     norm(A-B,'fro');

    ans=0.2560

    数学好的同学已经看出来了,事实上这也就是矩阵的低秩逼近问题。


    min||XXr||2F,s.t.rank(Xr)<=r

    完。

    Licenses

    作者 日期 联系方式
    风吹夏天 2015年8月10日 wincoder@qq.com
  • 相关阅读:
    java——对象学习笔记
    ORACLE中如何查看分区表信息
    postgresql相关系统表查询
    oracle系统表查询
    linux shell常用函数,ps
    文本文件合并
    nginx多版本PHP配置
    webuploader实现文件上传
    open abc.txt: The system cannot find the file specified
    PHP在线批量下载文件
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7206753.html
Copyright © 2011-2022 走看看