如何将潜在语义索引用于特征选择?
我正在学习一些机器学习的知识,发现很多地方提到潜在语义索引(Latent Semantic Indexing,简称LSI)可以用来选择特征。有人能简单解释一下这是怎么回事吗?最好能从理论和带注释的代码两个方面来讲解一下。它和主成分分析(Principal Component Analysis,简称PCA)有什么不同呢?
我对用什么语言写的代码不太在意,只要我能理解代码和理论就行。
1 个回答
3
LSA的概念和PCA有点像,但它们的用途不同。
PCA的目标是把数据转换成新的,可能是维度更少的空间。举个例子,如果你想识别面孔,并使用640x480像素的图片(也就是307200维的向量),你可能会想把这个空间缩小到一个更合理的范围,这样计算起来更简单,数据也会更干净。PCA正是这样做的:它会“旋转”你高维空间的坐标轴,并给每个新坐标轴分配一个“权重”,这样你就可以丢掉那些不太重要的坐标轴。
LSA则是用来分析单词之间的语义相似性。它不能处理图片、银行数据或其他自定义数据集。它专门为文本处理设计,主要处理术语-文档矩阵。不过,这种矩阵通常被认为太大,所以它们会被缩减成低秩矩阵,这个过程和PCA非常相似(它们都使用奇异值分解)。不过,这里并没有进行特征选择。相反,你得到的是特征向量的转换。SVD会给你一个转换矩阵(我们称之为S
),当这个矩阵和输入向量x
相乘时,会得到一个新的向量x'
,这个新向量在一个更小的空间里,包含了更重要的基础特征。这个新的基础就是你的新特征。虽然这些特征不是被选择出来的,而是通过转换旧的、更大的基础得到的。
想了解更多关于LSA的细节和实现技巧,可以查看这篇文章。