美文网首页
PH525s series - PCA motivation

PH525s series - PCA motivation

作者: 3between7 | 来源:发表于2019-12-11 10:11 被阅读0次

降维(dimension reduction

对于高纬度数据来说,因为维度过多,所以很难去画图,那如果我们可以通过某种手段把高纬度数据的维度降低并同时尽量保留原始的数据信息的话,画图就会很简单了,这种手段就是降维

例子:将二维降到一维

原文以一组虚拟的双胞胎身高数据(y)为例,具体数值等于每个个体的身高距平均身高几个标准差。如果以每一对双胞胎中的第一个为x,以第二个为y进行描点,那么这个图就是一个二维图像,且这些点分布在对角线上(图省略。。)。

这样的一组数据如何进行降维呢?先品一品下面的代码:

##先生成模拟的身高数据
library(rafalib)
library(MASS)
set.seed(1)
n <- 100
y=t(mvrnorm(n,c(0,0), matrix(c(1,0.95,0.95,1),2,2)))

z1 = (y[1,]+y[2,])/2 #求平均值
z2 = (y[1,]-y[2,]) #求差值
z = rbind( z1, z2) #新生成的z与y的维度相同
thelim <- c(-3,3)
mypar(1,2)
plot(y[1,],y[2,],xlab="Twin 1 (standardized height)",ylab="Twin 2 (standardized \
height)",xlim=thelim,ylim=thelim)
points(y[1,1:2],y[2,1:2],col=2,pch=16)
plot(z[1,],z[2,],xlim=thelim,ylim=thelim,xlab="Average height",ylab="Differnece \
in height")
points(z[1,1:2],z[2,1:2],col=2,pch=16)
1.png

他的做法其实很简单,就跟画MA图时一样,将x轴变成双胞胎的身高的平均数,把y轴变成双胞胎身高的差值。虽然经过了变换,但点与点之间的距离基本保持不变,比如图中的那两个红点。

这一过程在代数上其实就是将身高数据y乘以一个矩阵而已:

A = \,\begin{pmatrix}1/2&1/2\\1&-1\\\end{pmatrix}\implies z = A y

矩阵旋转(Rotations)

如果矩阵y的每一列是互相独立的随机变量,且标准差为\sigma,那么M(minus,差值)和A(add,和)的标准差就是(不知道是咋推导的):

\mbox{sd}[ Z_1 ] = \mbox{sd}[ (Y_1 + Y_2) / 2 ] = \frac{1}{\sqrt{2}} \sigma \mbox{sd}[ Z_2] = \mbox{sd}[ Y_1 - Y_2 ] = {\sqrt{2}} \sigma

因此,如果我们将矩阵A变成:

A = \frac{1}{\sqrt{2}}\begin{pmatrix}1&1\\1&-1\\\end{pmatrix}

那么矩阵Y列变量的标准差就与矩阵Z列变量的方差相等,故而两点之间的距离也就是相等的:

A <- 1/sqrt(2)*matrix(c(1,1,1,-1),2,2)
z <- A%*%y
d <- dist(t(y))
d2 <- dist(t(z))
mypar(1,1)
plot(as.numeric(d),as.numeric(d2)) #as.numeric turns distnaces into long vector abline(0,1,col=2)
1912101722.png

这种转换就叫做矩阵y的转换(rotation of y),转换前图片上的点是围绕着对角线分布的,而转换后,那些点则围绕在与x轴平行的一条线上分布(或者说是与矩阵z的第一个维度平行的一条直线),这就可以让我们达到既保持点与点之间的距离不变又让它维度降低的目的,现在我们就只用z的第一个维度去计算距离:

d3 = dist(z[1,]) ##distance computed using just first dimension 
mypar(1,1)
plot(as.numeric(d),as.numeric(d3))
abline(0,1)
1912101744.png

可以看到,仅拿一个维度计算出的距离与实际距离非常接近。这里作者还讲了一个概念:转换矩阵的第一个维度就是第一主成分

注意

统计学上通常会将个体设为行,将某种特征值设为列,和生物学上的习惯不太相同,所以咱们在别处看到的表达式什么的可能会不太一样。

原文链接

相关文章

  • PH525s series - PCA motivation

    降维(dimension reduction) 对于高纬度数据来说,因为维度过多,所以很难去画图,那如果我们可以通...

  • PCA算法推导

    PCA理解与应用。 Motivation PCA与Factor analysis非常相似,都是主要用于reduct...

  • 我所理解的SVD与PCA

    Motivation 之所以要写本文,是因为我先在矩阵课上学了SVD,后又在机器学习课上了解到了PCA,当时就觉得...

  • PH525x series - Running PCA and

    在PCA相关的章节最后,系列教程的作者又专门写了一章“在R中运行PCA和SVD”,使用的还是tissuesGene...

  • 7 ways to stay motivated

    - What is motivation? - How to find motivation? - How to ...

  • motivation

    Motivation is what gets you started. Habit is what keeps ...

  • The motivation

    Whatever you want to do, it's important to have a motivat...

  • Motivation

    I really want to repay my debt,that would make me most ...

  • 降维

    10.1 Motivation 10.1.1 Motivation one: Data Compression 如...

  • 2020-08-25--PCA降维01

    主要内容 PCA简介 使用梯度上升法解决PCA问题 1.PCA简介 PCA(Principal Component...

网友评论

      本文标题:PH525s series - PCA motivation

      本文链接:https://www.haomeiwen.com/subject/jayggctx.html