在PCA中行和列的重要性如何?

时间:2018-12-31 22:57:00

标签: python numpy data-science pca

因此,我有一个包含图片的数据集,其中每一列都包含一个可以重塑为32x32图片的向量。我的数据集的特定尺寸为以下1024 x20000。表示图像的20000个样本。

现在,当我研究不使用scikit-learn之类的东西的内置PCA的各种方法时,人们倾向于采用行的均值,并从原始行中减去结果矩阵,以获得协方差矩阵。即以下

A = (1024x20000) #dimensions of the numpy array
mean_rows = A.mean(0)
new_A = A-mean_rows

其他时候,人们倾向于获取列的平均值,然后从原始矩阵中减去该平均值。

A = (1024x20000) #dimensions of the numpy array
mean_rows = A.mean(1)
new_A = A-mean_rows

现在我的问题是,你什么时候应该做什么?说我有一个数据集作为示例,我将使用哪种方法?

浏览了各种网站,例如https://machinelearningmastery.com/calculate-principal-component-analysis-scratch-python/http://sebastianraschka.com/Articles/2014_pca_step_by_step.html

1 个答案:

答案 0 :(得分:0)

我认为您是在谈论将数据集标准化为零均值。您应该计算包含每个观测值的轴的平均值。

在您的示例中,您有20,000个观测值,每个观测值具有1,024个维,并且矩阵已将每个观测值布置为一列,因此您应该计算列的均值。

在代码中将是: A = A - A.mean(axis=0)