因此,我有一个包含图片的数据集,其中每一列都包含一个可以重塑为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
答案 0 :(得分:0)
我认为您是在谈论将数据集标准化为零均值。您应该计算包含每个观测值的轴的平均值。
在您的示例中,您有20,000个观测值,每个观测值具有1,024个维,并且矩阵已将每个观测值布置为一列,因此您应该计算列的均值。
在代码中将是:
A = A - A.mean(axis=0)