[TOC]

0. 结论

1. 算法起源

2. Apriori算法思想

![uiqjiZ](<https://raw.githubusercontent.com/errolyan/tuchuang/master/uPic/uiqjiZ.png>)

2.1 算法综述

Aprior算法是一个非常经典的频繁项集的挖掘算法,很多算法都是基于Aprior算法而产生的,包括FP-Tree,GSP, CBA等。这些算法利用了Aprior算法的思想,但是对算法做了改进,数据挖掘效率更好一些,因此现在一般很少直接用Aprior算法来挖掘数据了,但是理解Aprior算法是理解其它Aprior类算法的前提,同时算法本身也不复杂.

2.2 示例

from apriori import apriori
from apriori import generateRules
import re

if __name__ == '__main__':
    myDat=[]

    with open("./data/xss-2000.txt") as f:
        for line in f:
            index=line.find("?")
            if index>0:
                line=line[index+1:len(line)]
                #print line
                tokens=re.split('\\\\=|&|\\\\?|\\\\%3e|\\\\%3c|\\\\%3E|\\\\%3C|\\\\%20|\\\\%22|<|>|\\\\\\\\n|\\\\(|\\\\)|\\\\'|\\\\"|;|:|,|\\\\%28|\\\\%29',line)
                #print "token:"
                #print tokens
                myDat.append(tokens)
        f.close()

    L, suppData = apriori(myDat, 0.15)
    rules = generateRules(L, suppData, minConf=0.6)
    print 'rules:\\\\n', rules