Machine learning 主成分分析,有多少个成分?

Machine learning 主成分分析,有多少个成分?,machine-learning,pca,Machine Learning,Pca,我一点也不懂PCA。PCA返回使每个特征的方差最大化的方向?我的意思是,它将为原始空间的每个特征返回一个组件,并且只有k最大的组件将用作新子空间的轴,对吗?所以实际上,如果我在50维空间,49个特征有很强的变化,我就可以传递到49维空间?我说的当然是简单的英语,不是正式的或技术性的 谢谢如果原始数据有50个维度,那么PCA将返回50个主成分。由您选择能够解释最大方差的主成分的子集k,通常至少是方差的90%。您使用的PCA软件通常会计算每个主成分所解释的方差,因此只需将方差相加,然后选择顶部的k,

我一点也不懂PCA。PCA返回使每个特征的方差最大化的方向?我的意思是,它将为原始空间的每个特征返回一个组件,并且只有
k
最大的组件将用作新子空间的轴,对吗?所以实际上,如果我在50维空间,49个特征有很强的变化,我就可以传递到49维空间?我说的当然是简单的英语,不是正式的或技术性的


谢谢

如果原始数据有50个维度,那么PCA将返回50个主成分。由您选择能够解释最大方差的主成分的子集
k
,通常至少是方差的90%。您使用的PCA软件通常会计算每个主成分所解释的方差,因此只需将方差相加,然后选择顶部的
k
,即可获得总方差的90%。见此:

一般来说,我们希望选择最小的K,即0.85到 解释了总方差的0.99(相当于85%至95%),其中这些值遵循PCA最佳实践

。。。当我们说主成分分析可以降维时,我们的意思是主成分分析 可以计算主成分,用户可以选择最小的 解释0.95方差的K个数。主观上 当K相对于原始值较小时,将得到令人满意的结果 特征数D


是的,但我的意思是,如果我们看协方差矩阵算法,返回的特征向量和特征值的数量是N,其中只有k个作为最终维度返回。那是什么?应该是数据矩阵X的列数。。。所以编辑:因此在2维中返回2个组件,作为特征数量。使用PCA分析输入特征,以发现所有顶部正交动态,这些动态显然不是来自输入特征的一对一映射。。。因此,您的50D输入功能可能会减少到仅3维。。。通常没有一个输入特征仅仅是PCA输出维度中的一个。。。想想一把铅笔扔到地上。。。在平面2D曲面上,您只有两个可能的维度,因此所有发送到PCA的铅笔将只产生由X和Y表示的这两个向量。。。每个PCA输出都是正交的-独立于其他输出。如果确认,每个特征都有一个组件,但PCA允许使用特征值对它们进行优先级排序!为了真正理解PCA,我建议您避免将数据扔进一些库调用中。。。相反,卷起袖子,从头开始写你自己的PCA。。。当然,以后当你在制作中使用其他人的库时,而不是在学习阶段。。。PCA算法并不神奇,您可以在几页代码中编写自己的算法。非常感谢。所以我选择的k个分量应该可以解释我们总数据的最大方差,对吗?我的意思是,取最好的k分量(方差方面)应该给我一个子空间,在这个子空间中,我们的新预测数据的方差是最大的?每个主分量解释了少量的方差,您的软件应该返回按方差递减排序的主分量。因此,如果你使用顶部主成分,那么
k
=1主成分会使跨越1个PC的子空间的方差最大化。如果你选择第一个
k
,那么那些
k
PC会使跨越
k
PC的方差最大化。这是因为PC是按排序递减顺序返回的。然后,您需要选择正确的
k
,该值达到总方差的90%。您能告诉我这一点吗?数据集为M=特征=700和N=观察次数=91如果我应用PCA,那么应该形成多少个组件?是N分量还是M分量?我知道将选择方差最大的组件,但在选择PCA创建或制作的组件数量之前?@Rabnawaz:您的PCA软件应返回与功能相同数量的主组件。所以在你的例子中,它应该返回M=700个主成分。由您选择它们的前k行。但是当我在R中运行它时,它应该返回一个91 X 91行的矩阵。从中,我必须从中选择前k个组件。我对它的符号感到困惑@stackoverflowuser2010