十大经典机器学习算法之一Apriori

Apriori算法是经典的挖掘频繁项集和关联规则的数据挖掘算法,也是十大经典机器学习算法之一。

Agrawal和Srikant两位博士在1994年提出了Apriori算法,主要用于做快速的关联规则分析。

Apriori在拉丁语中指“来自以前”。当定义问题时,通常会使用先验知识或者假设,这被称作“一个先验”(apriori)。Apriori算法正是基于这样的事实:算法使用频繁项集性质的先验性质,即频繁项集的所有非空子集也一定是频繁的。

Apriori算法使用一种称为逐层搜索的迭代方法,其中k项集用于探索(k+1)项集。首先,通过扫描数据库,累计每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记为L1。然后,使用L1找出频繁2项集的集合L2,使用L2找出L3,如此下去,直到不能再找到频繁k项集。每找出一个Lk需要一次数据库的完整扫描。Apriori算法使用频繁项集的先验性质来压缩搜索空间。

注:数据库中的数据可以是结构化的,也可以是半结构化的,甚至还可以是分布在网络上的异构型数据。

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。

令I={i1,i2,i3……id}是数据中所有项的集合,而T={t1,t2,t3….tN}是所有事务的集合,每个事务ti包含的项集都是I的子集。在关联分析中,包含0个或多个项的集合称为项集。如果一个项集包含K个项,则称它为K-项集。空集是指不包含任何项的项集。

项集的一个重要性质是它的支持度计数,即包含特定项集的事务个数,数学上,项集X的支持度计数σ(X)可以表示为:

σ(X)=|{ti|X?ti,ti∈T}|

其中,符号|*|表示集合中元素的个数。

关联规则是形如X→Y的蕴含表达式,其中X和Y是不相交的项集,即X∩Y=空。

关联规则的强度可以用它的支持度(support)和置信度(confidence)来度量。

支持度确定规则可以用于给定数据集的频繁程度,而置信度确定Y在包含X的事务中出现的频繁程度。

支持度(s)和置信度(c)这两种度量的形式定义如下:

s(X→Y)=σ(X∪Y)/N

c(X→Y)=σ(X∪Y)/σ(X)

其中,σ(X∪Y)是(X∪Y)的支持度计数,N为事务总数,σ(X)是X的支持度计数。

对于靠谱的关联规则,其支持度与置信度均应大于设定的阈值。那么,关联分析问题即等价于:对给定的支持度阈值min_sup、置信度阈值min_conf,找出所有的满足下列条件的关联规则:

支持度》=min_sup

置信度》=min_conf

把支持度大于阈值的项集称为频繁项集(frequentitemset)。因此,关联规则分析可分为下列两个步骤:

1)生成频繁项集F=X∪Y;

2)在频繁项集F中,找出所有置信度大于最小置信度的关联规则X-》Y

1)找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。

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

3)使用第1)步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。

4)一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递归的方法。

Aprior算法程序如下:

1)使用先验性质,大大提高了频繁项集逐层产生的效率;

2)简单易理解;

3)数据集要求低;

4)扩展性较好,可以并行计算。

Apriori算法缺点:

1)可能产生大量的候选集;

2)可能需要重复扫描整个数据库,非常耗时。

定理:如果规则X-》Y?X不满足置信度阈值,则对于X的子集X′-》Y?X′也不满足置信度阈值。

根据此定理,可对规则树进行剪枝,其具体改进的算法如下:

通过对数据的关联性进行了分析和挖掘,挖掘出的这些信息在决策制定过程中具有重要的参考价值。Apriori算法被广泛应用于各种领域:

1)应用于商业活动领域,应用于消费市场价格分析中,它能够很快的求出各种产品之间的价格关系和它们之间的影响。

2)应用于网络安全领域,通过模式的学习和训练可以发现网络用户的异常行为模式,能够快速的锁定攻击者,提高了基于关联规则的入侵检测系统的检测性。

3)应用于高校管理中。随着高校贫困生人数的不断增加,学校管理部门资助工作难度也越加增大。针对这一现象,将关联规则的Apriori算法应用到贫困助学体系中,挖掘出的规则也可以有效地辅助学校管理部门有针对性的开展贫困助学工作。

THE END
1.机器学习——十大算法机器学习算法二、十大算法详细介绍 1.线性回归算法 线性回归是机器学习中最基础也是应用最广泛的算法之一。它主要用于预测一个或多个自变量(输入特征)与一个因变量(输出标签)之间的线性关系。线性回归模型试图找到一条直线(在二维空间中)或一个超平面(在更高维空间中),使得所有数据点到这条直线或超平面的垂直距离之和最小,这样https://blog.csdn.net/Like_July_moon/article/details/136750962
2.(完整)10种机器学习算法介绍经管文库(原现金交(完整)10种机器学习算法介绍 https://bbs.pinggu.org/thread-13271983-1-1.html
3.机器学习十大经典算法入门[通俗易懂]腾讯云开发者社区机器学习十大经典算法入门[通俗易懂] 大家好,又见面了,我是你们的朋友全栈君。 一,SVM(Support Vector Machine)支持向量机a. SVM算法是介于简单算法和神经网络之间的最好的算法。 b. 只通过几个支持向量就确定了超平面,说明它不在乎细枝末节,所以不容易过拟合,但不能确保一定不会过拟合。可以处理复杂的非线性https://cloud.tencent.com/developer/article/2098380
4.超强!必会的十大机器学习算法人工智能必会的十大机器学习算法 1.线性回归 线性回归是用于预测建模的最简单且使用最广泛的机器学习算法之一。 它是一种监督学习算法,用于根据一个或多个自变量预测因变量的值。 定义 线性回归的核心是根据观察到的数据拟合线性模型。 线性模型由以下方程表示: 其中https://www.php.cn/faq/810914.html
5.盘点机器学习的十大主流算法,看看你会哪个?机器学习作为现代人工智能的最重要的发展之一,是一门多领域交叉学科,包含概率论、统计学、逼近论、凸分析等多门学科,主要用于研究计算机怎样模拟或实现人类的学习行为。今天将盘点十个机器学习的主流算法,看看小伙伴会哪个? 1、线性回归 线性回归是机器学习最常见的算法,是利用数理统计中回归分析,来确定两种或两种以上变https://www.fanyedu.com/content/4542.html
6.十大常用机器学习算法mob64ca12eb3858的技术博客机器学习是一种人工智能的分支,通过训练计算机从数据中学习模式和规律,从而能够做出预测和决策。在机器学习领域,有很多种算法可以用来解决不同类型的问题。以下是十大常用机器学习算法: 线性回归(Linear Regression):通过在数据上拟合一条直线或者平面,来建立输入变量和输出变量之间的关系。 https://blog.51cto.com/u_16213410/11303025
7.一篇简单易懂的十大机器学习算法极客之音一篇简单易懂的十大机器学习算法 1. 线性回归(Linear Regression) 基本工作原理: 通过线性模型建立自变量和因变量之间的关系. 示例展示: from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(X_train, y_train) predictions = model.predict(X_test)https://www.bmabk.com/index.php/post/289555.html
8.人工智能十大算法已公布,考验你对人工智能了解程度的时候到了摘要人工智能一直是人类社会科技发展的验证,关于他的思考一直在继续,当然除了这些,我们也需要学习人工智能,比如,我们需要了解人工智能十大算法,这些知识才是人工智能最实际的东西,并且这也是很重要的知识,那么什么是人工智能十大算法,环球网校的宣布带大家一起分析。 https://m.hqwx.com/news/2020-4/15877135755697.html
9.机器学习十大算法都是何方神圣?看完你就懂了雷峰网机器学习算法分为三类:有监督学习、无监督学习、增强学习。有监督学习需要标识数据(用于训练,即有正例又有负例),无监督学习不需要标识数据,增强学习介于两者之间(有部分标识数据)。下面我将向大家具体介绍机器学习中10大算法(只介绍有监督、无监督两类,暂不介绍增强学习)。 https://www.leiphone.com/category/ai/FRfgpPXPrR030UmP.html
10.十大机器学习算法的优缺点EM算法比K-means算法计算复杂,收敛较慢,不适合大规模数据集和高维数据,但比K-means算法计算结构稳定、准确。 EM算法经常用在机器学习和计算机视觉的数据集聚(data clustering)领域。 PageRank算法 Google的页面排序算法。 基于从许多优质的网页链接过来的 网页,必定还是优质网页的回归关系,来判定所有网页的重要性。 https://www.jianshu.com/p/e36001ba2ab9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
11.机器学习十大经典算法全解析 机器学习是人工智能的核心支柱之一,其中包含了众多经典算法。以下是十大经典机器学习算法的详细解析:1 K-Means聚类 根据数据点之间的距离将数据分成K个簇,目标是最小化每个簇内的平方误差。2 线性回归 寻找一条最适合数据的直线,以最小化预测值与实际值之间的平方差。3 逻辑https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_4608860120017419975
12.机器学习10大经典算法详解pythonK最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。 9、Naive Bayes朴素贝叶斯 https://www.jb51.net/article/129969.htm