首页 > 代码库 > 频繁模式挖掘-Apriori算法

频繁模式挖掘-Apriori算法

DM实验,写的比较二,好多情况还没有考虑,后续有时间会修改。

开始的时候数据结构没设计好导致写到后面费了很大的劲、不过还好python的列表有起死回生的功效、、、

数据集:database.txt

I1,I2,I5
I2,I4
I2,I3
I1,I2,I4
I1,I3
I2,I3
I1,I3
I1,I2,I3,I5
I1,I2,I3

apriori.py

#coding=utf-8
"""
    author:messiandzcy
    apriori.py
    date:2014.12.3
"""
#申请存数据库的矩阵,方便以后遍历
def matrix(num_of_transactions,num_of_items):
    mat = [['#' for y in range (num_of_items+1)]
              for x in range(num_of_transactions+1)]
    return mat

#输出数据库矩阵调试
def printf(mat,rows,cols):
    for i in range(rows):
        for j in range(cols):
            print mat[i][j],
        print
        
#读入文件,将数据库存到列表data里,并格式化输出
def ReadFile():
    filename = r'database.txt'
    try:
        fp = open(filename,"r")
        print "Reading File '%s'..." % filename
        print "%-10s%-10s" % ("TID","Items")
        pos = 1     #pos记录事务数(行数)
        MAX_j = 0 #记录项的最大宽度(列数)
        data = http://www.mamicode.com/matrix(15,10) #最多15个事务,10个项>

频繁模式挖掘-Apriori算法