Apriori 算法:它是如何工作的? 品牌如何利用 Apriori 算法?
已发表: 2020-03-26想象一下你在超市,在你的脑海中,你有你想买的东西。 但你最终买的比你应该买的多得多。 这被称为冲动购买,品牌使用先验算法来利用这种现象。 如果您有兴趣了解有关数据科学算法的更多信息,请单击以了解更多信息。
这个算法是什么? 它是如何工作的? 您将在本文中找到这些问题的答案。 我们将首先看看这个算法是什么,然后看看它是如何工作的。
让我们开始。
目录
什么是 Apriori 算法?
先验算法为您提供频繁项集。 它的基础是先验性质,我们可以用以下方式解释:
假设您拥有的项目集的支持值小于必要的支持值。 然后,该项目集的子集的支持值也将低于所需的值。 因此,您不会将它们包括在计算中,因此可以节省大量空间。
支持值是指特定项集在事务中出现的次数。 由于在推荐系统中的应用,apriori 算法非常流行。 通常,您会将此算法应用于事务数据库,即事务数据库。 该算法也有许多实际应用。 您还应该熟悉关联规则挖掘以正确理解先验算法。
另请阅读:数据科学的先决条件。 它如何随时间变化?
Apriori 算法是如何工作的?
先验算法利用频繁项集生成关联规则。 它的原理很简单——频繁项集的子集也是频繁项集。 支持度大于阈值的项集是频繁项集。 考虑以下数据:
TID | 项目 |
T1 | 1 3 4 |
T2 | 2 3 5 |
T3 | 1 2 3 5 |
T4 | 2 5 |
T5 | 1 3 5 |
在第一次迭代中,假设支持值为 2,并使项集的大小为 1。现在相应地计算它们的支持值。 我们将丢弃支持值低于最小值的项目。 在此示例中,这将是第 4 项。
C1(第一次迭代的结果)
物品集 | 支持 |
{1} | 3 |
{2} | 3 |
{3} | 4 |
{4} | 1 |
{5} | 4 |
F1(在我们丢弃 {4} 之后)
物品集 | 支持 |
{1} | 3 |
{2} | 3 |
{3} | 4 |
{5} | 4 |
在第二次迭代中,我们将项目集的大小保持为 2,然后计算支持值。 我们将在本次迭代中使用表 F1 的所有组合。 我们将删除任何支持值小于 2 的项集。
C2(只有 F1 中存在的项目)
物品集 | 支持 |
{1,2} | 1 |
{1,3} | 3 |
{1,5} | 2 |
{2,3} | 2 |
{2,5} | 3 |
{3,5} | 3 |
F2(在我们删除支持值低于 2 的项目之后)
物品集 | 支持 |
{1,3} | 3 |
{1,5} | 2 |
{2,3} | 2 |
{2,5} | 3 |
{3,5} | 3 |

现在,我们将执行修剪。 在这种情况下,我们将 C3 的项集划分为子集,并删除支持值小于 2 的项集。
C3(在我们执行修剪之后)
物品集 | 在F2? |
{1,2,3}、{1,2}、{1,3}、{2,3} | 不 |
{1,2,5},{1,2},{1,5},{2,5} | 不 |
{1,3,5}、{1,5}、{1,3}、{3,5} | 是的 |
{2,3,5}、{2,3}、{2,5}、{3,5} | 是的 |
在第三次迭代中,我们将丢弃 {1,2,5} 和 {1,2,3},因为它们都有 {1,2}。 这是先验算法的主要影响。
F3(在我们丢弃 {1,2,5} 和 {1,2,3} 之后)
物品集 | 支持 |
{1,3,5} | 2 |
{2,3,5} | 2 |
在第四次迭代中,我们将使用 F3 的集合来创建 C4。 但是,由于 C4 的支持度值低于 2,我们不会继续,最终的项目集是 F3。
C3
物品集 | 支持 |
{1,2,3,5} | 1 |
我们有以下 F3 项集:
对于 I = {1,3,5},我们拥有的子集是 {5}, {3}, {1}, {3,5}, {1,5}, {1,3}
对于 I = {2,3,5},我们拥有的子集是 {5}, {3}, {2}, {3,5}, {2,5}, {2,3}
现在,我们将在项集 F3 上创建和应用规则。 为此,我们假设当前的最小置信度值为 60%。 对于 I 的子集 S,这是我们输出的规则:
- S -> (I,S)(这意味着 S 推荐 IS)
- 如果 support(I) / support(S) >= min_conf 值
让我们对我们拥有的第一个子集执行此操作,即 {1,3,5}
规则 1: {1,3} -> ({1,3,5} – {1,3}) 这意味着 1 & 3-> 5
置信度 = (1,3,5) 的支持值 / (1,3) 的支持值 = ⅔ = 66.66%
由于结果高于 60%,我们选择规则 1。
规则 2: {1,5} -> {(1,3,5) – {1,5}) 这意味着 1 & 5 -> 3
置信值 = (1,3,5) 的支持值 / (1,5) 的支持值 = 2/2 = 100%
由于结果高于 60%,我们选择规则 2。
规则 3: {3} -> ({1,3,5} – {3}) 这意味着 3 -> 1 & 5
置信值 = (1,3,5) 的支持值 / (3) 的支持值 = 2/4 = 50%
由于结果低于 60%,我们拒绝规则 3。
从世界顶尖大学学习数据科学课程。 加入我们的行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
通过上面的示例,您可以看到 Apriori 算法如何创建和应用规则。 对于我们拥有的第二个项目集 ({2,3,5}),您可以按照这些步骤操作。 尝试一下肯定会让您在理解算法接受哪些规则以及拒绝哪些规则方面获得丰富的经验。 该算法在其他地方保持不变,例如 Apriori 算法 Python。
结论
读完这篇文章,相信你会对这个算法及其应用非常熟悉。 由于它在推荐系统中的使用,它也变得非常流行。
有没有比 Apriori 算法更高效的算法?
ECLAT(等价类聚类和自下而上的格遍历)算法被发现是一种非常有用且流行的关联规则挖掘算法。 最重要的是,与 Apriori 算法相比,它也被认为是一种更高效、更快的算法。
Apriori 算法以水平方式工作,因为它模仿图的广度优先搜索,而 ECLAT 算法以垂直方式工作,通过模仿图的深度优先搜索。 与 Apriori 算法相比,这种垂直方法是 ECLAT 算法速度更快、效率更高的原因。
Apriori 算法有什么用途?
Apriori算法是数据挖掘中广泛使用的经典算法。 它对于从可用数据库中挖掘相关关联规则和频繁项集非常有用。 通常,必须处理包含大量事务的数据库的组织会使用此算法。 例如,先验算法可以很容易地确定客户经常从您的商店购买的商品。 借助该算法,可以极大地提高市场销售量。
除此之外,该算法还用于医疗保健领域,用于检测药物不良反应。 该算法生成关联规则,以确定可能导致药物不良反应的患者特征和药物的所有组合。
Apriori算法的优缺点是什么?
Apriori 算法很容易实现、理解并且可以非常有效地用于大型项目集。 有时,可能需要找到大量候选规则,而这个过程的计算量可能会有点大。 由于它必须遍历整个数据库,因此计算支持度也很昂贵。