国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, N...
分类:
编程语言 时间:
2015-05-26 00:12:30
阅读次数:
261
apriori算法的计算量太大,如果数据集略大一些,会比较慢,非常容易内存溢出。
我们可以算一下复杂度:假设样本数有N个,样本属性为M个,每个样本属性平均有K个nominal值。
1. 计算一项频繁集的时间复杂度是O(N*M*K)。
2. 假设具有最小支持度的频繁项是q个,根据它们则依次生成一项频繁集,二项频繁集,....,r项频繁集合,它们的元素数量分别是:c(q, 1), c(q...
分类:
编程语言 时间:
2015-05-24 21:55:40
阅读次数:
377
上篇博客讲述了Apriori算法的思想和java实现,http://blog.csdn.net/u010498696/article/details/45641719 Apriori算法是经典的关联规则算法,但是如上篇博客所述,它也有两个致命的性能瓶颈,一个是频繁集自连接产生候选集这一步骤中可能产生大量的候选集;另一个是从候选集得到频繁项集需要重复扫描数据库。
2000年,Han等提出了一个称为...
分类:
编程语言 时间:
2015-05-18 16:48:00
阅读次数:
199
系列文章:《机器学习》学习笔记 最近看了《机器学习实战》中的第11章(使用Apriori算法进行关联分析)和第12章(使用FP-growth算法来高效发现频繁项集)。正如章节标题所示,这两章讲了无监督机器学习方法中的关联分析问题。关联分析可以用于回答"哪些商品经常被同时购买?"之类的问题。书中举了一...
分类:
编程语言 时间:
2015-05-18 00:53:01
阅读次数:
314
该算法是为了实现对一些专业文章的词汇关联分析而实现的,并不是Apriori的最佳应用,确实对词频分析的一种实践。package com.my.analysis;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import redis.clients.jedis.Jedis;
public...
分类:
数据库 时间:
2015-05-11 14:58:00
阅读次数:
148
关联规则挖掘可以发现大量数据中项集之间有趣的关联或相关联系。一个典型的关联规则挖掘例子是购物篮分析,即通过发现顾客放入其购物篮中的不同商品之间的联系,分析顾客的购物习惯,从而可以帮助零售商指定营销策略,引导销售等。国外有"啤酒与尿布"的故事,国内有泡面和火腿的故事。本文以Apriori算法为例介绍关联规则挖掘并以java实现。
什么是关联规则:
对于记录的集合D和记录A,记录B,A,B属于D:...
分类:
编程语言 时间:
2015-05-11 14:57:28
阅读次数:
181
之前介绍的apriori算法中因为存在许多的缺陷,例如进行大量的全表扫描和计算量巨大的自然连接,所以现在几乎已经不再使用
在mahout的算法库中使用的是PFP算法,该算法是FPGrowth算法的分布式运行方式,其内部的算法结构和FPGrowth算法相差并不是十分巨大
所以这里首先介绍在单机内存中运行的FPGrowth算法
还是使用apriori算法的购物车数据作为例子,如下图所示:...
分类:
编程语言 时间:
2015-04-24 14:22:49
阅读次数:
185
关联规则挖掘算法在生活中的应用处处可见,几乎在各个电子商务网站上都可以看到其应用
举个简单的例子
如当当网,在你浏览一本书的时候,可以在页面中看到一些套餐推荐,本书+有关系的书1+有关系的书2+...+其他物品=多少¥
而这些套餐就很有可能符合你的胃口,原本只想买一本书的你可能会因为这个推荐而买了整个套餐
这与userCF和itemCF不同的是,前两种是推荐类似的,或者你可能喜欢的...
分类:
编程语言 时间:
2015-04-24 09:06:25
阅读次数:
228
关联分析是一种在大规模数据集中寻找有趣关系的任务。这些关系可以有两种形式:频繁项集或者关联规则。频繁项集是指经常出现在一块的物品的集合,关联规则暗示两种物品之间可能存在很强的关系。一个项集的支持度被定义为数据集中包含该项集的记录所占的比例。可信度或置信度是针对一条诸如{尿布}->{葡萄酒}的关联规则...
分类:
编程语言 时间:
2015-04-21 17:28:47
阅读次数:
156
一、关联规则挖掘
1、 Apriori算法
(1)Apriori算法原理
Apriori算法使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集。首先,通过扫描事务(交易)记录,找出所有的频繁1项集,该集合记做L1,然后利用L1找频繁2项集的集合L2,L2找L3,如此下去,直到不能再找到任何频繁k项集。最后再在所有的频繁集中找出强规则,即产生用户感兴趣的关联规...
分类:
编程语言 时间:
2015-04-21 00:26:32
阅读次数:
376