drools规则中调用其它规则_简化机器学习中的关联规则

本文介绍了关联规则如何在推荐引擎中工作,通过实际的电影观看数据集展示了如何计算支持度、置信度和提升,揭示了关联规则在理解和优化推荐系统中的作用。
摘要由CSDN通过智能技术生成

你可能遇到在超市结账时,POS机自动为你打印优惠券。或者曾经观看过您的流媒体服务为您生成的视频播放列表。或者去网上购物时看到标有“你可能会感兴趣......”的产品清单中确实包含了你感兴趣的一些东西。

今天推荐引擎会获取有关您,类似消费者和可用产品的数据,并使用它来确定您可能感兴趣的内容,从而提供这些优惠券,播放列表和建议。

推荐引擎可能非常复杂。 例如,Netflix从2006年到2009年举办了100万美元的竞赛,以提高他们的电影推荐引擎的性能。 超过5,000支队伍参加。 获胜团队将107种不同算法或技术的结果相结合,来实现10%的改进并获得奖金。

因此,有许多不同的方法来构建推荐引擎,并且大多数方法将结合多种技术或方法。 在本文中,我只想介绍一种方法,即关联规则,它们相当容易理解,并且只需要最低限度的数学技能。 如果你可以使用简单的百分比,那么没有比下面更复杂的了。

69c8049f9c19c33ce9a61f500a8c8b47.png

现实世界中的关联规则

概念上关联规则是一种非常简单的技术。 最终结果是一个或多个形式的陈述:“如果发生这种情况,则可能发生以下情况。”在规则中,“if”部分称为先行,“then”部分称为结果。 请记住这两个术语,因为它们将在下面的描述中出现。让我们从食品购物开始,因为关联规则经常用于分析购物车的内容。

当您制作购物清单时,您可能会购买混合的食品储藏室以及您计划准备的特定餐食或菜肴的配料。 想象一下,你打算今天晚上烧一份红烧肉。 你除了购买五花肉,你还需要冰糖、老抽、姜、料酒、生抽、香叶、干辣椒、八角、葱、蒜等等。

5a0f6c93a7bbe5f69a2a59d73aae3b1e.png

如果我们查看人们购买的各种购物篮,我们可以开始看到一些共同点。 “如果有人买五花肉,或许他家里相应的调味品已经足够,但是其中一些快用完了。那么他们更有可能购买这些必须的调味品,如老抽、姜、料酒、生抽等”。有了这些知识,超级市场可以在收银台打印一张你购买这些调味品的优惠券,希望你能回来购买。

虽然五花肉可能意味着老抽、姜、料酒、生抽,但反过来可能并非如此。例如,购买老抽、姜、料酒、生抽的人可能会想要制作的是五香牛肉,在这种情况下,他们比五花肉相比更有可能购买一瓶酒精饮料。但通过正确的分析,可以找到管理哪些产品更可能相互关联的规则。因此,名称“关联规则”。

让我们用一些实数来说明这个过程。为此,我们将从购买日常杂货转向观看电影的情况。

关联规则如何在机器学习中正常工作?

此算法的起点是一组事务。 它们可能是传统的购买交易,但也可能包括诸如“将产品放入在线购物车”,“点击网络广告”或者是以下的“观看电影”等活动。

我将使用这个非常简短的五人电影观看习惯数据集。 我已将它们匿名化以隐藏它们的身份。 在这里,您可以看到每个人和他们观看的电影列表,这里用1-5表示的数字。

用户

观看过的电影

A

1, 2, 4

B

1, 3

C

1, 4

D

2, 3, 4

E

3, 4

首先要突出的是第一和第三个用户都观看了电影1和4.根据这些数据,规则将是“如果有人看电影号1,那么他们很可能看电影4号。“你需要理解我上面隐藏的两个术语:电影1是先行者,电影4是结果。让我们更详细地看一下这条规则。

264f83a11211044ea1fdde7fe9a2c167.png

这个规则有用吗?有5个用户中有2个用户同时观看了电影1和4.所以我们可以说这个规则支持40%(5个用户中有2个)。我们有多自信它是一个可靠的指标?三位用户观看了1号电影,但其中只有2位观看了3号电影。对此规则的信心为67%。

请注意,如果你颠倒了订单规则(或交换了前提条件),我们也可以说“如果有人看过电影号码4,那么他们很可能会看电影号码1”。但是,虽然支持也是40 %,信心变化成了只有50%(请查看上表)。这与上面的食物例子相同。

这些指标意味着什么呢? 只有5个用户和5部电影可能很难看到,但想象这是数百万用户和数千部电影的一部分。 如果支持率非常低,则基本上意味着此规则不适用于许多客户。 例如,这可能意味着观看一些不起眼的70年代纪录片的人也将观看画面模糊的80年代电影。 在电影推荐空间中,这将转化为可能不经常使用的利基规则,但对于非常小的客户群可能非常有价值。 但是,如果您使用规则在超市的货架上找到最佳的产品位置,许多低支持规则将导致显示非常分散的一组数据显示。 在这种类型的应用程序中,您可以设置支持和丢弃规则的阈值,让这些规则不符合最低要求。

如何理解关联规则的信心

信心其实更容易理解。如果有一条规则链接两部电影,但信心非常低,那么它只是意味着大部分时间他们观看第一部电影,他们实际上不会观看第二部电影。为了提出建议或预测,您宁愿制定一条您有信心的规则。您还可以使用最小阈值置信度,忽略或丢弃低于特定阈值的规则。

再看一下上面的第一条规则:如果有人看电影1,他们也会看电影4.这里的信心是67%,这是相当不错的。但是看一下表格的其余部分。无论如何,五分之四的用户观看了电影号码4。如果我们对他们的其他电影偏好一无所知,我们知道他们有80%的机会观看电影4.所以尽管有67%的信心,我们发现的这一条规则实际上没有用处:看过电影1的人实际上是观看电影4的可能性比随机选择的人少。幸运的是,有一种方法可以考虑到这一点。它被称为“提升“Lift。

关联规则中的”提升“

提升用于在与整个数据集进行比较时测量规则的性能。 在上面的示例中,我们希望将“观看电影1和电影4”的概率与整个数据集中出现的“观看电影4”的概率进行比较。 正如您所料,有一个提升公式:

提升等于给定前因的后果概率(这只是该规则的置信度)除以随后在整个数据集中发生的概率(这是对结果的支持),或者更简洁:

Lift = confidence / support(consequent)

在这个例子中,假设观看了电影1,电影4的概率只是第一条规则的置信度:67%或0.67。 观看电影4的整个数据集中的一些随机人(在这个简单示例中只有5个用户)的概率是80%或0.8。 将0.67除以0.8得出大约0.84的提升。

一般来说,如果你的提升小于1,它会显示一个规则,这个规则不仅仅是随机选择一个用户,这就像我在本节第一段中解释的那样。 如果您的提升大约为1,那么它表示两个独立的事件,例如,观看一部电影不会影响观看另一部电影的可能性。 升力值大于1表明先行词确实会影响发现结果。 换句话说,这是一个有用的规则。

测试和分箱关联规则

我将完成上面简单示例的一些提示和扩展。

首先,您如何测试规则的准确性?您可以使用我之前为分类概述的相同方法:使用可用事务的子集构建规则,然后针对其余事务测试这些规则的性能。当然,如果用于向实际用户提供建议,则应监控其性能。

我们使用了一个简单的规则:“如果用户观看了电影1,那么他们很可能会看电影4.”这被称为长度为2的规则,因为它包含两个元素。当然,我们可以有更复杂的规则:“如果用户观看电影1,2和3,那么他们很可能会看电影4”是一个长度为4的规则。或者如果你想回到杂货店买一个类似的规则,购买五花肉的人很可能想要一些冰糖。

一些流媒体网站要求用户按照1-5或1-10的等级对他们观看的内容进行评分。如果我们有这些信息,我们就无法直接使用数值;我们想要“回答”答案。例如,我们可能会说7-10的分数被认为是“高”等等。然后,规则可以包含“观看的电影A并将其评级为高”。

分箱的概念适用于最后一个例子,它使我们远离电影和购物到机器,因为这些规则可能具有更广泛的用途。

想象一下,你有责任维护一些不时破坏的机器。 您有许多传感器数据和有关其操作的其他信息,并且您已捕获了多个故障。 原则上你可以将机器故障视为一个结果,并寻找前因。 您必须以某种方式对传感器数据进行分类。 原则上,您可以使用关联规则来查找与故障相关的条件并采取纠正措施,也称为根本原因分析。 用诊断代替机械故障,甚至可以使用某种形式的关联规则和医疗数据。

最后你可以点击阅读原文来下载免费的电子书 “神秘的机器学习”,喜欢你会喜欢!

d2db21e6e29a28f0f08e682040b8eaf3.png

c32776e69b64158725be46011240164f.gif

喜欢就点好看吧!:-)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值