Apriori算法的性能不高,频繁项集大概出现爆炸征象。对于 N N N个事务,大概出现时间上和空间上 O ( N 2 ) O(N^2) O(N2)的复杂度。因此如果选择的最小支持度较小,会出现内存爆炸的征象。
因此,对于Apriori算法,需要着重关注怎样降低计算速度,以及淘汰频繁项集的数目。本实行关注淘汰频繁项集数目这一点,利用“多最小支持度”进行挖掘。
3. 实行环境搭建及运行
由于数据集太过巨大,而且范围涵盖多个主题和体裁导致挖掘信息杂糅,因此我选取Gutenberg dataset中Lincoln的演讲集部分作为实行数据,并实行从中挖掘信息。数据集共16个txt文件。起首,把句子作为篮子进行数据挖掘,共31598个句子, 11587个段落
本次实行中,希望挖掘出: ①什么单词组合在同一个句子中出现的概率更高, ②一个单词(或组合)出现后,通常还会出现什么单词。
对置信度定义如下:
c o n f i d e n c e = s u p p ( X 1 X 2 . . . X z ) s u p p ( X 1 X 2... X z − 1 ) confidence = \frac{supp(X_1X_2 ...X_z)}{supp(X1X2...X_{z-1})} confidence=supp(X1X2...Xz−1)supp(X1X2...Xz)
得到频繁项集之后,探求所有由k项集到(k+1)项集符合最小关联度要求的关联规则。
4.1.2 最小支持度的选取理论
Tat-Seng Chua, Liqiang Nie, Yiqun Liu, Shaoping Ma, Min Zhang, Pavel Serdyukov, Maarten de Rijke, Jimmy J. Lin, Charles L. A. Clarke, Guido Zuccon, Jamie Callan, Jimmy Lin, W. Bruce Croft, Leif Azzopardi, Adam Roegiest, Craig Macdonald, Iadh Ounis, Krisztian Balog, Chenyan Xiong, Jaap Kamps, Hamed Zamani。
[learning] Dan Xu, Elisa Ricci, Nicu Sebe, Wanli Ouyang, Xiaogang Wang
[deep, learning] Anton van den Hengel, Chunhua Shen, Lingqiao Liu
复制代码
6. 算法性能分析
Apriori算法的性能不高,频繁项集大概出现爆炸征象。对于 N N N个事务,大概出现时间上和空间上 O ( N 2 ) O(N^2) O(N2)的复杂度。因此如果选择的最小支持度较小,会出现内存爆炸的征象。
因此,对于Apriori算法,需要着重关注怎样降低计算速度,以及淘汰频繁项集的数目。本实行关注淘汰频繁项集数目这一点,利用“多最小支持度”进行挖掘。
6.1 针对Sentence模式的时间复杂度实证研究
在本实行中,我针对Sentence模式的最小支持度,探究Apriori算法所泯灭的时间,从而视图验证复杂度为 O ( N ) O(N) O(N)的说法。
最小支持度耗时(s)一项集二项集三项集5%1501%9058310.50%331200151 我选取了最小支持度为5%,1%和0.5%,进行他们的耗时研究。发现耗时呈指数增长。
6.2 效率改进–多支持度