乐趣区

关于机器学习:降维算法-奇异值分解SVD

动动发财的小手,点个赞吧!

1. 为什么降维

总所周知,在低维下,数据更容易解决,然而在通常状况下咱们的数据并不是如此,往往会有很多的特色,进而就会呈现很多问题:

  1. 多余的特色会影响或误导学习器
  2. 更多特色意味着更多参数须要调整,过拟合危险也越大
  3. 数据的维度可能只是虚高,实在维度可能比拟小
  4. 维度越少意味着训练越快,更多货色能够尝试,可能失去更好的后果
  5. 如果咱们想要可视化数据,就必须限度在两个或三个维度上

因而,咱们须要通过降维(dimensionality reduction)把无关或冗余的特色删掉。

  • 现有降维办法:

2. SVD 概述

奇怪值合成(Singular Value Decomposition)简称 SVD,次要作用是简化数据,提取信息。

利用 SVD 实现,咱们可能用小得多的数据集来示意原始数据集。这样做,实际上是去除了噪声和冗余信
息。当咱们试图节俭空间时,去除噪声和冗余信息就是很高尚的指标了,然而在这里咱们则是从数据中
抽取信息。基于这个视角,咱们就能够把 SVD 看成是 从有噪声数据中抽取相干特色

  • SVD 是如何从这些充斥着大量噪声的数据中抽取相干特色呢?

SVD 的公式:

这个公式中,U 和 V 都是正交矩阵,即:

原始数据集 A 是一个 m 行 n 列的矩阵,它被分解成了三个矩阵,别离是:

这个公式用到的就是矩阵合成技术。在线性代数中还有很多矩阵合成技术。矩阵合成能够将原始矩阵
示意成新的易于解决的模式,这种新模式是两个或多个矩阵的乘积。

不同的矩阵合成技术具备不同的性质,其中有些更适宜于某个利用,有些则更适宜于其余利用。最常
见的一种矩阵合成技术就是 SVD。

  • Example
  • Example

3. SVD 的利用

3.1. 信息检索

最早的 SVD 利用之一就是信息检索。利用 SVD 办法为隐形语义索引(Latent Semantic Indexing,LSI)或者隐形语义剖析(Latent Semantic Analysis,LSA)。

在 LSI 中,一个矩阵是由文档和词语组成的。当咱们在该矩阵上利用 SVD 时,就会构建出多个奇怪值。这些奇怪值代表了文档中的概念或主题,这一特点能够用于更高效的文档搜寻。在词语拼写错误时,只基于词语存在与否的简略搜寻办法会遇到问题。简略搜寻的另一个问题就是同义词的应用。这就是说,当咱们查找一个词时,其同义词所在的文档可能并不会匹配上。如果咱们从上千篇类似的文档中抽取出概念,那么同义词就会映射为同一概念。这样就能够大大提高文档搜寻的效率。

3.2. 举荐零碎

SVD 的另外一个利用就是举荐零碎。也是目前 SVD 最次要的一个利用简略版本的举荐零碎可能计算项或者人之间的类似度。更先进的办法则先利用 SVD 从数据中构建一个主题空间,而后再在该空间下计算其类似度。

本文由 mdnice 多平台公布

退出移动版