关联规则挖掘算法综述

合集下载

大数据分析中的关联规则挖掘算法

大数据分析中的关联规则挖掘算法

大数据分析中的关联规则挖掘算法在大数据时代,我们面对海量的数据,如何从中发现有效的关联规则成为了一项重要的任务。

关联规则挖掘算法的应用范围非常广泛,包括电子商务、市场营销、医疗健康等各个领域。

本文将介绍大数据分析中的关联规则挖掘算法,并探讨其在实际应用中的意义与挑战。

一、关联规则挖掘算法概述关联规则挖掘算法旨在寻找数据中的频繁项集和关联规则。

频繁项集是指在数据集中频繁出现的项的集合,而关联规则是指不同项之间的关联关系。

关联规则通常以“如果...,那么...”的形式呈现,可以用来描述数据中的关联关系和潜在规律。

关联规则挖掘算法主要包括Apriori算法、FP-growth算法等。

Apriori算法是最经典的关联规则挖掘算法之一,它通过候选项集的逐层生成和剪枝来找到频繁项集。

FP-growth算法则是一种高效的关联规则挖掘算法,它采用了频繁模式树的数据结构,通过一次构建树的过程避免了多次扫描数据集的过程,提高了算法的效率。

二、关联规则挖掘算法的意义关联规则挖掘算法在大数据分析中具有重要的意义。

首先,它可以帮助我们发现隐藏在数据背后的规律和趋势,为决策提供依据。

例如,在电子商务中,关联规则挖掘可以发现用户的购买行为和偏好,为推荐系统提供个性化的推荐。

其次,关联规则挖掘还可以发现数据中的异常或突变,用于异常检测和预警。

例如,在医疗领域,通过挖掘患者的病历数据,可以提前发现病情变化或者预测患者的风险。

三、大数据环境下的关联规则挖掘算法挑战在大数据环境下,关联规则挖掘算法面临一些挑战。

首先,数据量巨大,如何高效地处理和挖掘大规模数据成为了难点。

传统的算法可能面临计算性能、内存消耗等问题,因此需要设计高效的算法和数据结构。

其次,数据的多样性和复杂性增加了挖掘规则的难度。

不同领域的数据具有不同的特点和规律,需要定制化的挖掘算法和策略。

此外,数据隐私和安全问题也需要考虑。

在处理敏感数据时,需要保证数据的安全性和隐私性。

关联规则挖掘综述

关联规则挖掘综述

关联规则挖掘综述关联规则挖掘是数据挖掘中的一种重要技术,它可以通过分析数据集中的项之间的关系,发现其中的规律和模式。

在实际应用中,关联规则挖掘可以帮助企业和组织发现消费者的购买习惯、市场趋势、产品组合等信息,从而更好地制定营销策略和提高销售额。

关联规则挖掘的基本思想是通过计算支持度和置信度来确定项之间的关联程度。

支持度指的是在数据集中同时出现两个或多个项的频率,而置信度则是指在出现一个项的情况下,另一个项出现的概率。

通过设定支持度和置信度的阈值,可以筛选出具有一定关联程度的项集,从而发现其中的规律和模式。

关联规则挖掘的算法主要包括Apriori算法、FP-Growth算法和Eclat 算法等。

其中,Apriori算法是最早被提出的关联规则挖掘算法之一,它通过逐层扫描数据集来生成频繁项集。

FP-Growth算法则是一种基于树结构的算法,它通过构建FP树来快速发现频繁项集。

Eclat算法则是一种基于垂直数据格式的算法,它通过交换和合并项集来发现频繁项集。

除了基本的关联规则挖掘算法外,还有一些扩展算法和改进算法。

例如,基于时间序列的关联规则挖掘算法可以用于分析时间序列数据中的项之间的关系;基于多层次关联规则挖掘算法可以用于分析多个层次之间的关系;基于模糊关联规则挖掘算法可以用于处理数据集中存在模糊关系的情况。

关联规则挖掘在实际应用中有着广泛的应用。

例如,在零售业中,可以通过关联规则挖掘来发现消费者的购买习惯和偏好,从而制定更加精准的营销策略;在医疗领域中,可以通过关联规则挖掘来发现疾病之间的关联性,从而更好地预防和治疗疾病;在金融领域中,可以通过关联规则挖掘来发现不同金融产品之间的关系,从而更好地进行风险控制和资产配置。

总之,关联规则挖掘是一种重要的数据挖掘技术,它可以帮助企业和组织发现数据集中的规律和模式,从而更好地制定营销策略和提高业务效率。

随着数据量的不断增加和数据挖掘技术的不断发展,关联规则挖掘将在更多的领域中得到广泛的应用。

数据挖掘中的关联规则挖掘算法

数据挖掘中的关联规则挖掘算法

数据挖掘中的关联规则挖掘算法随着大数据时代的来临,数据挖掘作为一种数据分析的方法,被越来越多的人所重视。

其中关联规则挖掘算法是其中的一种,今天我们就来探讨一下这种算法。

一、什么是关联规则挖掘算法?关联规则挖掘算法是一种在数据中发现变量之间关系的方法,其中涉及两个或两个以上的变量之间的关联。

例如,购物篮分析可以使用该算法,从中分析出消费者经常购买的商品组合。

该算法通常用于市场营销、产品建议等领域。

二、关联规则挖掘算法的优点1. 可以在大规模数据集上进行运算关联规则挖掘算法可以在大规模数据集上运算,因为它不需要预处理数据。

这种优点使得它在实践中非常有用,可以帮助人们更好地了解顾客或消费者行为。

2. 可以快速确定规则该算法可以快速确定规则,因为它可以使用较少的比较来确定规则。

这种快速的计算和确定规则的能力可以减轻与该算法的实施相关的工作。

3. 可以为制定实用的营销策略提供支持关联规则挖掘算法可以为制定实用的营销策略提供支持,因为它可以确定消费者对不同产品或服务的偏好和与之相关的属性。

这种知识可以为决策者制定更好的营销策略提供支持。

三、如何使用关联规则挖掘算法?1. 找到数据首先,为了使用关联规则挖掘算法,需要找到有关变量之间关系的数据。

2. 清洗数据然后需要对数据进行清洗。

清洗数据可以去掉无用的信息,以及错误的信息。

3. 建立模型接着需要建立模型。

建立模型包括确定变量和规则。

此过程可以使用统计学和机器学习的方法。

4. 评估模型一旦模型确定后,需要评估模型。

评估模型的目的是确定模型的准确性和应用范围。

一般使用统计学方法做模型评估。

5. 应用模型最后需要应用模型。

应用模型是指在实际数据中测试模型,判断该模型是否是有效的。

四、总结关联规则挖掘算法是一种用于确定数据集中变量之间关系的算法。

该算法在大规模数据集上拥有出色的表现,可以快速确定规则,在制定营销策略时非常有用。

使用关联规则挖掘算法的过程可以分为找到数据,清洗数据,建立模型,评估模型和应用模型。

数据挖掘中的关联规则挖掘算法

数据挖掘中的关联规则挖掘算法

数据挖掘中的关联规则挖掘算法数据挖掘是指通过对数据进行分析、挖掘,从中发现有价值的信息和模式的一种过程。

随着互联网和大数据技术的快速发展,数据挖掘在商业、科学、教育、医疗等各个领域的应用越来越广泛,成为了人们获取宝贵信息的有力武器。

关联规则挖掘算法,作为数据挖掘中的一个重要分支,尤其在电商、超市等领域中被广泛应用。

一、关联规则的定义关联规则是指在一个数据集合中,两种或多种物品之间的共现关系。

在超市购物中,如果一位顾客购买了咖啡,那么他很可能会购买糖和奶精。

那么,这里的“咖啡”、“糖”、“奶精”就是一组关联规则。

二、关联规则挖掘算法关联规则挖掘算法是一种用于自动分析数据集的算法。

它通过对数据集进行扫描,找出其中频繁出现的物品集合,进而挖掘出物品之间的关联规则。

常见的关联规则挖掘算法包括Apriori算法、FP-Growth算法、ECLAT算法等。

1. Apriori算法Apriori算法是一种从大规模数据集中寻找频繁模式的算法。

其基本思想是采用迭代的方式,在每一轮迭代中,都先将数据集中的项按照出现频率排序,再使用前一轮迭代中得到的频繁项集来生成新的候选集。

通过多次迭代筛选,最终获得频繁项集。

2. FP-Growth算法FP-Growth算法(频繁模式增长)是一种高效的关联规则挖掘算法。

其基本思想是利用FP树(一种基于前缀树的数据结构)来挖掘频繁项集,并通过递归来发现所有频繁项集。

3. ECLAT算法ECLAT算法(等价类集合聚类算法)是一种基于垂直数据格式的关联规则挖掘算法。

该算法基于集合间的等价关系,将事务数据集分成若干等价类,进而挖掘频繁项集。

三、关联规则挖掘的应用关联规则挖掘算法在各个领域中均得到了广泛的应用。

例如,在电商中,通过分析购物车中的商品,可以挖掘出商品之间的关联规则,进而为用户推荐相关商品;在超市中,通过分析顾客的购物行为,可以发现商品之间的关联规则,进而进行优惠券发放等等。

四、结语关联规则挖掘算法是数据挖掘中的一种重要的算法分支,其应用场景广泛且成效显著。

数据挖掘中的关联规则算法

数据挖掘中的关联规则算法

数据挖掘中的关联规则算法数据挖掘是伴随着信息技术的不断发展而产生的一种新的工具和方法。

它可以从大量的数据中挖掘出有用的信息,并为实际决策提供帮助。

关联规则算法是其中的一种重要方法,它可以找到项集之间的关系,并预测未来的行为或者趋势。

接下来,我们将对关联规则算法进行详细的介绍。

一、关联规则算法的定义关联规则算法是在数据挖掘中使用频率最广泛的算法之一。

其基本思想是通过寻找数据之间的关联,提取出频繁出现的项集以及项集之间的关系。

在实际应用中,关联规则算法可以广泛应用于市场营销、电子商务、人口统计学等领域。

它可以帮助用户挖掘到有用的信息,理清数据之间的关系,从而做出更明智的决策。

二、关联规则算法的原理关联规则算法有两个基本参数:支持度和置信度。

支持度是指指定的项集在总事务中出现的频率。

置信度则是指在满足条件A的前提下,出现B的概率。

关联规则算法通过计算这两个参数来判断各个项集之间的关系。

举个例子:假设我们想要了解一个超市的销售情况。

我们首先需要确定项集,比如说可乐和糖果在同一笔订单出现的概率。

如果我们设定支持度为50%,即一笔订单至少含有一种可乐和一种糖果,那么我们就可以通过统计数据得到可乐和糖果同时出现的频率。

如果这个频率高于50%,那么我们就可以得出这两个项集之间存在关联规则。

三、关联规则算法的应用关联规则算法可以应用于很多领域,如市场营销、电子商务、人口统计学等。

在市场营销方面,关联规则算法可以帮助企业挖掘到产品之间的关联性,从而了解顾客的需求和偏好,并制定相应的定价策略。

在电子商务中,关联规则算法可以根据用户购买历史记录来推荐相似的产品,提高用户的购买率。

在人口统计学方面,关联规则算法可以帮助政府了解不同人群之间的联系,从而制定更为精准的政策。

四、关联规则算法的优缺点优点:关联规则算法具有较高的算法效率,可以处理大规模数据。

其结果易于理解,可以呈现给用户。

同时,关联规则算法可以挖掘出隐藏在数据中的规律性,帮助用户发现新的信息。

关联规则挖掘算法综述

关联规则挖掘算法综述

关联规则挖掘算法综述关联规则挖掘算法是数据挖掘中常用的一种算法,用于发现数据集中项之间的相关性。

其主要应用于市场营销、购物篮分析、推荐系统、质量控制等领域,具有很高的实用价值。

本文将就关联规则挖掘算法进行综述。

一、算法概述关联规则挖掘算法是通过寻找数据集中某些项之间的关联规则来实现的,这些关联规则通常用“如果……那么……”的形式表示,如:如果用户购买了咖啡和糖,那么他们可能也会购买牛奶。

其中,“如果”部分被称为先决条件,而“那么”部分称为结果。

在关联规则挖掘算法中,常用的度量方式有支持度和置信度。

支持度表示数据集中同时包含 A 和 B 的概率,置信度表示同时购买 A 和 B 的顾客中,有多少比例购买了 B。

常见的关联规则挖掘算法有 Apriori 算法、FP-Growth 算法、ECLAT 算法等。

二、Apriori 算法Apriori 算法是最早提出的关联规则挖掘算法,其核心思想是利用先验知识,减少候选项集的数量,从而缩短生成关联规则的时间。

该算法的主要步骤如下:1. 找出所有单项集;2. 如果某项集的支持度不低于阈值,则该项集为频繁项集;3. 利用频繁项集生成新的候选项集;4. 如果所有候选项集的支持度都不低于阈值,则从中选出频繁项集;5. 重复第 3 步和第 4 步,直到找不到新的频繁项集为止。

该算法的优点是简单易懂,容易实现。

缺点是计算效率低,对于大规模数据集处理较慢。

三、FP-Growth 算法FP-Growth 算法是另一种比较常见的关联规则挖掘算法,它可以从数据集直接构建频繁项集树,避免了需要生成 candidate set 时的大量的计算。

该算法的主要步骤如下:1. 获取单项集;2. 利用这些单项集和事务数据构建FP树;3. 从FP树中抽取频繁项集;4. 对于每个频繁项集,生成相关规则。

该算法的优点是计算效率高,能够处理大规模数据集。

缺点是实现较为复杂。

四、ECLAT 算法ECLAT 算法是 Apriori 算法的优化版,其核心思想是利用数据集的交集,递归处理候选项集。

基于算法的分类器设计中的关联规则挖掘方法综述

基于算法的分类器设计中的关联规则挖掘方法综述

基于算法的分类器设计中的关联规则挖掘方法综述在机器学习和数据挖掘领域,分类器设计是一个重要的主题,旨在构建能够自动将数据分为不同类别的模型。

关联规则挖掘作为分类器设计的一种方法,在近年来得到了广泛的研究和应用。

本文将综述基于算法的分类器设计中的关联规则挖掘方法,探讨其原理、应用和挑战。

一、关联规则挖掘的原理关联规则挖掘是从大规模的数据集中发现项集之间的关联关系的过程。

在分类器设计中,关联规则挖掘通过发现数据属性之间的关联关系,来辅助分类模型的构建。

其原理可以简单概括为以下几个步骤:1. 数据准备:首先需要将原始数据进行预处理,包括数据清洗、数据集成和数据变换等步骤。

这些步骤的目的是为了获得高质量的数据,以便进行关联规则挖掘。

2. 频繁项集的发现:在关联规则挖掘中,频繁项集是指在数据集中频繁出现的项集。

通过扫描数据集,可以计算每个项集的支持度,并筛选出支持度大于某个阈值的频繁项集。

3. 关联规则的生成:在发现频繁项集的基础上,可以生成关联规则。

关联规则由两个部分组成,即前项和后项,表示两个项集之间的关联关系。

通过计算关联规则的置信度和支持度,可以筛选出具有一定关联度的规则。

4. 关联规则的评估:通过评估关联规则的质量,可以对规则进行排序和选择。

这些评估指标包括支持度、置信度、提升度等,用于衡量规则的可信度和相关性。

二、关联规则挖掘方法的应用基于算法的分类器设计中的关联规则挖掘方法可以广泛应用于各个领域。

以下是几个典型的应用场景:1. 市场篮子分析:关联规则挖掘可以用于分析超市或网购平台的购物篮数据,挖掘出不同商品之间的关联关系。

这些关联关系可以用于商品推荐、促销策略制定等。

2. 医学诊断:关联规则挖掘可以用于分析医疗数据,挖掘出不同症状之间的关联关系,辅助医生进行疾病诊断和治疗。

3. Web挖掘:关联规则挖掘可以用于分析用户的网页点击行为,挖掘用户喜好和兴趣,从而实现个性化推荐和广告投放。

4. 生物信息学:关联规则挖掘可以应用于分析基因组数据,挖掘出基因之间的关联关系,帮助科学家研究基因功能和疾病机制。

关联规则挖掘算法研究

关联规则挖掘算法研究

关联规则挖掘算法研究一、引言。

在当今数据爆炸的时代,从海量的数据中提取有价值的信息成为了各个领域的迫切需求。

关联规则挖掘算法就是这样一种能够发现数据集中不同项之间有趣关联关系的技术。

例如,在超市的销售数据中,它可以揭示出顾客购买面包的同时也可能购买牛奶这样的关联关系。

这不仅有助于商家进行商品布局和营销策略的制定,在医疗、金融等众多领域也有着广泛的应用前景。

二、关联规则挖掘算法的基本概念。

(一)项集与事务。

在关联规则挖掘中,我们首先要明确项集和事务的概念。

项集是由数据集中的项组成的集合。

例如,在一个购物篮数据集中,{面包,牛奶}就是一个项集。

事务则是一个具体的操作记录,比如一次购物的所有商品清单就构成一个事务。

(二)支持度与置信度。

支持度是指一个项集在整个数据集中出现的频率。

例如,如果有1000次购物记录,其中包含{面包,牛奶}这个项集的有200次,那么{面包,牛奶}的支持度就是200/1000 = 0.2。

置信度则是指在包含某一项集的事务中,同时包含另一个项集的比例。

假设购买面包的事务有500次,而在这500次中同时购买牛奶的有200次,那么面包→牛奶的置信度就是200/500 = 0.4。

三、经典的关联规则挖掘算法 - Apriori算法。

(一)算法原理。

Apriori算法是最著名的关联规则挖掘算法之一。

它基于一个先验原理:频繁项集的所有非空子集也一定是频繁项集。

算法首先找出所有的频繁1 - 项集,然后基于频繁1 - 项集逐步生成频繁2 - 项集、频繁3 - 项集等。

在生成过程中,通过比较支持度来筛选出真正的频繁项集。

(二)算法步骤。

1. 扫描数据集,统计每个项的出现次数,找出所有频繁1 - 项集。

2. 基于频繁1 - 项集,通过连接操作生成候选项集,再扫描数据集计算候选项集的支持度,筛选出频繁2 - 项集。

3. 重复上述步骤,直到不能生成新的频繁项集为止。

4. 根据得到的频繁项集计算置信度,找出满足置信度阈值的关联规则。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关联规则挖掘算法综述本文介绍了关联规则的基本概念和分类方法, 列举了一些关联规则挖掘算法并简 要分析了典型算法,展望了关联规则挖掘的未来研究方向。

1 引言关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。

它在数据挖掘中 是一个重要的课题,最近几年已被业界所广泛研究。

关联规则挖掘的一个典型例子是购物篮分析。

关联规则研究有助于发现交易数据 库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对 购买其他商品的影响。

分析结果可以应用于商品货架布局、货存安排以及根据购 买模式对用户进行分类。

Agrawal 等于 1993 年首先提出了挖掘顾客交易数据库中项集间的关联规则问题 [AIS93b],以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。

他们 的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算 法挖掘规则的效率;对关联规则的应用进行推广。

最近也有独立于 Agrawal 的频集方法的工作[HPY00],以避免频集方法的一些缺 陷,探索挖掘关联规则的新方法。

也有一些工作[KPR98]注重于对挖掘到的模式 的价值进行评估,他们提出的模型建议了一些值得考虑的研究方向。

2 基本概念设 I={i1,i2,..,im}是项集,其中 ik(k=1,2,…,m)可以是购物篮中的物品,也可 以是保险公司的顾客。

设任务相关的数据 D 是事务集,其中每个事务 T 是项集, 使得 TÍI。

设 A 是一个项集,且 AÍT。

关联规则是如下形式的逻辑蕴涵:A Þ B,AÌI, AÌI,且 A∩B=F。

关联规则具有如下两个重要的属性: 支持度: P(A∪B),即 A 和 B 这两个项集在事务集 D 中同时出现的概率。

置信度: P(B|A),即在出现项集 A 的事务集 D 中,项集 B 也同时出现的概率。

同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。

给定一个事务集 D,挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度 和最小可信度的关联规则,也就是产生强规则的问题。

3 关联规则种类基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。

1) 基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。

布尔型关联规则处理的值都是离散的、 种类化的, 它显示了这些变量之间的关系。

数值型关联规则可以和多维关联或多层关联规则结合起来, 对数值型字段进行处 理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规 则中也可以包含种类变量。

基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。

2) 基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。

在单层关联规则中, 所有的变量都没有考虑到现实的数据是具有多个不同的层次 的。

在多层关联规则中,对数据的多层性已经进行了充分的考虑。

基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。

3) 基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。

在单维关联规则中,我们只涉及到数据的一个维,如用户购买的物品 在多维关联规则中,要处理的数据将会涉及多个维。

4 算法综述4.1 经典的频集算法 Agrawal 等于 1994 年提出了一个挖掘顾客交易数据库中项集间的关联规则的重 要方法 [AS94a, AS94b],其核心是基于两阶段频集思想的递推算法。

该关联规 则在分类上属于单维、单层、布尔关联规则。

所有支持度大于最小支持度的项集称为频繁项集,简称频集。

4.1.1 算法的基本思想 首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。

然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。

挖掘关联规则的总体性能由第一步决定,第二步相对容易实现。

4.1.2 Apriori 核心算法分析 为了生成所有频集,使用了递推的方法。

其核心思想简要描述如下: L1 = {large 1-itemsets}; for (k=2; Lk-1¹F; k++) do beginCk=apriori-gen(Lk-1); //新的候选集 for all transactions tÎD do begin Ct=subset(Ck,t); //事务 t 中包含的候选集 for all candidates cÎ Ct do c.count++; end Lk={cÎ Ck |c.count³minsup} end Answer=ÈkLk; 首先产生频繁 1-项集 L1,然后是频繁 2-项集 L2,直到有某个 r 值使得 Lr 为空, 这时算法停止。

这里在第 k 次循环中,过程先产生候选 k-项集的集合 Ck,Ck 中 的每一个项集是对两个只有一个项不同的属于 Lk-1 的频集做一个(k-2)-连接来 产生的。

Ck 中的项集是用来产生频集的候选集,最后的频集 Lk 必须是 Ck 的一 个子集。

Ck 中的每个元素需在交易数据库中进行验证来决定其是否加入 Lk,这 里的验证过程是算法性能的一个瓶颈。

这个方法要求多次扫描可能很大的交易数 据库,即如果频集最多包含 10 个项,那么就需要扫描交易数据库 10 遍,这需要 很大的 I/O 负载。

可能产生大量的候选集,以及可能需要重复扫描数据库,是 Apriori 算法的两大 缺点。

4.1.3 算法的优化 为了提高算法的效率,Mannila 等引入了修剪技术来减小候选集 Ck 的大小 [MTV94],由此可以显著地改进生成所有频集算法的性能。

算法中引入的修剪策 略基于这样一个性质:一个项集是频集当且仅当它的所有子集都是频集。

那么, 如果 Ck 中某个候选项集有一个(k-1)-子集不属于 Lk-1,则这个项集可以被修剪 掉不再被考虑,这个修剪过程可以降低计算所有的候选集的支持度的代价。

4.2 改进的频集算法 4.2.1 散列 该算法由 Park 等在 1995 年提出[PCY95b]。

通过实验发现寻找频繁项集的主要计 算是在生成频繁 2 项集 L2 上,Park 就是利用这个性质引入散列技术来改进产生 频繁 2 项集的方法。

其基本思想是:当扫描数据库中每个事务,由 C1 中的候选 1 项集产生频繁 1 项 集 L1 时,对每个事务产生所有的 2 项集,将它们散列到散列表结构的不同桶中, 并增加对应的桶计数, 在散列表中对应的桶计数低于支持度阈值的 2 项集不可能 是频繁 2 项集, 可从候选 2 项集中删除, 这样就可大大压缩了要考虑的 2 项集。

4.2.2 事务压缩Agrawal 等提出压缩进一步迭代扫描的事务数的方法[AS94b, HF95]。

因为不包 含任何 K 项集的事务,不可能包含任何(K+1)项集,可对这些事务加上删除标 志,扫描数据库时不再考虑。

4.2.3 杂凑 一个高效地产生频集的基于杂凑的算法由 Park 等提出[PCY95a]。

通过实验我们 可以发现寻找频集主要的计算是在生成频繁 2-项集 Lk 上, Park 等就是利用了这 个性质引入杂凑技术来改进产生频繁 2-项集的方法。

4.2.4 划分 Savasere 等设计了一个基于划分的算法[SON95],这个算法先把数据库从逻辑上 分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把 产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。

这里 分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。

而 算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。

上面所 讨论的算法是可以高度并行的, 可以把每一分块分别分配给某一个处理器生成频 集。

产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选 k项集。

通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立 的处理器生成频集的时间也是一个瓶颈。

其他的方法还有在多处理器之间共享一 个杂凑树来产生频集。

更多的关于生成频集的并行化方法可以在文献[AS96]中找 到。

4.2.5 选样 基本思想是在给定数据的一个子集挖掘。

对前一遍扫描得到的信息,仔细地组合 分析,可以得到一个改进的算法,Mannila 等先考虑了这一点[MTV94],他们认 为采样是发现规则的一个有效途径。

随后又由 Toivonen 进一步发展了这个思想 [Toi96],先使用从数据库中抽取出来的采样得到一些在整个数据库中可能成立 的规则,然后对数据库的剩余部分验证这个结果。

Toivonen 的算法相当简单并 显著地减少了 I/O 代价,但是一个很大的缺点就是产生的结果不精确,即存在所 谓的数据扭曲(data skew)。

分布在同一页面上的数据时常是高度相关的,可能 不能表示整个数据库中模式的分布,由此而导致的是采样 5%的交易数据所花费 的代价可能同扫描一遍数据库相近。

4.2.6 动态项集计数 Brin 等人给出该算法[BMUT97]。

动态项集计数技术将数据库划分为标记开始点 的块。

不象 Apriori 仅在每次完整的数据库扫描之前确定新的候选,在这种变形 中,可以在任何开始点添加新的候选项集。

该技术动态地评估以被计数的所有项 集的支持度,如果一个项集的所有子集以被确定为频繁的,则添加它作为新的候 选。

结果算法需要的数据库扫描比 Apriori 少。

FP4.3 FP-树频集算法针对 Apriori 算法的固有缺陷,J. Han 等提出了不产生候选挖掘频繁项集的方 法—FP-树频集算法[HPY00]。

采用分而治之的策略,在经过第一遍扫描之后,把 数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联 信息, 随后再将 FP-tree 分化成一些条件库, 每个库和一个长度为 1 的频集相关, 然后再对这些条件库分别进行挖掘。

当原始数据量很大的时候,也可以结合划分 的方法,使得一个 FP-tree 可以放入主存中。

实验表明,FP-growth 对不同长度 的规则都有很好的适应性,同时在效率上较之 apriori 算法有巨大的提高。

4.4 多层关联规则挖掘 对于很多的应用来说,由于数据分布的分散性,所以很难在数据最细节的层次上 发现一些强关联规则。

当我们引入概念层次后,就可以在较高的层次上进行挖掘 [HF95, SA95]。

虽然较高层次上得出的规则可能是更普通的信息,但是对于一个 用户来说是普通的信息,对于另一个用户却未必如此。

相关文档
最新文档