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回答

liuyubobobo

2018-11-11

1.

是的。sklearn也包含。


PCA中对数据的归一化处理,是在PCA内部降维过程中“暂用”的,PCA没有真正的改变数据。所以,在具体调用我们封装的PCA之前,或者sklearn封装的PCA之前,是不需要对数据进行归一化处理的!这个过程在PCA的内部,是对外隐藏的!


对于对数据进行归一化,其原因在课程的4-7介绍了,就是为了统一数据的尺度!对于手写图像的数据,所有的数据已经在统一尺度下了(0-255的灰度值),所以,不进行归一化是ok的。


2

是的,我们将64维的数据按照PCA的法则转换成了64维数据,但是这个64维已经不是原来的64维了。现在的64维是按照PCA的标准,从“重要程度”由高到低,排列的新的64个维度:)

0
5
liuyubobobo
回复
慕九州7392119
demean 不是标准化。demean 只是均值归零,没有方差归一。
2019-10-23
共5条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程