关于

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=⎡⎣⎢0.30460.94450.1230−0.73680.15180.65880.6036−0.29140.7421⎤⎦⎥
D=⎡⎣⎢0.06550001.306000020⎤⎦⎥

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

构造子空间的基

SubSpace = V(:,2:end);

SubSpace=⎡⎣⎢−0.73680.15180.65880.6036−0.29140.7421⎤⎦⎥

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

构造子空间上的正交投影

Q = SubSpace * SubSpace ’;

Q=⎡⎣⎢0.9072−0.2877−0.0375−0.28770.1079−0.1162−0.0375−0.11620.9849⎤⎦⎥

子空间投影

B = Q'*A ;

B=⎡⎣⎢2.7871−1.29533.04200.6494−0.29860.6841−0.2061−0.12761.4893⎤⎦⎥

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

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

 norm(A-B,'fro');

ans=0.2560

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

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

完。

Licenses

作者 日期 联系方式
风吹夏天 2015年8月10日 wincoder@qq.com

PCA的数学原理Matlab演示的更多相关文章

  1. PCA的数学原理

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维 数据的 ...

  2. 【机器学习笔记之七】PCA 的数学原理和可视化效果

    PCA 的数学原理和可视化效果 本文结构: 什么是 PCA 数学原理 可视化效果 1. 什么是 PCA PCA (principal component analysis, 主成分分析) 是机器学习中 ...

  3. PCA的数学原理(转)

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  4. PCA算法数学原理及实现

    数学原理参考:https://blog.csdn.net/aiaiai010101/article/details/72744713 实现过程参考:https://www.cnblogs.com/ec ...

  5. PCA数学原理

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  6. pca数学原理(转)

    PCA的数学原理 前言 数据的向量表示及降维问题 向量的表示及基变换 内积与投影 基 基变换的矩阵表示 协方差矩阵及优化目标 方差 协方差 协方差矩阵 协方差矩阵对角化 算法及实例 PCA算法 实例 ...

  7. opencv——PCA(主要成分分析)数学原理推导

    引言: 最近一直在学习主成分分析(PCA),所以想把最近学的一点知识整理一下,如果有不对的还请大家帮忙指正,共同学习. 首先我们知道当数据维度太大时,我们通常需要进行降维处理,降维处理的方式有很多种, ...

  8. 数据降维技术(1)—PCA的数据原理

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  9. 深入学习主成分分析(PCA)算法原理(Python实现)

    一:引入问题 首先看一个表格,下表是某些学生的语文,数学,物理,化学成绩统计: 首先,假设这些科目成绩不相关,也就是说某一科目考多少分与其他科目没有关系,那么如何判断三个学生的优秀程度呢?首先我们一眼 ...

随机推荐

  1. 游戏(game)

    游戏(game) 题目描述 这个游戏是这样的,你有一个初始序列S ,你每次可以选择一段任意长度的连续区间,把他们+1 再膜k,给定目标序列,你需要尝试用尽量少的操作次数将初始序列变为目标序列.作为一名 ...

  2. 刷题总结——Genghis Khan the Conqueror (hdu4126)

    题目: Genghis Khan(成吉思汗)(1162-1227), also known by his birth name Temujin(铁木真) and temple name Taizu(元 ...

  3. 急速安装Ubuntu/windows双操作系统

    本文出自:http://www.cnblogs.com/svitter FAQ 因为很多人都不看FAQ,比如像我,所以直接把FAQ写在最前面,然后把正文卸载最后面逼你看- - 常用软件下载(官网) d ...

  4. div切换 div轮换显示

    原文发布时间为:2009-05-10 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...

  5. PE笔记之NT头PE文件头

    typedef struct _IMAGE_FILE_HEADER {       WORD    Machine;                         //014C-IMAGE_FILE ...

  6. centos7下mysql双主+keepalived

    一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测 ...

  7. LeetCode OJ--Same Tree

    https://oj.leetcode.com/problems/same-tree/ 判断两个二叉树,是否相等. 深搜 /** * Definition for binary tree * stru ...

  8. K皇后问题递归解法

      #include<iostream> #include<cmath> #include<ctime> using namespace std; bool che ...

  9. 洛谷—— P2884 [USACO07MAR]每月的费用Monthly Expense

    https://www.luogu.org/problemnew/show/P2884 题目描述 Farmer John is an astounding accounting wizard and ...

  10. [TJOI2014] 上升子序列

    刚刚做的时候一看:这不是个傻逼题吗hhhhh....然后发现写完了过不了样例,仔细一看题:同构的算一种. 这可咋办啊? 其实很简单,设f[i] 为 以a[i] 结尾的上升子序列个数,我们考虑当前如果算 ...