PCA 算法几何理解

PCA(Principal component analysis)

PCA 是一种基于多变量的降维技术,主要用于降维、可视化、去相关、分类、确定潜在因子、压缩和去噪音等方面。是特征工程中不可缺少的一部分,有利于我们构建更加适合模型的特征。

PCA 旨在找到数据中的主成分,并利用这 些主成分表征原始数据 ,从而达到降维的目的 。

PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。

PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。
第一个新坐标轴选择是原始数据中方差最大的方向,

第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,

第三个轴是与第1,2个轴正交的平面中方差最大的。

依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理

现在假设有一组数据如下:
在这里插入图片描述

  行代表了样例,列代表特征,这里有10个样例,每个样例两个特征。可以这样认为,有10篇文档,x是10篇文档中“learn”出现的TF-IDF,y是10篇文档中“study”出现的TF-IDF。

第一步,分别求x和y的平均值,然后对于所有的样例,都减去对应的均值。这里x的均值是1.81,y的均值是1.91,那么一个样例减去均值后即为(0.69,0.49),得到

在这里插入图片描述
第二步,求特征协方差矩阵,如果数据是3维,那么协方差矩阵是
在这里插入图片描述
这里只有x和y,求解得
在这里插入图片描述
对角线上分别是x和y的方差,非对角线上是协方差。协方差是衡量两个变量同时变化的变化程度。协方差大于0表示x和y若一个增,另一个也增;小于0表示一个增,一个减。如果x和y是统计独立的,那么二者之间的协方差就是0;但是协方差是0,并不能说明x和y是独立的。协方差绝对值越大,两者对彼此的影响越大,反之越小。协方差是没有单位的量,因此,如果同样的两个变量所采用的量纲发生变化,它们的协方差也会产生树枝上的变化。

第三步,求协方差的特征值和特征向量,得到

在这里插入图片描述
在这里插入图片描述
上面是两个特征值,下面是对应的特征向量,特征值0.0490833989对应特征向量为,这里的特征向量都归一化为单位向量。

第四步,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。

这里特征值只有两个,我们选择其中最大的那个,这里是1.28402771,对应的特征向量是(-0.677873399, -0.735178656)T。

第五步,将样本点投影到选取的特征向量上。假设样例数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(m*n),协方差矩阵是n*n,选取的k个特征向量组成的矩阵为EigenVectors(n*k)。那么投影后的数据FinalData为

FinalData(101) = DataAdjust(102矩阵) x 特征向量(-0.677873399, -0.735178656)T

得到的结果是

在这里插入图片描述
这样,就将原始样例的n维特征变成了k维,这k维就是原始特征在k维上的投影。

有了这个过程,我一直在疑问,几何意义上的 PCA 是如何实现的呢?
接下来十一组数据,二维,Gene1 和 Gene2 是两个坐标轴张成的平面,Mouse1-6 是6 个样本数据.生成的图像如右下图:
在这里插入图片描述

第一步,我们先计算出样本点的中心,也就是他们 两个坐标的值得平均值.之后每个样本点减去均值,也就是中心化,将样本数据中心移到了原点.虽然移动了数据,中心化后,但是数据的相互关系没有发生变化,最高的点还是最高的,最右边的点还是最右边的.这是一次整体平移.
在这里插入图片描述

在这里插入图片描述

第二步,我们从原点找一条直线,任意的,随机的找,如下图,下图虽然画了一条线,但实际上它只是我们寻找的直线的一条,
找到直线后,计算所有样本点到这个直线的投影点,之后计算投影点到原点的距离,我们要找到,所有点到这条直线的距离的平方的和.这个和要是最大的,也就是对应了方差最大的那个方向.

在这里插入图片描述
这个数据样本点到这条直线的距离(b)的平方的和最小,因为数据点到原点的距离(a)是不变的.也可以说是这个数据点到直线的投影的点到原点的距离©的距离的平方和最大.

在这里插入图片描述在这里插入图片描述现在数据有六个点,那我们找到这六个点的距离平方的和小的那个直线后.他就是 PC1,
在这里插入图片描述

找到这条直线后,我们就知道了斜率,他是一个穿过原点的直线,知道了斜率
就知道,一单位 Gene1 对应Gene2 的值,下图数字是 (4,1),他是原内容的数据,我这里没有修改,如果我们把图上的 4 换成有 1,就和我的意思一样了.这个坐标值,就是我们的特征向量.

在这里插入图片描述在这里插入图片描述
而d距离的平方的和叫做特征值.

接下来我们找 PC2:
方法和上面类似,只是我们要通过原点沿着垂直于PC1 去找,能够使数据点到这条直线的距离平方的和最小值.
由于我们的数据是 2 维,所以找到 PC2 也就到头了.如果我们是 n 维,可以一直找到 PCn.算出他们的特征值,特征向量.

求出
将PC1 和 PC2 作为新的坐标轴,旋转这两条直线,使得PC1 水平,则 PC2垂直于 PC1.
样本点在两个新坐标的位置,就是他们投影到这两条直线的位置的坐标.
在这里插入图片描述
我们可以看出 PC1 所承载的信息数量更大,而且我们也可以求出他的特征值也大.推广到 n 维,我们可以找到 n 的主成分.
然后我们根据他们所占比例,来确定降的维度.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值