学习日志——-FP-growth算法发现频繁集

  

彼得·哈林顿确实牛B ! ! !

构建FP树,实现频繁集挖掘

class  treeNode:   ,,,def  __init__ (nameValue,自我,还以为,numOccur, parentNode):   ,,,,,,,self.name =nameValue   ,,,,,,,self.count =numOccur   ,,,,,,,self.nodeLink =,没有   ,,,,,,,self.parent =, parentNode ,,,,, # needs 用be 更新   ,,,,,,,self.children =, {},   ,,,,   ,,,def 公司(自我,,numOccur):   ,,,,,,,self.count  +=numOccur   ,,,,,,,   ,,,def  disp(自我,,印第安纳=1):   ,,,,,,,print “,,”印第安纳州,,self.name,,‘,’, self.count   ,,,,,,,for  child 拷贝self.children.values ():   ,,,,,,,,,,,child.disp(印第安纳州+ 1)      def  createTree(数据集,度=1):,# create  FP-tree 得到dataset  but 不't 我的   ,,,headerTable =, {}   ,,,# go 配套;dataSet 两次   ,,,for  trans 拷贝数据集:# first  pass  counts  frequency  of 电机   ,,,,,,,for  item 拷贝反式:   ,,,,,,,,,,,headerTable[项目],=,headerTable.get(项目,,0),+,数据集(反式)   ,,,for  k 拷贝headerTable.keys ():,, # remove  items  not  meeting 度   ,,,,,,,if  headerTable [k], & lt;,度:,   ,,,,,,,,,,,德尔(headerTable [k])   ,,,freqItemSet =,集(headerTable.keys ())   ,,,# print  freqItemSet, freqItemSet:,   ,,,if  len (freqItemSet),==, 0:, return 没有,,None , # if  no  items  meet  min  support ——祝辞get    ,,,for  k 拷贝headerTable:   ,,,,,,,headerTable [k],=, (headerTable [k],没有),# reformat  headerTable 用use  Node  link    ,,,# print  headerTable, headerTable:,   ,,,retTree =, treeNode (Null 设定,,1,,也没有),# create 树   ,,,for  tranSet,, count 拷贝dataSet.items ():,, # go  through  dataset  2 nd 时间   ,,,,,,,localD =, {}   ,,,,,,,for  item 拷贝tranSet:,, # put  transaction  items 拷贝订单   ,,,,,,,,,,,if  item 拷贝freqItemSet:   ,,,,,,,,,,,,,,,localD[项目],=,headerTable[项目][0]   ,,,,,,,if  len (localD),祝辞,0:   ,,,,,,,,,,,orderedItems =, (v [0], for  v 拷贝排序(localD.items(),,关键=lambda  p:, p[1],反向=True))   ,,,,,,,,,,,updateTree (retTree, orderedItems,还以为,headerTable, count) # populate  tree  with  ordered  freq  itemset   ,,,return  retTree,, headerTable  # return  tree 以及header 表      def  updateTree (inTree,物品,还以为,headerTable,计数):   ,,,if 项目[0],拷贝inTree.children: # check  if  orderedItems [0], retTree.children拷贝   ,,,,,,,inTree.children[项目[0]]. inc(计数),# incrament 计数   其他,,,,,,,# add 项目[0],用inTree.children   ,,,,,,,inTree.children[项目[0]],=,treeNode ([0],,,, inTree)   ,,,,,,,if  headerTable[项目[0]][1],==,没有:,# update  header  table    ,,,,,,,,,,,headerTable[项目[0]][1],=,inTree.children[项目[0]]   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

学习日志——-FP-growth算法发现频繁集