使用FP-growth算法挖掘频繁项集

  • 发布日期:2019-10-29
  • 难度:简单
  • 类别:关联规则挖掘
  • 标签:Python、购物篮、频繁项集、FP-growth

1. 问题描述

基于Python第三方库fp_growth实现频繁项集挖掘。购物篮数据来自IBM SPSS Modeler软件自带的BASKETS1n数据集。

2. 程序实现

In [4]:
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))))
频繁项集	支持度
['糖果']:0.276
['白酒', '糖果']:0.144
['新鲜肉类']:0.183
['牛奶']:0.177
['灌装蔬菜']:0.303
['冷冻食品']:0.302
['灌装蔬菜', '冷冻食品']:0.173
['啤酒']:0.293
['灌装蔬菜', '啤酒']:0.167
['冷冻食品', '啤酒']:0.17
['灌装蔬菜', '冷冻食品', '啤酒']:0.146
['鱼']:0.292
['水果蔬菜', '鱼']:0.145
['白酒']:0.287
['水果蔬菜']:0.299
['汽水']:0.184
['灌装肉品']:0.204
In [ ]: