回顾之前的案例:
数据集展现出如上结果,可是有没有可能数据集本身就是一条直线。换句话说,这个数据集展现的是在一根直线上下进行抖动式的分布,实际上这种抖动和这根直线本身的距离是噪音。这个噪音的产生原因可能有很多,如测量人员的粗心,测量手段有问题等等原因,都会使得我们在现实世界中采集的数据是有噪音的。
我们使用PCA进行降维然后在反转回原来的维度,经过这样一个操作,可以发现此时这个数据就成为了一条直线,比较一下这两个图,我们可以说,经过这样的操作,我们将原有数据集的噪音给消除了。当然,在实际情况下,我们不好说X_restore就是一点噪音都没有,也不好说原数据的所有的抖动全都是噪音,所以我们还是倾向于说从X到X_restore丢失了一些信息,不过我们丢失的信息很有可能有很大的一部分是噪音,这也解释了为什么我们有时候降维处理以后,反而识别率提高了。
手写识别的例子
(1)首先导入所需的数据集
from sklearn import datasets
digits = datasets.load_digits()
X = digits.data
y = digits.target
(2)给数据加上噪音