1. 主成分基本思想

主成分基本思想:在主成分分析中,首先对给定数据进行规范化,使得数据每一个变量的平均值维0,方差为1,之后对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成由若干个线性无关的新变量表示的数据。新变量是可能的正交变换中变量的方差的和最大的,方差表示了新变量上信息的大小,将新变量依次称为第一主成分,第二主成分等

通过主成分分析,可以利用主成分近似地表示原始数据,这可理解为发现数据的'基本结构',也可以把数据由少数主成分表示,这可理解为数据降维

2. 总体主成分定义

\(假设X = {(x_1,x_2,x_3,...,x_m)}^T是m维随机变量,其均值向量为\mu\),\[\mu = E(X) = {(\mu_1,\mu_2,...,\mu_m)}^T\]

\(协方差矩阵是\xi\),\[\xi = cov(x_i,x_j) = E[(x_i-\mu){(x_j-\mu)}^T]\]

\(考虑由m维随机变量x到m维随机变量y = {(y_1,y_2,...,y_m)}^T的线性变换\)
\[y_i = a_i^TX = a_{1i}x_1+a_{2i}x_2+...+a_{mi}x_m\]

其中\(a_i^T = (a_{1i},a_{2i},...,a_{mi})\)

由随机变量的性质可以知道:
\[E(y_i) = a_{i}^T\mu\]
\[var(y_i) = a_i^T\xi a_i\]
\[cov(y_i,y_j) = a_i^T\xi a_j\]

下面给出总体主成分的定义

定义(总体主成分):给定一个上面\(y_i = a_i^TX = a_{1i}x_1+a_{2i}x_2+...+a_{mi}x_m\)的线性变换,如果满足下列条件:

  • (1)系数向量\(a_i^T是单位向量,即a_i^T a_i = 1\)
  • (2)\(变量y_i与y_j互不相关,即它们的协方差为0\)
  • (3)\(变量y_1是X的所有线性变换中方差最大的;y_2是与y_1不相关的X的所有线性变换中方差最大的;\) \(一般地y_i是与y_1,y_2,...,y_{i-1}都不相关的X的所有线性变换中方差最大的;\) \(这时分别称y_1,y_2,...,y_m为X的第一主成分、第二主成分、...、第m主成分\)

3. 样本均值和方差

假设对m维随机变量\(X={(x_1,x_2,...,x_m)}^T\)进行n次独立观测,\(x_1,x_2,...,x_n\)表示观测样本,其中\(x_j={(x_{1j},x_{2j},...,x_{mj})}^T\)表示第j个观测样本,\(x_{ij}表示第j个观测样本的第i个变量\)

给定样本矩阵X,可以估计样本均值,以及样本协方差,样本均值向量\[\tilde x = \frac{1}{n}\sum_{j=1}^nx_j\]

样本方差\[S = \frac{1}{n-1}\sum_{j=1}^n(x_{ik} - \tilde x_i)(x_{jk}-\tilde j)\]

3.1 样本方差推导

样本方差公式\[S = \frac{1}{n-1}\sum_{i=1}^n(x_i-\mu_i)^2\]
扩展开来得到\[S = \frac{1}{n-1}[(X-\frac{1}{n}X^TI_nI_n^T)^T(X-\frac{1}{n}X^TI_nI_n^T)]\]
\[S = \frac{1}{n-1}X^T(I_n - \frac{1}{n}I_nI_n^T)(I_n - \frac{1}{n}I_nI_n^T)X\]
令\(H = I_n - \frac{1}{n}I_nI_n^T\)得\[S = \frac{1}{n-1}X^THX\]
其中H为等幂矩阵HH=H和中心矩阵\(H_n*I_n = 0\)

4. PCA求解流程

  • (1)数据归一化,均值为0,方差为1
  • (2)计算协方差矩阵
  • (3)计算协方差矩阵的特征值和特征向量
  • (4)将特征值从大到小排序
  • (5)保留最上面的N个特征向量
  • (6)将数据转换到上述N个特征向量构建的新空间中

4.1 python实现PCA

def pca(dataMat, topNfeat=9999999):meanVals = mean(dataMat, axis=0)meanRemoved = dataMat - meanVals #remove meancovMat = cov(meanRemoved, rowvar=0)eigVals,eigVects = linalg.eig(mat(covMat))eigValInd = argsort(eigVals)            #sort, sort goes smallest to largesteigValInd = eigValInd[:-(topNfeat+1):-1]  #cut off unwanted dimensionsredEigVects = eigVects[:,eigValInd]       #reorganize eig vects largest to smallestlowDDataMat = meanRemoved * redEigVects#transform data into new dimensionsreconMat = (lowDDataMat * redEigVects.T) + meanValsreturn lowDDataMat, reconMat

5. PCA最小平方误差理论推导

PCA求解其实是寻找最佳投影方向,即多个方向的标准正交基构成一个超平面。

理论思想:在高维空间中,我们实际上是要找到一个d维超平面,使得数据点到这个超平面的距离平方和最小

假设\(x_k\)表示p维空间的k个点,\(z_k\)表示\(x_k\)在超平面D上的投影向量,\(W = {w_1,w_2,...,w_d}\)为D维空间的标准正交基,即PCA最小平方误差理论转换为如下优化问题\[z_k = \sum_{i=1}^d (w_i^T x_k)w_i---(1)\]
\[argmin \sum_{i=1}^k||x_k - z_k||_2^2\]
\[s.t. w_i^Tw_j = p(当i==j时p=1,否则p=0)\]

注:\(w_i^Tx_k\)为x_k在w_i基向量的投影长度,\(w_i^Tx_kw_i\)为w_i基向量的坐标值

求解:

\(L = (x_k - z_k)^T(x_k-z_k)\)

\(L= x_k^Tx_k - x_k^Tz_k - z_k^Tx_k + z_k^Tz_k\)

由于向量内积性质\(x_k^Tz_k = z_k^Tx_k\)

\(L = x_k^Tx_k - 2x_k^Tz_k + z_k^Tz_k\)

将(1)带入得\[x_k^Tz_k = \sum_{i=1}^dw_i^Tx_kx_k^Tw_i\]

\[z_k^Tz_k = \sum_{i=1}^d\sum_{j=1}^d(w_i^Tx_kw_i)^T(w_j^Tx_kw_j)\]

根据约束条件s.t.得\[z_k^Tz_k = \sum_{i=1}^dw_i^Tx_k^Tx_kw_i\]

\[L =x_k^Tx_k - \sum_{i=1}^dw_i^Tx_kx_k^Tw_i\]

根据奇异值分解\[\sum_{i=1}^dw_i^Tx_kx_k^Tw_i = tr(W^Tx_k^Tx_kW)\]

\[L =argmin\sum_{i=1}^kx_k^Tx_k - tr(W^Tx_k^Tx_kW) = argmin\sum_{i=1}^k- tr(W^Tx_k^Tx_kW) + C\]

等价于带约束得优化问题:\[argmaxtr(W^TXX^TW)\]
\[s.t. W^TW = I\]

最佳超平面W与最大方差法求解的最佳投影方向一致,即协方差矩阵的最大特征值所对应的特征向量,差别仅是协方差矩阵\(\xi\)的一个倍数

5.1 定理

\[argmin\phi(W,Z|X) = tr((X-W^TZ)^T(X-W^TZ)) = ||X-W^TZ||_F^2\]
\[s.t.W^TW=I_q\]

注:X为(n,p),Z为(n,q),q < p,w为(p,q)

该定理表达的意思也就是平方差理论,将降维后的矩阵通过W^T投影回去,再与X计算最小平方差,值越小说明信息损失越少

\(\phi\)目标函数最小时,W为X的前q个特征向量矩阵且\(Z=W^TX\)

以上优化可以通过拉格朗日对偶问题求得,最终也会得到\[argmaxtr(W^TXX^TW)\]
\[s.t. W^TW = I\]

6. 核PCA推导

核函数:设X是输入空间(\(R^n\)的子集或离散子集),又F为特征空间(希尔伯特空间),如果存在一个从X到F的隐射\[\phi (X):X -> F\]使得对所有x,z\in X,函数K(x,z)满足条件\[K(x,z) = \phi (x)\bullet \phi (z)\]

下面推导F投影到的主成分定义的平面,根据F样本方差的特征值分解得(为推导方便去掉前面的(\(\frac{1}{n-1}\))\[F^THFV_i = \lambda _i V_i\]由于H为等逆矩阵,则\[F^THHFV_i = \lambda _i V_i\]

由于想得到F很难,我们换一种思路将求F转移求K上,根据AA^T与A^TA的关系:非零特质值相同,得到\[HFF^THU_i = \lambda _iU_i \]

两边同时乘以\(F^TH\)得到\[F^THHFF^THU_i = \lambda _iF^THU_i\]

从上式可以得到\(F^THU_i\)为\(F^THHF\)的特征向量

将\(F^THU_i\)进行归一化\[U_{normal} = \frac{F^THU_i}{{||U_i^THFF^THU_i||}_2}\]

由于\(HFF^TH = HKH = \lambda _i\),则\[U_{normal} = \lambda ^{-\frac{1}{2}}F^THU_i\]

F投影到\(U_normal\)定义的平面\[P = F_{center} U_{normal}\]

\[P= (F-\frac{1}{n}\sum_{i=1}^nF_i)(\lambda ^{-\frac{1}{2}}F^THU_i)\]

\[P= (F-\frac{1}{n}F^TI_n)(\lambda ^{-\frac{1}{2}}F^THU_i)\]

\[P= \lambda ^{-\frac{1}{2}}(K - \frac{1}{n}K(x,x_i))HU_i\]

附:奇异值分解

奇异值分解是一个能适用于任意矩阵的一种分解方法:\[A = U\xi{V}^T\]

假设A是一个MN的矩阵,那么U就是MM的方阵(里面的向量是正交的,U里面向量为左奇异向量),\(\xi\)为MN的实数对角矩阵(对角线以外的元素都是0,对角线上的元素为奇异值),
\(V^T\)是一个N
N的矩阵(里面的向量是正交的,V里面的向量称为右奇异向量)

再结合特征值分解:\[(A^T\bullet{A})\bullet{V_i} = \lambda{_i}\bullet{V_i}\]

上面得到的\(V_i\)就是奇异值分解种的右奇异向量,\(\lambda{_i}\)为特征值

此外我们还可以得到:\[\sigma{_i} = \sqrt{\lambda{_i}}\\u_i=\frac{1}{\sigma{_i}}AV_i\]

上面的\(\sigma{_i}为奇异值\),\(u_i\)为左奇异向量

常见的做法是将奇异值由大到小排列,在大多数情况下,前10%甚至1%的奇异值的和就占了全部奇异值和的99%以上,也就是说我们可以用前r大的奇异值来近似描述矩阵
\[A_{m\times{n}}\approx{U_{m\times{r}}\xi{_{r\times{r}}}V_{r\times{n}}^T}\]

r是一个远小于m,n的数

参考资料:

  • (1)李航老师的
  • (2)
  • (3)

转载于:https://www.cnblogs.com/xiaobingqianrui/p/11206728.html

机器学习降维之主成分分析相关推荐

  1. 机器学习-降维之主成分分析PCA算法原理及实战

    主成分分析 前言 近年来,随着互联网和信息行业的发展,数据已经渗透到各行各业,成为重要的生产因素如数据记录和属性规模的急剧增长.社会已经进入大数据时代,数据越多越好似乎已经成为公理.然而,数据量并不是 ...

  2. 机器学习:基于主成分分析(PCA)对数据降维

    机器学习:基于主成分分析(PCA)对数据降维 作者:AOAIYI 作者简介:Python领域新星作者.多项比赛获奖者:AOAIYI首页

  3. 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 引言 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习 ...

  4. 机器学习:(PCA)主成分分析法及应用(spss)

    目录 1.1.主成分分析法简介 1.2.主成分分析法的意义 1.3.主成分分析法的思想 1.4.主成分分析法的步骤 2.1.导入数据 2.2.生成图表 3.1.PCA算法梯度求解 3.1.1. 梯度上 ...

  5. PCA降维(主成分分析法)

    PCA降维(主成分分析法) PCA的基本思想 PCA数学推导(最大方差法) 第一步,数据去中心化 第二步,找到新最标轴 第三步,选择你需要数据的百分之几的成分 PCA算法的优劣 问题 使用PCA到底需 ...

  6. 机器学习-降维算法(MDS算法)

    机器学习-降维算法(MDS算法) 一,介绍 在现实数据中,很多数据都是高纬度的,在高纬度情况下进行数据处理将会有极大的数据处理量.为了,减少计算量,常常需要缓解这种数据维度灾难,这有两种途径:降维和特 ...

  7. 对pca降维后的手写体数字图片数据分类_python机器学习API介绍13: 数据降维及主成分分析...

    数据降维概述:数据降维是机器学习领域中重要的内容,所谓的降维就是采用某种映射方法,将高维空间中的数据点映射到低维的空间中.其本质是学习一个映射函数f: x->y.其中x是原始数据点的表述,目前多 ...

  8. 机器学习降维算法一:PCA(主成分分析算法)

    引言: 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达 ...

  9. 西瓜书+实战+吴恩达机器学习(十八)降维(主成分分析 PCA)

    文章目录 0. 前言 1. 主成分分析PCA 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 维数灾难:在高维情形下出现的数据样本稀疏.距离计算困难等问题. 缓解 ...

  10. python图像压缩主成分分析实例_python机器学习API介绍13: 数据降维及主成分分析...

    数据降维概述:数据降维是机器学习领域中重要的内容,所谓的降维就是采用某种映射方法,将高维空间中的数据点映射到低维的空间中.其本质是学习一个映射函数f: x->y.其中x是原始数据点的表述,目前多 ...

最新文章

  1. SAP QM 内向交货单在完成包装之后就自动触发了检验批?
  2. java虚拟机之内存分配
  3. PostgreSQL体系架构
  4. java 示例_最佳Java示例
  5. django和mysql如何建模_Django中的多个数据库和多个模型
  6. 剑指Offer之两个链表的第一个公共节点
  7. 深入理解 WordPress 数据库中的用户数据 wp_user
  8. 办公室计算机设备搬迁计划方案,计算机机房整体搬迁方案稿 执行计划.doc
  9. 音视频基本概念:码率、比特率
  10. 在做出日本收入最高的手游之前,他被人评价为“绝不可能成功”
  11. STM32存储器 — 2STM32存储器知识的相关应用(IAP、Bit Banding)
  12. Mac配置/关闭代理命令
  13. python百题大冲关_Python中 Pandas 50题冲关
  14. 【增大C盘内存——拓展卷】C盘与未分配空间之间有恢复分区的解决方法——安装diskgenius
  15. AtCoder褐名记
  16. 抖音高贵气质的签名_抖音上很火的个性签名
  17. 【微信小程序】基于Java+uniapp框架开发的全开源微信小程序商城系统
  18. 解析腾讯视频上传视频源地址网址
  19. 多线程计算多分批计算_如何在Excel 2013中更改自动计算和多线程功能
  20. J.护城河(凸包计算几何)

热门文章

  1. 部分网站为什么上不去_天机SEO:分析网站收录与排名的重要因素
  2. 鸿蒙移植mate10,鸿蒙系统+麒麟1020再升一个台阶,华为Mate30黯然神伤无奈下跌
  3. c语言源程序要正确运行必须要有什么函数,c语言习题(带答案)
  4. 关于ctf竞赛训练 积累的资料
  5. BP神经网络预测(人口)程序(matlab)
  6. Python堆叠式神经网络模型实践【Stacking策略+Keras框架】,GUI可视化应用
  7. Java异常处理机制(基础知识)
  8. 2021-06-06 下拉框,列表框..
  9. 和ufs_宏旺半导体告诉你手机eMMC和UFS到底是什么意思?有什么区别?
  10. fv-15php1c 安装图,SQLite - C/C++接口 API(一)