每个映射的坐标轴方向向量w有n个元素,是不是说w是n维空间的一个向量?

来源:7-6 scikit-learn中的PCA

相声皇后粉丝后援会

2018-05-01

在其他问题下看到了老师的如下回答:可以自己设置一个数据量比较少(比如只有5个点)的三维数据,先求第一主成分->映射(此时所有点将在一个平面上)->求第二主成分->映射(此时所有点将在一条直线上)->求第三主成分(剩下的在一条直线上的所有点所在的直线就是第三主成分)。这是一个逐步降维,将数据慢慢分布在低一维的平面的过程。

但是对于一个有n维特征的数据来说,每次映射的坐标轴的方向向量w有n个元素,是不是说w是n维空间的一个向量?这样的话即使逐步降维,得到的每个w也是有n个元素,如何理解数据逐渐分布在低一维平面上呢?

写回答

1回答

liuyubobobo

2018-05-01

是的,w是n维空间的向量。PCA求出的每一个坐标轴,都是在n维空间中的。n维空间的坐标轴,就是需要n个数字来描述。


回到三维数据的例子中,也就是n=3。我们在三维空间中,求出的三个主成分,每个主成分也是一个三维向量(n维向量)。我们求出第一主成分,这个主成分也是一个三维向量(n维向量)。我们将所有数据映射以后,所有的数据都在一个平面中,这个平面也是在三维空间里的。我们再求第二个主成分,这个主成分也是一个三维向量(n维向量),我们再将所有数据映射以后,所有的数据都在一条直线上,这条直线也是在三维空间中的。是的,逐步降维,其实所有的数据还在三维空间中。


但是,我们的数据如果只是一条三维空间的直线,我们就完全可以直接使用一个一维空间的直线来表达,而不需要动用三维空间。所以,我们是要找到一个从三维空间到一维空间的空间映射。推而广之,我们要找的是一个从高维空间到低维空间的映射。


我们在上一小节,求出来了components_,就是这个映射。components_描述的是从一个n维空间到另一个k维空间的映射。他是一个n*k的矩阵,注意:他的每一列都是一个n维向量,描述在原来n维空间的一个坐标轴。但是,我们只使用k根这样的坐标轴,就构成了一个在原来的n维空间中的一个子空间,这个子空间只有k个维度。

2
6
liuyubobobo
回复
相声皇后粉丝后援会
参见:http://coding.imooc.com/learn/questiondetail/55740.html
2018-05-02
共6条回复

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

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

5765 学习 · 2428 问题

查看课程