基于Python第三方库fp_growth实现频繁项集挖掘。购物篮数据来自IBM SPSS Modeler软件自带的BASKETS1n数据集。
import xlrd #excel文件读取函数
def load_data_set():
data_set=[]
data = xlrd.open_workbook('Basket1n.xls')
table = data.sheets()[0] #索引到第一个工作表
card_id = table.col_values(0)[1:]
for i in range(1,len(card_id)+1):
one_tran=[]
for j in range(7,18): #商品对应的列数
if table.cell(i,j).value=='T':
one_tran.append(table.cell(0,j).value)
data_set.append(one_tran)
return data_set
import fp_growth
#读取数据集
data_set = load_data_set()
#通过事务数据集和最小支持度挖掘频繁项集
itemset = fp_growth.find_frequent_itemsets(data_set, 0.1,True)
#输出频繁项集挖掘结果
print('频繁项集'+'\t'+'支持度')
for i in itemset:
print(str(list(i)[0])+':'+
str(list(i)[1]/float(len(data_set))))