大规模无监督学习方法解析
1. 基于SVD的PCA的局限性
基于奇异值分解(SVD)的主成分分析(PCA)在可扩展性方面存在显著问题。当特征数量线性增加时,算法的训练时间会呈指数级增长。处理包含数百个观测值的矩阵所需的时间会变得很长,并且内存消耗会使普通家用计算机(内存为16GB或更少)难以处理该问题。因此,基于SVD的PCA并非大数据问题的理想解决方案。不过近年来,出现了许多替代方法,下面将对这些方法进行简要介绍。
2. 随机PCA(Randomized PCA)
随机PCA实际上应称为基于随机SVD的PCA,但现在“随机PCA”这个名称更为常用。其核心思想在于主成分存在冗余性。如果该方法的目标是降维,那么输出通常只需要少数几个向量(即K个主向量)。通过专注于寻找最佳的K个主向量,该算法的可扩展性得到了提升。需要注意的是,K(即要输出的主成分数量)是一个关键参数。如果K设置得过大,其性能不会比传统PCA更好;如果K设置得过小,得到的向量所能解释的方差会过低。
在随机PCA中,我们希望找到包含观测值的矩阵X的近似矩阵,同时还希望得到具有K个正交列的矩阵Q(这些列将被称为主成分)。利用SVD,我们可以对小矩阵进行分解,这个过程不会花费太长时间。通过一系列数学操作,我们可以得到基于低秩SVD的X的截断近似。
下面是随机PCA的代码示例:
from sklearn.decomposition import RandomizedPCA
check_scalability(RandomizedPCA(None))
当进行全(无损
超级会员免费看
订阅专栏 解锁全文
1218

被折叠的 条评论
为什么被折叠?



