安居多伦多
  • 多市生活
    • 多市生活
    • 加国税务
    • 旅游度假
    • 生活安全
    • 行车安全
    • 窍门集锦
  • 多市书苑
    • 热门
    • 小说
    • 教育
  • 家居信息
    • 家居信息
    • 房屋保养
    • 房屋贷款
    • 房屋租赁
    • 房屋建筑
    • 房前屋后
    • 家居风水
  • 健康保健
    • 健康保健
    • 饮食起居
    • 食品安全
    • 健身锻炼
  • 书苑账户
    • 书苑登入
    • 书苑注册
    • 忘记书苑密码
    • 书苑账户信息
    • 关于我们
    • 联系我们
    • 隐私政策
多伦多书苑
在线书籍:随时阅读,随身听书。
所有书籍 | 人文 | 人物 | 人生 | 健康 | 儿童 | 医学 | 历史 | 历史 | 古典 | 哲学宗教 | 商业 | 外国 | 寓言 | 小说 | 教育 | 风水 | 管理 | 语言 |
为使本公益资源网站能继续提供免费阅读,请勿屏蔽广告。谢谢!报告弹出广告被滥用。
  1. 安居多伦多
  2. 网上书苑
  3. IT
  4. AI
  5. 机器学习实战

机器学习实战

2022-03-09 0人点赞 0条评论
点赞
x
语速1.0: 2.0
进度0:

上一页   |   返回目录   |   下一页

14.1 SVD的应用

奇异值分解

优点:简化数据,去除噪声,提高算法的结果。

缺点:数据的转换可能难以理解。

适用数据类型:数值型数据。

利用SVD实现,我们能够用小得多的数据集来表示原始数据集。这样做,实际上是去除了噪声和冗余信息。当我们试图节省空间时,去除噪声和冗余信息就是很崇高的目标了,但是在这里我们则是从数据中抽取信息。基于这个视角,我们就可以把SVD看成是从有噪声的数据中抽取相关特征。如果这一点听来奇怪,也不必担心,我们后面会给出若干SVD应用的场景和方法,解释它的威力。

首先,我们会介绍SVD是如何通过隐性语义索引应用于搜索和信息检索领域的。然后,我们再介绍SVD在推荐系统中的应用。

14.1.1 隐性语义索引

SVD的历史已经超过上百个年头,但是最近几十年随着计算机的使用,我们发现了其更多的使用价值。最早的SVD应用之一就是信息检索。我们称利用SVD的方法为隐性语义索引(Latent Semantic Indexing,LSI)或隐性语义分析(Latent Semantic Analysis,LSA)。

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

14.1.2 推荐系统

SVD的另一个应用就是推荐系统。简单版本的推荐系统能够计算项或者人之间的相似度。更先进的方法则先利用SVD从数据中构建一个主题空间,然后再在该空间下计算其相似度。考虑图14-1中给出的矩阵,它是由餐馆的菜和品菜师对这些菜的意见构成的。品菜师可以采用1到5之间的任意一个整数来对菜评级。如果品菜师没有尝过某道菜,则评级为0。

餐馆的菜及其评级的数据

图14-1 餐馆的菜及其评级的数据。对此矩阵进行SVD处理则可以将数据压缩到若干概念中去。在右边的矩阵当中,标出了一个概念。

我们对上述矩阵进行SVD处理,会得到两个奇异值(读者如果不信可以自己试试)。因此,就会仿佛有两个概念或主题与此数据集相关联。我们看看能否通过观察图中的0来找到这个矩阵的具体概念。观察一下右图的阴影部分,看起来Ed、Peter和Tracy对“烤牛肉”和“手撕猪肉”进行了评级,同时这三人未对其他菜评级。烤牛肉和手撕猪肉都是美式烧烤餐馆才有的菜,其他菜则在日式餐馆才有。

我们可以把奇异值想象成一个新空间。与图14-1中的矩阵给出的五维或者七维不同,我们最终的矩阵只有二维。那么这二维分别是什么呢?它们能告诉我们数据的什么信息?这二维分别对应图中给出的两个组,右图中已经标示出了其中的一个组。我们可以基于每个组的共同特征来命名这二维,比如我们得到的美式BBQ和日式食品这二维。

如何才能将原始数据变换到上述新空间中呢?下一节我们将会进一步详细地介绍SVD,届时将会了解到SVD是如何得到U和Vᵀ两个矩阵的。Vᵀ矩阵会将用户映射到BBQ/日式食品空间去。类似地,U矩阵会将餐馆的菜映射到BBQ/日式食品空间去。真实的数据通常不会像图14-1中的矩阵那样稠密或整齐,这里如此只是为了便于说明问题。

推荐引擎中可能会有噪声数据,比如某个人对某些菜的评级就可能存在噪声,并且推荐系统也可以将数据抽取为这些基本主题。基于这些主题,推荐系统就能取得比原始数据更好的推荐效果。在2006年末,电影公司Netflix曾经举办了一个奖金为100万美元的大赛,这笔奖金会颁给比当时最好系统还要好10%的推荐系统的参赛者。最后的获奖者就使用了SVD¹。

下一节将介绍SVD的一些背景材料,接着给出利用Python的NumPy实现SVD的过程。然后,我们将进一步深入讨论推荐引擎。当对推荐引擎有相当的了解之后,我们就会利用SVD构建一个推荐系统。

SVD是矩阵分解的一种类型,而矩阵分解是将数据矩阵分解为多个独立部分的过程。接下来我们首先介绍矩阵分解。


  1. Yehuda Koren, “The BellKor Solution to the Netflix Grand Prize,” August 2009;http://www.netflixprize.com/assets/GrandPrize2009_BPC_BellKor.pdf.

上一页   |   返回目录   |   下一页

类似书籍

Python机器学习实践指南
Python机器学习实践指南
Python机器学习——预测分析核心算法
Python机器学习——预测分析核心算法
Python机器学习手册:从数据预处理到深度学习
Python机器学习手册:从数据预处理到深度学习
Author:

标签: 暂无
最后更新:2022-03-09
< 上一篇

本书评论

取消回复

©2021 安居多伦多 - 版权所有

本站由 好事来 Hostlike.com 提供技术支持。