记者:王老您好,上次您给我们清晰的介绍了什么是主成分,今年您是否有空给我们讲一讲如何用数学方法来分析主成分呢?

王老:可以的,但我现在手头有点事,半个小时之后再来找我

记者:好的,一会儿见

半个小时后

王老:我们开始吧,其实主成分分析一般分为两个大的步骤,第一步是讲把数组的平均值变成0并保证各个维度的数据在一个尺度上,第而步找到一个可以原来的特征空间映射到一个新的特征空间的矩阵和从新的特征空间中选择足够的维度来代表原数据。

记者:王老,我们为什么要寻找这样一个变换矩阵呢?

王老:我们在上次讨论的时候已经提过,主成分不一定是原数据的维度中的几个,可以是原数据几个维度的线性组合,而第一主成分就是所有可能的线性组合中方差最大的那个线性组合所构成的新的维度

记者:王老,那怎么来求这个变换矩阵呢?

王老:一般我们都用奇异值分解来求,我们首先看一下什么是奇异值分解,有人说奇异值分解是大学线性代数最应该重点讲的分解,但可惜的是很多老师都没有好好去讲它。任何一个矩阵A都可以分解成这样的一个的形式

A=UΣVT

A=U\Sigma V^T其中U和V都是正交阵, Σ\Sigma是对角阵,这个分解可以这样理解,如何A是一个mxn的矩阵,那么A也可以理解成一个线性变换,可以把一个n维的向量映射成一个m维的向量。n维的空间中一定存在一组基,这组基在经过A的线性变换之后仍然是正交的,只是长度可能发生变化,如果找到了这组基,那么A这个线性变化就可以分成三个连续过程 Ax=A=UΣVTxAx=A=U\Sigma V^T x:首先求出一个向量在这组基上坐标也就是一个投影变化

x′=VTx

x'=V^T x然后,每个坐标会经过一定的拉伸

x″=Σx′

x^{''}=\Sigma x^{'} 最后再经过一个旋转变化U,这便是奇异值分解的物理解释。

记者:王老,我真的听不懂

王老:没事听不懂也没关系,把前面的都忘了,就记住主成分分解的形式

A=UΣVT

A=U\Sigma V^T下面我们开始讲如何用奇异值分解做主成分分析。如果我们有一组m维数据(就是我们从n个角度去描述一个事物),然后一共有n条数据,这组数据可以写成一个矩阵 DmnD_{mn},我们把D的转置做奇异值分解,也就是

DTmn=UΣVT

D^T_{mn}=U\Sigma V^T,也可以写成

DTmn=u1d1vT1+u2d2vT2+...

D^T_{mn}=u_1d_1v_1^T+u_2d_2v_2^T+...

为了简化问题,我们假设数据是两维的

DT2n=u1d1vT1+u2d2vT2

D^T_{2n}=u_1d_1v_1^T+u_2d_2v_2^T
如果 d1d_1远大于 d2d_2,那么 u1d1vT1u_1d_1v_1^T就可以近似的表示原数据了,而 v1v_1就是数据的第一主成分,可以证明,原数据这这一维度上的方差最大。我们这里就不去证明了,如果有多维的话那么 viv_i就是第i主成分。

记者:那到底选多少个主成分合适呢?

王老:保证选择的主成分对应的d的值占多有d的和超过一定比例即可,一般是90%,也可以根据实际情况自己选择这个比例

记者:好的,王老,我回去再好好消化一下,感谢您的耐心讲解,再见

主成分分析之数学推导相关推荐

  1. 【机器学习基础】数学推导+纯Python实现机器学习算法19:PCA降维

    Python机器学习算法实现 Author:louwill Machine Learning Lab 作为一种常见的多元统计分析方法,主成分分析法(Principal Component Analys ...

  2. pca数学推导_PCA背后的统计和数学概念

    pca数学推导 As I promised in the previous article, Principal Component Analysis (PCA) with Scikit-learn, ...

  3. 数学推导+纯Python实现机器学习算法:GBDT

    Datawhale推荐 作者:louwill,Machine Learning Lab 时隔大半年,机器学习算法推导系列终于有时间继续更新了.在之前的14讲中,笔者将监督模型中主要的单模型算法基本都过 ...

  4. 数学推导+纯Python实现机器学习算法:逻辑回归

    2019独角兽企业重金招聘Python工程师标准>>> 自本系列第一讲推出以来,得到了不少同学的反响和赞成,也有同学留言说最好能把数学推导部分写的详细点,笔者只能说尽力,因为打公式实 ...

  5. 详解CAPM的数学推导

    详解CAPM的数学推导 资本配置线 最优投资组合 市场投资者与资本资产定价公式 今年居然是咱本命年啊,难怪从二月开始就总是遇到各种奇奇怪怪的bug,不管怎么说还是祝我生日快乐吧.虽说已经不搞金融了,但 ...

  6. 机器学习——线性回归数学推导

    文章目录 线性回归数学推导 基础知识 线性回归的计算 利用矩阵知识对线性公式进行整合 误差项的分析 似然函数的理解 矩阵求偏导 线性回归的最终求解 实验 1 二维直线实验 2 三维平面实验 3 利用最 ...

  7. Lucene学习总结之六:Lucene打分公式的数学推导

     Lucene学习总结之六:Lucene打分公式的数学推导 在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下.因为Lucene的搜索 ...

  8. BZOJ 3119 Book (贪心+数学推导)

    BZOJ 3119 Book (贪心+数学推导) 手动博客搬家: 本文发表于20191029 22:49:41, 原地址https://blog.csdn.net/suncongbo/article/ ...

  9. 【机器学习基础】数学推导+纯Python实现机器学习算法30:系列总结与感悟

    Python机器学习算法实现 Author:louwill Machine Learning Lab 终于到了最后的总结.从第一篇线性回归的文章开始到现在,已经接近有两年的时间了.当然,也不是纯写这3 ...

  10. 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型

    Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...

最新文章

  1. LeetCode实战:三数之和
  2. AgentShop Development
  3. 需求用例分析之三:补充规约
  4. IT自动化:自动化的网络管理变得很重要
  5. DFS——深度优先搜索基础
  6. 001 makefile的使用
  7. 解决MMC不能打开文件MSC文件(转)
  8. C语言程序设计(第三版)何钦铭著 习题2-1
  9. Unity 与 UE4 双引擎版本四叉树的创建与可视化
  10. 解决OneNote同步失败的一种方法-使用DNSCrypt
  11. Gini Index vs Information Entropy
  12. chartengine 图表的应用流程
  13. 解决Chrome插件安装时程序包无效:CRX_HEADER_INVALID
  14. springboot定制和关闭banner
  15. 定时限过电流保护整定计算
  16. 外呼系统APP外呼软件手机电销软件拨号销售软件功能设计
  17. js获取ISO8601规范时间,使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ
  18. 【Numpy】np.savetxt保存时数据不使用科学计数法形式
  19. 使用网络打印机进行“属性”和“首选项”设置时,弹出个浏览器.exe错误对话框
  20. XP的楼梯(跳楼梯)

热门文章

  1. 《大数据技术原理与应用》—— 提纲
  2. uefi模式安装win7出现winload.efi和oxc0000428错误的另类解决办法
  3. bgm去水印解决办法 PR模板音乐素材去水印的方法
  4. idea快捷键失效,快捷键不能用
  5. Nginx工作原理及基本使用
  6. 某集团大数据平台整体架构及实施方案
  7. Keil MDK5的安装及破解详细步骤
  8. IT小公司避坑及生存指南
  9. 【各学校通用】5分钟刷完天津科技大学雨课堂视频
  10. tar bz2 解压