Principal Component Analysis(PCA)

概念

  1. 去中心化(零均值化): 将输入的特征减去特征的均值, 相当于特征进行了平移, \[x_j - \bar x_j\]
  2. 归一化(标准化): 将输入的特征减去特征的均值, 得到的差在除以特征的标准差, \[{{x_j-\bar x_j}\over{std(x_j)}}\]在进行PCA之前, 一定要进行零均值化或者标准化

用途

  1. 数据压缩(Data Compression)
  2. 数据可视化(Data Visualization)
  3. 提高算法执行效率

PCA实现步骤

  1. 数据零均值化或者标准化
  2. 计算样本矩阵的协方差矩阵Covariance, \[\Sigma={1\over{m}}\sum_{i=1}^{m} x^{(i)}x^{(i)T}\]
  3. 计算协方差矩阵的特征向量eigenvectors, \[[U, S, V] = svd(sigma)\]U即为特征向量矩阵
  4. 选择保留的特征, \[Ureduce = U(:, 1:k)\]
  5. 将Ureduce转为样本, \(Z = Ureduce^TX\)

数据还原

  1. 将被PCA处理过的数据尽可能的还原成原始数据
  2. 按照数学公式应该为\(X^{(i)}_{approx} = (Ureduce^T)^{-1}Z^{(i)}\), 但是实际中, 采用估计的, \(X^{(i)}_{approx}=UreduceZ^{(i)}\)

PCA实现补充

  • 如何选择k变量, 即保留的特征数量

    • 设k从1开始递增迭代到PCA算法中
    • 还原数据得到\(X_{approx}\)
    • 比较\[{{{1\over{m}}\sum_{i=1}^m(x^{(i)}-x^{(i)}_{approx})^2}\over{{1\over{m}}\sum_{i=1}^mx^{(i)T}x^{(i)}}}\le0.01\]
    • 如果小于0.01, 则表示当k取\(\hat k\)时, 我们保留了原始数据的99%

什么时候考虑PCA

  • 在一开始处理数据的时候, 应该尽量使用原始数据, 当是在不行的时候再使用PCA处理

Principal Component Analysis(PCA)的更多相关文章

  1. Principal Component Analysis(PCA) algorithm summary

    Principal Component Analysis(PCA) algorithm summary mean normalization(ensure every feature has sero ...

  2. (4)主成分分析Principal Component Analysis——PCA

    主成分分析Principal Component Analysis 降维除了便于计算,另一个作用就是便于可视化. 主成分分析-->降维--> 方差:描述样本整体分布的疏密,方差越大-> ...

  3. [zz] Principal Components Analysis (PCA) 主成分分析

    我理解PCA应该分为2个过程:1.求出降维矩阵:2.利用得到的降维矩阵,对数据/特征做降维. 这里分成了两篇博客,来做总结. http://matlabdatamining.blogspot.com/ ...

  4. PCA(Principal Component Analysis)主成分分析

    PCA的数学原理(非常值得阅读)!!!!   PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可 ...

  5. 从矩阵(matrix)角度讨论PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇异值分解)相关原理

    0. 引言 本文主要的目的在于讨论PAC降维和SVD特征提取原理,围绕这一主题,在文章的开头从涉及的相关矩阵原理切入,逐步深入讨论,希望能够学习这一领域问题的读者朋友有帮助. 这里推荐Mit的Gilb ...

  6. Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

    网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...

  7. 主成分分析(principal components analysis, PCA)——无监督学习

    降维的两种方式: (1)特征选择(feature selection),通过变量选择来缩减维数. (2)特征提取(feature extraction),通过线性或非线性变换(投影)来生成缩减集(复合 ...

  8. Sparse Principal Component Analysis via Rotation and Truncation

    目录 对以往一些SPCA算法复杂度的总结 Notation 论文概述 原始问题 问题的变种 算法 固定\(X\),计算\(R\) 固定\(R\),求解\(X\) (\(Z =VR^{\mathrm{T ...

  9. 《principal component analysis based cataract grading and classification》学习笔记

    Abstract A cataract is lens opacification caused by protein denaturation which leads to a decrease i ...

随机推荐

  1. 如何轻松学习C语言编程!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  2. sharepoint用户信息同步出错

    首先使用工具定位问题,然后权限不够授予权限 C:\Program Files\Microsoft Office Servers\15.0\Synchronization Service\UIShell

  3. 小程序:怎么在两层列表循环(wx:for)的时候判断是否为最后一个元素

    问题说明: 如下图所示,在箭头所指的最后一个选项的底线与底部操作栏的上边线重叠,需要清除掉最后一个元素的底线: 想到的解决方案:  通过判断是否为最后一个元素,然后通过条件渲染(wx:if)动态添加对 ...

  4. Ubuntu16.04以root身份登入!

    首先以非root用户身份登入系统. 1,修改root密码:启动shell,随后在shell里面输入命令: sudo passwd root 最后输入root要使用的密码,需要输入两次,这样root密码 ...

  5. AcWing 153. 双栈排序

    https://www.acwing.com/problem/content/155/ #include <cstring> #include <iostream> #incl ...

  6. 深入了解java虚拟机(JVM) 第二章 内存区域---栈空间

    一.栈的含义 用于描述方法执行的动态内存模型,简单来说就是代码中的方法模块.主要用于局部变量表.栈的大小在编译器中就已经分配了空间,在进入一个方法时,这个方法需要栈帧分配多少内存是固定的,运行期间是不 ...

  7. javascript设为首页、加入收藏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. [ 转 ] 为 phpstorm 自定义默认 Web 服务器

    phpstorm自带web 服务器,可以直接执行调试,这个之前的文章专门讲过,可以看下. 同时你也可以选择在phpstorm集成apache服务器,下面是我自己的亲测的步骤. 如何修改apache默认 ...

  9. 【翻译】理解 LSTM 及其图示

    目录 理解 LSTM 及其图示 本文翻译自 Shi Yan 的博文 Understanding LSTM and its diagrams,原文阐释了作者对 Christopher Olah 博文 U ...

  10. 集合之五:Set接口

    set接口的简单介绍 set接口在API中的说明是:一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 ...