首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主成分分析?

主成分分析?
EN

Stack Overflow用户
提问于 2014-03-06 09:53:46
回答 2查看 614关注 0票数 0

我在怀疑PCA的东西。

例如,我有:

代码语言:javascript
复制
Data=100*3
substractdata=data-mean (the size will be same 100*3)
covariance=3*3
EigenVector=3*3
EigenValue=3*3

为了对我们的数据进行约简,我们必须消除基于k的特征值和特征向量的数目。

例如,k=2

所以…的数目

  • EigenValue将变成2*2
  • EigenVector = 2*2

1问:对吗?

然后我们必须将矩阵投影出来

代码语言:javascript
复制
project=EigenVector (which is 2*2) *substractdata (100*3)

第二个问题:我们如何计算它,因为EigenValue和子数据的大小不同?

还有另一个问题,

第三题:如果我们想要使用缩减数据,我们应该使用项目?

4ques:如果要显示主分量(这是特征向量的第一列和第二列),就必须将主分量与数据(初始数据)或子数据()一起绘制。

EN

回答 2

Stack Overflow用户

发布于 2014-03-06 10:36:04

你的特征值3*3矩阵是对角矩阵。特征值是沿对角线的标量。为了降低维数,您可以选择对应于两个最大特征值的k=2特征向量。所以你需要根据它们对应的特征值对你的特征向量进行排序,并选择两个最大特征值的特征向量。

在约简后,你会得到EigenValue = 2*2 (只有两个特征值)和EigenVector 3*2。

由于你的特征向量现在是3*2,你可以使用substractdata * eigenvector将数据投影到2-昏暗子空间。您需要在重建后添加平均返回,以显示数据和主成分。

票数 0
EN

Stack Overflow用户

发布于 2014-03-06 16:23:01

设X表示原始规范化的100x3数据矩阵。分解为X'*X=V*D*V',其中V是正交的,D是对角的3x3矩阵。其中S(奇异值对角线矩阵)是D的平方根,这也称为奇异值分解,可以直接计算,而不形成(数值坏的)乘积X'*X。

现在您需要U的前两列(所有相关的库都返回D。S具有递减对角线条目)。利用SVD,您可以直接访问它们,使用特征值分解U12=X*V12,即按照cyon,从包含V的前两列(右奇异向量)的V的子矩阵V12中得到包含前两列(左奇异向量)的U的子矩阵U12。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22220792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档