在PCA中的向量化

我在进行主成分分析,需要帮助了解是否可以用数据矩阵表示从i到m的求和(X(i)*X(i)^T),直接通过两个矩阵的乘法来实现。

这是否可行,或者我需要使用for循环来完成?

目前我尝试了以下方法:

     sum=zeros(n,n);     for i=1:m     sum=sum+ X(i,:)*(X(i,:)^T);     end

我的目标是找到结果矩阵的主特征值。提前感谢您的帮助。


回答:

假设数据矩阵X的形状是(Dim, Num),你可以直接计算所有样本相关性的总和:

S = X*X'

在实现PCA时,别忘了将矩阵除以样本数量。

Sigma = (1/N)X*X'

如果你的数据均值为零,这也是协方差矩阵。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注