求数据的主成分PCA
下面我们就正式用代码实现使用梯度上升法求解主成分。
以上就是使用程序的方式求出对于一系列样本点来说,相应的它的第一个主成分,也就是说,我们把所有的这些点都映射到这个新的轴上,保持了所有的样本相应的方差是最大的。当然,我们这里使用的是批量梯度上升法,在之前说过,对于批量梯度下降法来说,还可以使用随机梯度下降法和小批量的梯度下降法。同理,对于梯度上升法来说,我们也可以使用随机梯度上升法和小批量的梯度上升法。
不过这里只求出来了对于二维数据来说,相应的一个主成分,那么对于二维数据来说,映射到一维就已经足够了。想象一下,如果现在是一个1000维的数据,显然不能将其映射到一维上,我们可能就会将它映射到10维上,或者100维上。也就是说,我们除了要求出第一个主成分之外,我们相应的还要求出第二主成分,第三主成分…,我们现在的算法只是求出第一主成分所在的轴,那么如何求出后续其它的主成分呢?