[Python]FPG(FP-growth)算法核心实现

FPG是FP-growth算法的简称,推荐算法=》关联算法中最有名的算法之一,是Apriori算法的性能优化版。

参考了一些示例,自行再实现,具体算法如下。


步骤归纳为:
1、第一次遍历获取HeaderTable,包括去重、计频繁数、依据最小支持度去项、重排序(频繁数倒序);
2、第二次遍历更新原列表,包括依据headerTable去除小于最小支持度的项、重排序
3、建FP Tree,包括创建新节点、相似元素项节点合并


调用入口 (test04.py):

#coding:utf-8
import test03
oneDimList = []
def loadSimpDat():
    simpDat = [['r', 'z', 'h', 'j', 'p'],
               ['z', 'y', 'x', 'w', 'v', 'u', 't', 's'],
               ['z'],
               ['r', 'x', 'n', 'o', 's'],
               ['y', 'r', 'x', 'z', 'q', 't', 'p'],
               ['y', 'z', 'x', 'e', 'q', 's', 't', 'm']]
    return simpDat

# 数据准备
simpDat = loadSimpDat()
for list in simpDat:
    oneDimList += list
# 建header table
headerTable = test03.HeaderTable().create(oneDimList, 3)
# 建FP tree
buildTree = test03.BuildTree()
updDat = buildTree.refactor(simpDat, headerTable)
fpTree = buildTree.update(updDat)
# 打印结果
for 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值