PCA中样本均值归零与前N个主成分问题
来源:7-6 scikit-learn中的PCA

管一三四
2018-11-11
一共请教老师2个问题
1.在老师自己写的PCA代码中已经包含的对均值归零的处理,那sklearn中的PCA是不是也自动包含了相应的操作?
另外我看了其他人关于归一化的提问,老师也明确指出在PCA之前是需要进行归一化的,但是视频识别手写数字的时候没有归一化处理,是不是因为手写数字的特征原本就是基于黑白像素规整的数据,所以不必归一化处理?
2.主成分解释方差中的这步操作pca = PCA(n_components=X_train.shape[1])
结果显示的把原来64维的数据降维成64个主成分是吗?这里的64列并非原本的数据了,对吗?
写回答
1回答
-
1.
是的。sklearn也包含。
PCA中对数据的归一化处理,是在PCA内部降维过程中“暂用”的,PCA没有真正的改变数据。所以,在具体调用我们封装的PCA之前,或者sklearn封装的PCA之前,是不需要对数据进行归一化处理的!这个过程在PCA的内部,是对外隐藏的!
对于对数据进行归一化,其原因在课程的4-7介绍了,就是为了统一数据的尺度!对于手写图像的数据,所有的数据已经在统一尺度下了(0-255的灰度值),所以,不进行归一化是ok的。
2
是的,我们将64维的数据按照PCA的法则转换成了64维数据,但是这个64维已经不是原来的64维了。现在的64维是按照PCA的标准,从“重要程度”由高到低,排列的新的64个维度:)
052019-10-23
相似问题