主成分分析Principal Component Analysis

降维除了便于计算,另一个作用就是便于可视化。

主成分分析-->降维-->

方差:描述样本整体分布的疏密,方差越大->样本越稀疏,方差越小->样本越紧密

所以问题转化成了 -->

与线性回归对比,似乎有些类似。但它们是不同的!

不仅是公式上有区别,且对于线性回归来说,其纵轴轴 对应的是输出标记。而PCA中其两个轴都是表示特征。

且这些点是垂直于特征轴,而不是红线轴


PCA第一步:将样例的均值归为0(demean),即在每个维度上的均值为0,如下图,

因此,可化为

对于该式,X(i) 是所有样本点已经映射到新的坐标轴上之后,得到的新的样本,蓝点。

步骤-->

1. 对所有样本进行demean处理

2. 求一个轴的方向 w = (w1, w2)

3. 使得所有样本映射到w以后,有:

 最大

映射后样本方差 = (映射后每一个样本 i 的值 - 映射后整体均值)的平方和 / m

注意: 对X可能有n个维度,即使对于二维,每一个样本本身也是包含有2个数的向量。所以,该式更应该表示成以下形式:

 (双杠 表示 模)

Xproject_bar = X_bar (他俩平均值其实是一样的)

又因为我们已经进行了demean处理,其平均值为0,有,

 ----------(1)


假设红线代表我们要找的方向 w = (w1, w2), 蓝色的样本点对应X中的第 i 行 X(i) = (X1(i) , X2(i)), X(i) 此时也是一个向量。 X(i) 映射到 w 上, 即向w表示的轴做一个垂线,有交点,交点位置的这一点即

要求模的平方,其实就是求蓝色轴的长度对应的平方

也可理解成,把一个向量映射到另一个向量上,对应的映射长度是多少。实际上这种映射就是点乘的定义。,两个红线的夹角即 西塔。

由于要找的 w 是一个轴,它是一个方向,可用方向向量来表示,即 w 的模 为 1. 因此上式可化简为,

此时X(i) 的模 是 表示X(i) 的向量 对应的长度, 再乘以 cos西塔, 得到的就是蓝色向量的长度。即,

因此(1)式可化简为,

由于两个向量点乘是一个数,所以可以不用取模的符号了,即


梯度上升法求解PCA问题

与线性回归中推导的公式很像,可化成,

这个矩阵相乘,即,

注,Xw 本身是(m* n) * (n*1) = m * 1 的列向量。在这里我们写成行向量的形式,所以做了一个转置。又因为得到的结果 (1*m) * (m*n) = 1 * n 的行向量,而我们其实想要的是 n*1 的梯度。所以我们再对整个结果做一个转置,即,

 (注: (A*B) 的 转置 = B的转置乘以A的转置)

铛铛! 得到向量化的结果啦!


求数据的前n个主成分

主成分分析:一组坐标系 转移到 另一组坐标系,进行重新排列。 原先n维特征n个轴,转移后仍然是n个轴。使得其在第一个轴上方差最大,第二个轴次之,以此类推。

求出第一主成分后,如何求出下一个主成分?


高维数据向低维数据映射

第一个样本X(1)和w(1)相乘,就是第一个数据在第一个主成分上的映射。W(1)也有n维,是因为原来的X中每个样本都是n维,所以转换后也还是在一个n维的空间中。

但我们将原来m*n 维 降到了 m*k维,k 表示前k个主成分。(k<n)。完成了高维数据到低维数据的映射。

也可完成从低维恢复到高维,用Xk中每一行 乘以 Wk 每一列。 (m*k) * (k*n) = m*n

但这也是不可能恢复的和原数据一样,因为降维的过程中丢失了一些数据。

(4)主成分分析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. Principal Component Analysis(PCA)

    Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当于特征进行了平移, \[x_j - \bar x_j\] 归一化(标 ...

  3. 主成分分析 | Principal Components Analysis | PCA

    理论 仅仅使用基本的线性代数知识,就可以推导出一种简单的机器学习算法,主成分分析(Principal Components Analysis, PCA). 假设有 $m$ 个点的集合:$\left\{ ...

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

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

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

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

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

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

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

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

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

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

  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. Netty实现WebSocket

    package com.qmtt.server; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; ...

  2. 2019/05/13 JAVA虚拟机堆内存调优

    -Xms4000m 堆内存初始值 * -Xmx4000m 堆内存最大值 * -XX:+PrintGCDetails 打印GC信息 * -XX:+UseSerialGC 使用串行GC * -XX:+Pr ...

  3. RPC之远程过程调用

    一. 简介 将一个函数运行在远程计算机上并且等待获取那里的结果,这个称作远程过程调用(Remote Procedure Call)或者 RPC. RPC是一个计算机通信协议. 1. 类比: 将计算机服 ...

  4. JavaScript中,有三种常用的绑定事件的方法

    要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的 ...

  5. 最新版kubernetesV1.14.1集群一键自动部署脚本

    部署命令如下:详情及注意事项请看README.md git clone https://github.com/luckman666/deploy_Kubernetes-v1.14.1.git cd d ...

  6. ubuntu下安装redis扩展

    采用源码编译安装 下载 下载redis源码包到本地一个临时目录 git clone https://github.com/phpredis/phpredis.git 移动文件到合适目录 mv phpr ...

  7. linux下查看nginx配置文件地址

    which nginx/usr/sbin/nginx -t

  8. springcloud 之 bus 消息总线

    在分布式系统中,我们通常使用轻量级消息代理(rabbitmq.kafuka)建立一个公共的主题,让所有的微服务都链接进来,并且监听消费这个主题的内容,我们就称这个主题是 消息总线. (可以用作配置文件 ...

  9. html自己写响应式布局(说起来很高大上的样子,但是其实很简单)

    第一步,打开电脑中安装的Sublime Text3,新建demo文件夹用来存放文件,在里面新建一个HTML文件,通过Tab快捷键迅速创建一个HTML模板,并命名标题. 第二步,在Body标签里添加三个 ...

  10. ios 自定义URL Scheme 设计

    在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个 ...