赫尔辛基大学AI基础教程:最近邻分类(4.2节)

AiTechYun

编辑:yxy

最近邻分类是最简单的分类方法之一。当对给定项分类时,它会找到与这个项最相似的训练数据项,并输出其标签。下面的图给出了一个示例。

在上图中,我们展示了一组训练数据项,其中一部分属于一个类(绿色),另一部分属于另一个类(蓝色)。此外,还有两个测试数据项(星星),我们将使用最近邻方法进行分类。

两个测试项目都归类为“绿色”类,因为他们最近邻的都是绿色的(参见上面的图(b))。

图中点的位置以某种方式表示项的属性。由于我们在二维平面上绘制图表 – 你可以沿两个独立的方向移动:上下或左右 – 这些项目有两个属性,我们可以将其用于比较。想象一下,例如在一家诊所代表病人的年龄和血糖水平。但是上面的图应该只是作为一个可视化工具来说明总体思想,即将类别值与相似性或邻近性(邻近度)联系起来。这种方法决不局限于两个维度,最近邻分类可以很容易地应用于更多属性的项。

我们“最近”的意思是什么?

一个有趣的问题涉及(除其他之外)最近邻分类器是实例之间距离或者说相似度的定义。在上图中,我们默认使用标准几何距离,技术上称为欧几里得距离。这只是表示如果点在一张纸上绘制(或显示在屏幕上),则可以通过测量长度来测量任意两个项之间的距离。

注意

定义’最近’

使用几何距离来确定哪一个是最近的项目可能并不总是合理的,甚至可能:例如,输入的类型可以是文本,我们不清楚如何用几何表示的方式画出项也不知道如何测量距离。因此,你应该根据具体情况选择距离度量标准。

在MNIST数字识别的案例中,测量图像相似性的一种常见方式是计算每个像素的匹配。换句话说,我们将每幅图像左上角的像素相互比较,如果它们的颜色越接近(灰色阴影),则两幅图像越相似。然后,我们还会比较每个图像右下角的像素以及中间的所有像素。这种技术对移动或缩放图像非常敏感:如果我们拍摄’1’图像,并将1向左或向右稍稍移动,则结果是两幅图像非常不同,因为黑色像素在两幅图像中位于不同的位置。幸运的是,MNIST数据已经通过图像居中进行了预处理,减轻了这个问题。

使用最近邻来预测用户行为

最近邻方法的应用的经典示例是预测AI应用中的用户行为(例如推荐系统)。

这个想法是使用非常简单的原则,即过去行为相似的用户将来也会有类似的行为。设想一个收集用户聆听行为数据的音乐推荐系统。假设你听过20世纪80年代的迪斯科音乐。有一天,服务提供商得到了一个很难找到的1980年迪斯科经典,并将它添加到音乐库中。系统现在需要预测你是否喜欢它。这样做的一种方式是使用由服务提供商的输入的关于流派,艺术家和其他元数据的信息。但是,这些信息相对稀缺和粗糙,只能给出粗略的预测。

然而目前推荐系统使用的不是手动输入元数据,而是协同过滤。所谓协同,它使用其他用户的数据来预测你的偏好。“过滤”一词指的是只有通过过滤器的内容才会推荐给你:你可能喜欢的内容会被通过,其他内容不会。(这种过滤器可能会导致所谓的过滤器泡沫(filter bubbles))

现在让我们说,其他已经听过80年代迪斯科音乐的用户喜欢这个新发布的歌,并且不断地听它。系统将识别你和其他80年代的迪斯科狂热者的有相似的过去行为,并且由于像你这种的用户喜欢新发布的歌,系统也会预测你本人也喜欢。因此它会显示在你的推荐列表的顶部。如果事实是没人喜欢新发布的歌,也许新发布的歌曲不是那么好,其他与你过去的行为相似的用户并不喜欢它。在这种情况下,系统不会向你推荐它,或者至少不会让它显示在你推荐列表的顶部。

以下练习进一步阐释这种思路。

练习14:购买同类产品的客户

在这个练习中,我们将为在线购物应用程序构建一个简单的推荐系统,用户的购买历史记录将被用于预测用户可能购买下一个产品。

我们有来自六位用户的数据。我们记录了他们最近购买的四件商品的历史记录以及购买这四件商品后购买的商品:

最近的一次购买是最右边一列,例如,在购买了t-shirt、flip flops、sunglasses和Moby Dick (小说)后,Ville购买了sunscreen。我们假设,在购买类似物品后,其他用户也可能购买sunscreen。

要应用最近邻的方法,我们需要定义最近邻的含义。这可以通过许多不同的方式实现(当然有好有坏)。我们使用购物历史记录通过计算两个用户已购买了多少物品来计算的相似性。

例如,Ville和Henrik的用户都购买了T恤,因此它们的相似性为1。注意,flip flops不被计算在内,因为在计算它们之间的相似之处时,我们不包括最近一次购买,它有其他用途。

我们的任务是预测买了以下产品的顾客Travis的下次购买:

您可以将Travis视为我们的测试数据,上面的6个用户构成了我们的训练数据。

按以下步骤进行:

  1. 计算Travis相对于训练数据中6个用户的相似度(通过将用户的类似购买数量加起来完成)。
  2. 计算了相似度后,通过选择计算出的相似度中的最大值来识别与Travis最相似的用户。
  3. 通过查看上一步中最相似用户的最新购买情况(表格中最右边的一列),预测Travis可能购买的下一个产品。

谁是与Travis最相似的用户?

特拉维斯预计购买什么?

在上面的例子中,我们只有六个用户的数据,我们的预测可能非常不可靠。但是,网上购物网站通常有数百万用户,他们产生的数据量非常大。在很多情况下,有一大堆用户的过去行为与你的行为非常相似,并且其购买历史可以很好地反应了你的兴趣。

这些预测也可以是自我实现预言,因为如果系统向你推荐一种产品,那么你更有可能购买它,这就使得评估它们的实际效果变得很棘手。同样的推荐系统也被用于向用户推荐音乐,电影,新闻和社交媒体内容。而在新闻和社交媒体的背景下,由这些系统产生的过滤可能导致过滤泡沫。

练习15:过滤泡沫

如上所述,推荐用户可能点击或喜欢的社交媒体新闻内容可能导致过滤泡沫,用户仅看到符合他们自己的价值观和观点的内容。

  1. 你认为过滤器泡沫有害吗?毕竟,它们是通过推荐用户喜欢的内容而创建的。如果有的话,会有哪些负面后果与过滤器泡沫有关?请随意从其他来源寻找更多信息。
  2. 你是否可以想办法避免过滤泡沫,同时还能够根据个人喜好推荐内容?尝试提出至少一个建议。你可以从其他渠道寻找创意,但我们也希望看到你自己的想法!

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2018-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【干货】如何快速高效调试机器学习系统?

【新智元导读】机器学习的“难”通常不在于数学,因为机器学习本身不需要很高强度的数学计算,而在于 debugging 难的问题。机器学习 debug 要比普通计算...

4169
来自专栏ATYUN订阅号

强化学习简介(第一部分)

强化学习是机器学习的一个方向,智能体通过执行某些操作并观察从这些操作中获得的奖励或者结果来学习在环境中行为。

1523
来自专栏AI研习社

利用好奇心做稀疏反馈任务的学习

AI 研习社按:近期,Unity 发布了版本 0.4 的机器学习智能体工具包(ML-Agent toolkit v0.4),其中最为突出的新功能是通过额外的基于...

1002
来自专栏ATYUN订阅号

Nvidia用合成数据集训练机器人拾取物体,胜过用真实数据训练的机器人

Nvidia的研究人员已经找到了一种方法,可以使用在虚拟环境中创建的数据来训练机器人在现实世界中拾取物体。用合成数据训练的卷积神经网络系统可以使用Baxter机...

1002
来自专栏AI研习社

分布式机器学习时代即将来临?谷歌推出“Federated Learning”

传统机器学习方法,需要把训练数据集中于某一台机器或是单个数据中心里。谷歌等云服务巨头还建设了规模庞大的云计算基础设施,来对数据进行处理。现在,为利用移动设备上的...

37211
来自专栏新智元

MIT 新系统用机器学习实现机器学习,合成数据较好代替真实数据

【新智元导读】使用真实数据所带来的隐私问题极大地阻碍了数据科学的发展。MIT 的本篇论文描述了一种自动创建合成数据的机器学习系统,这种合成数据与真实用户所产生的...

3675
来自专栏养码场

最适合练手30个的机器学习开源项目,赶紧收藏!

“ 场主,这篇文章炒鸡棒!内涵许多实战项目,很适合机器学习刚入门的小伙伴磨练来提升自己的技术水平。这些优质的开源项目都来自于GitHub上,排名十分靠前,反正很...

981
来自专栏AI科技大本营的专栏

最新机器学习开源项目Top10

【导读】过去一个月里,我们对近 1400 个机器学习项目进行了排名,并挑选出热度前 10 的项目。这份清单涵盖了包括 OpenAI 最新开发的 RND 算法、U...

731
来自专栏AI科技评论

Andrej Karpathy发文谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想

AI科技评论按:有越来越多的传统编程语言(C、C++、Java)等程序员开始学习机器学习/深度学习,而对机器学习/深度学习的研究人员来说,编程也是必备技巧。那么...

3295
来自专栏PPV课数据科学社区

机器学习项目中常见的误区

在最近的一次报告中,Ben Hamner向我们介绍了他和他的同事在Kaggle比赛中看到的一些机器学习项目的常见误区。 这个报告于2014年2月在Strate举...

3406

扫码关注云+社区

领取腾讯云代金券