我是这个领域的新手以及术语所以如果我在某个地方出错,请随时提出建议.我有两个这样的数据集:
A B C 0 E A 0 C 0 0 A 0 C D E A 0 C 0 E
我解释这个的方式是在某个时间点,(A,B,C,E)一起发生,(A,C),(A,C,D,E)等也是如此.
5A 1B 5C 0 2E 4A 0 5C 0 0 2A 0 1C 4D 4E 3A 0 4C 0 3E
我解释这个的方式是在某个时间点,发生5次A,1次发生B,5次发生C和2次发生E,等等.
我试图找到哪些项目一起发生,如果可能的话,也找出原因和结果.为此,我不了解如何使用这两个数据集(或者如果一个就足够了).最好有一个很好的教程,但我的主要问题是使用哪个数据集以及如何进行(i)构建频繁项集和(ii)在它们之间建立关联规则.
有人能指点我一个实用的教程/例子(最好用Python)或至少解释一下如何解决这个问题?
关于关联规则的一些理论事实:
关联规则是一种无向数据挖掘,它在数据中找到预先未指定目标的模式.模式是否有意义留给人类解释.
关联规则的目标是检测大集合中分类变量的特定值之间的关系或关联.
规则可以归结为"70%购买葡萄酒和奶酪的顾客也购买葡萄".
要查找关联规则,可以使用apriori算法.已经存在许多python实现,尽管它们中的大多数在实际应用中效率不高:
source1:http://code.google.com/p/autoflash/source/browse/trunk/python/apriori.py? r = 31
source2:http://www.nullege.com/codes/show/src%40l%40i%40libbyr-HEAD%40test_freq_item_algos.py/5/apriori/python
或使用橙色数据挖掘库,它具有良好的关联规则库.
用法示例:
''' save first example as item.basket with format A, B, C, E A, C A, C, D, E A, C, E open ipython same directory as saved file or use os module >>> import os >>> os.chdir("c:/orange") ''' import orange items = orange.ExampleTable("item") #play with support argument to filter out rules rules = orange.AssociationRulesSparseInducer(items, support = 0.1) for r in rules: print "%5.3f %5.3f %s" % (r.support, r.confidence, r)
要了解有关关联规则/频繁项目挖掘的更多信息,那么我选择的书籍是:
"数据挖掘简介" - Vipin Kumar,初学者的最佳书籍
"数据挖掘和知识发现手册",面向高级用户
"挖掘大量数据" - 提示如何在reallife中使用以及如何构建高效的解决方案,免费书籍,http://i.stanford.edu/~ullman/mmds.html
当然,有很多很棒的科学论文可供阅读:例如,对MS Acedemic进行一些关于频繁模式挖掘的搜索
没有简短的方法.