9.5 对稀疏数据进行特征降维
问题描述
对稀疏特征矩阵进行特征降维操作。
解决方案
使用截断奇异值分解(Truncated Singular Value Decomposition,TSVD)
法:
讨论
TSVD与PCA类似,事实上PCA常常在某一个步骤中使用非截断奇异值分解(SVD)法。在常规SVD中,对于给定的d个特征,SVD将创建d×d维的因子矩阵,而TSVD将返回n×n维的因子矩阵,其中n是预先指定的参数。与PCA相比,TSVD的优势在于它适用于稀疏特征矩阵。
但是TSVD有一个问题,其输出值的符号会在多次拟合中不断变化(这是由其使用随机数生成器的方式决定的)。一个简单的解决方法是对每个预处理管道只使用一次fit方法,然后多次使用transform方法。
与LDA一样,TSVD需要通过参数n_components指定想要输出的特征(成分)数。那么,输出的特征数是多少时可以保证效果最佳?寻找最佳特征数的一种方法是在模型选择时将n_components作为超参数进行优化(即选择产生最佳训练模型的n_components值)。由于TSVD提供了每个成分保留的原始特征矩阵信息的比例,因而我们也可以按照要保留的信息量(常用的值是95%或99%)选择成分。在本解决方案中,前三个输出的成分能够保留大约30%的原始数据信息:
可以创建一个运行TSVD的函数,使这个过程自动化(将参数n_components设置为原始特征数量减1),然后计算能够保留所需信息量的特征数量。
延伸阅读
● scikit-learn文档:TruncatedSVD(http://bit.ly/2GTfxvh)
本书评论