主成分分析、实例及R语言原理实现
欢迎批评指正!
主成分分析(principal component analysis,PCA)
一。几何的角度理解PCA -- 举例:将原来的三维空间投影到方差最大且线性无关的两个方向(二维空间)。
二。数学推导的角度为 -- 将原矩阵进行单位正交基变换。
且听我慢慢展开。
关于第一句话,给个图直观理解,请问,下面的三维空间中的一条鱼,在二维平面时怎么能更直观的看出,这是一条鱼?



很明显,第一种情况更直观,为什么呢?
这就是将原矩阵(三维空间)投影到了信息量最大的两个维度上(二维平面),这就是PCA所做的事情,降维
参考https://www.bilibili.com/medialist/play/ml304203591
https://www.matongxue.com/madocs/228/
关于第二句话,从数学的角度解释,一句话,原矩阵进行单位正交基变化。
首先。什么是基变化
举例

三维空间中的四个点(矩阵B),左乘一个矩阵A,没有发生任何变化,因为该矩阵就是B的基,如果A发生变化,对应的乘积也发生变化。
第二,为什么要正交单位基,单位基很好理解了,就是为了计算的方便,正交的目的是为了PCA降维之后,我们希望能对各个主成分进行合理解释,如果非正交的话,各主成分之间相关性很高,结果难已解释。
下面到了最重要的一点,如何找鸡?不对不对,找基!
当我们遇到这样的(左面)的数据时,我们很难去选择将数据投影到X1或者X2,因为两个基上的数据信息量差别不大,我们希望找到像Y1,Y2这样的基,这时的取舍就很明确了。

首先,我们将数据中心化

疑问(问什么要中心化)
因为标准化之后X的相关矩阵等于协方差阵,证明(忽视角标0_0),注意此处的Y与下文的Y无关

因为在之前X坐标系下,X1与X2存在很大的相关性,所义无法很好的选择一个维度来投影,但是在Y坐标系下,Y1,Y2之间相关性很小,投影方向很明确。
问题转化为Y = PX,

那么我们希望得到的是一个除去对角线上元素为1之外的其他元素均为零的矩阵。

第三步为谱分解,她有很好的性质,如,Q为X的特征向量组,为单位正交矩阵,D为对角线元素为X特征值的对角线矩阵
对于第④步的解释:我们希望得到的是Y的协方差矩阵为对角线矩阵,而D为对角线矩阵,PQ = 单位矩阵即可,
又Q为正交阵,所以inverse Q = transpose Q,所以
我们可以选择特征值较大的eigenvectors 乘以 X,实现降维
伪代码

实例及R语言实现

a <- c(-1,-1,0,2,0)
b <- c(-2,0,0,1,1)
x <- as.matrix(cbind(a,b)) # already normalization
x
cor <- cor(x)
eig <- eigen(cor)
plot(eig$values)
p <- eig$vectors
y <- t(p) %*% t(x)
plot(t(y))
参考https://www.bilibili.com/video/av29441413/?p=3
https://www.bilibili.com/medialist/play/ml304203591
https://blog.csdn.net/y521263/article/details/44925363
主成分分析、实例及R语言原理实现的更多相关文章
- R语言画图实例-参考R语言实战
dose <- c(, , , ,) drugA <- c(, , , , ) drugB <- c(, , , , ) # 数据准备 opar <- par(no.reado ...
- 主成分分析(PCA)原理及R语言实现
原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及 ...
- 主成分分析(PCA)原理及R语言实现 | dimension reduction降维
如果你的职业定位是数据分析师/计算生物学家,那么不懂PCA.t-SNE的原理就说不过去了吧.跑通软件没什么了不起的,网上那么多教程,copy一下就会.关键是要懂其数学原理,理解算法的假设,适合解决什么 ...
- R语言进行机器学习方法及实例(一)
版权声明:本文为博主原创文章,转载请注明出处 机器学习的研究领域是发明计算机算法,把数据转变为智能行为.机器学习和数据挖掘的区别可能是机器学习侧重于执行一个已知的任务,而数据发掘是在大数据中寻找有 ...
- 决策树ID3原理及R语言python代码实现(西瓜书)
决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...
- 主成分分析 R语言
主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分. 原理: ...
- R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...
- R语言主成分分析(PCA)
数据的导入 > data=read.csv('F:/R语言工作空间/pca/data.csv') #数据的导入> > ls(data) #ls()函数列出所有变量 [1] " ...
- 15、R语言聚类树的绘图原理
聚类广泛用于数据分析.去年研究了一下R语言聚类树的绘图原理.以芯片分析为例,我们来给一些样品做聚类分析.聚类的方法有很多种,我们选择Pearson距离.ward方法. 选择的样品有: "GS ...
随机推荐
- ScreenPresso注册码
[3]-[screenpressopro]-[5705]-[www.dayanzai.me]-[01/26/2016]-[Zkj8i42HhuCW1UCNtaklHv7Eekr1Wkt4wKHFket ...
- JavaScript DOM&BOM
1.DOM含义 D: Document 文档 一份文档就是一棵节点树,每个节点都是一个对象O:Object 对象 JavaScript语言里对象可以分为三种类型: (1)用户定义的对象(user-de ...
- R实用小技巧
输出重定向 # 文本重定向 # cat cat("hello",file="D:/test.txt", append=T) # sink("filen ...
- 密码疑云 (2)——RSA加密机制需要的数学知识
在公钥密码体制提出不久,人们就找到其中的三种,其中最著名的当属RSA体制.RSA是一种非对称加密体制,在公开密钥加密和电子商业中被广泛使用.RSA是1977年由罗纳德·李维斯特(Ron Rivest) ...
- PlantUml 使用代码画各种图
资源 网址 官方github https://github.com/plantuml/plantuml 官方网站 http://plantuml.com/zh/ mac 下,webstorm 中使用 ...
- IO队列深度max_queue_depth对系统性能的影响
前段时间,发生了一个问题引起了我对IO队列深度的研究. 存储服务器中linux kernel的mpt2sas驱动模块,将max_queue_depth设置为1024时,引起系统加载驱动时卡死,而调整为 ...
- CentOS 7.x 如何关闭 numa
CentOS7.x中发现 numactl --interleave=all 执行失败. CentOS7.x中可以通过下面的方式关闭 numa: 1. 编辑 /etc/default/grub 文件,如 ...
- MVC object htmlAttributes,IDictionary<string, object> htmlAttributes 写法
MVC object htmlAttributes:new {style="color:red",width="12px",height="10px& ...
- securecrt 方向键乱码解决
1 下载安装包rlwrap: rlwrap-0.30.tar.gz http://utopia.knoware.nl/~hlub/uck/rlwrap/ 2 install rlwrap ...
- 前后台数据交换,printwriter、jsonobject、jsonarray、ajax请求,数据交换
后台代码: public void findByIDEquipment() { getResponse().setCharacterEncoding("UTF-8"); getRe ...