首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习主成分分析(PCA)进行降维

学习主成分分析(PCA)进行降维
EN

Stack Overflow用户
提问于 2017-10-12 06:34:20
回答 2查看 1.8K关注 0票数 8

我想要为降维和数据集成进行主成分分析。

我有3个特性(变量)和5个样本如下所示。我希望通过转换它们(计算第一台PC),将它们集成到一维(1个特征)输出中。我希望使用转换后的数据进行进一步的统计分析,因为我认为它显示了三个输入特性的“主要”特征。

我首先使用scikit编写了一个用python编写的测试代码,如下所示。简单的情况是,三个特征的值都是等价的。换句话说,我把PCA应用于三个相同的向量,0,1,2,1,0。

代码

代码语言:javascript
复制
import numpy as np
from sklearn.decomposition import PCA
pca = PCA(n_components=1)
samples = np.array([[0,0,0],[1,1,1],[2,2,2],[1,1,1],[0,0,0]])
pc1 = pca.fit_transform(samples)
print (pc1)

输出

代码语言:javascript
复制
[[-1.38564065]
[ 0.34641016]
[ 2.07846097]
[ 0.34641016]
[-1.38564065]]
  1. 降维后采用第1次主成分分析是否适合于数据集成?

1-2。例如,如果特征像功率等级,速度等级和功率与速度有大致的负相关,当它是一个2特征的情况。我想知道有“高功率”和“高速”的样品。很容易确定功率1、速度1优于功率2、速度2,但对于功率4、速度2与功率3、速度3这样的情况则很难确定。因此,我想将PCA应用于二维“功率与速度”数据集,并取第一PC,然后使用“第一PC”的等级。这种做法是否适当呢?

  1. 在这种情况下,我认为输出也应该是0,1,2,1,0,这与输入相同。但是产量是-1.38564065,0.34641016,2.07846097,0.34641016,-1.38564065。代码是否有任何问题,或者是正确的答案?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-15 13:50:19

  1. 是。它也被称为数据投影(到较低维)。
  2. 结果输出是中心和归一化根据列车数据。结果是正确的。

在只有5个样本的情况下,我认为运行任何统计方法是不明智的。如果你相信你的特征是一样的,只要检查维度之间的相关性接近1,那么你就可以忽略其他维度了。

票数 6
EN

Stack Overflow用户

发布于 2017-10-18 05:02:24

没有必要对这个小数据集使用PCA。对于PCA,您的数组应该进行缩放。

在任何情况下,你只有3维:你可以绘制点,用你的眼睛看,你可以计算距离(用最近的邻居算法)。

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

https://stackoverflow.com/questions/46702935

复制
相关文章

相似问题

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