class_docstr: A method for determining frequent itemsets in a transactional database. 
  This is done by building a so called FP Growth tree, which can then be mined
  to collect the frequent itemsets. More effective than Apriori for large transactional
  databases.
  
  Parameters:
  -----------
  min_sup: float
      The minimum fraction of transactions an itemets needs to
      occur in to be deemed frequent
class_docstr_tok: ["A","method","for","determining","frequent","itemsets","in","a","transactional","database",".","This","is","done","by","building","a","so","called","FP","Growth","tree",",","which","can","then","be","mined","to","collect","the","frequent","itemsets",".","More","effective","than","Apriori","for","large","transactional","databases",".","Parameters",":","--","--","--","--","--","-","min_sup",":","float","The","minimum","fraction","of","transactions","an","itemets","needs","to","occur","in","to","be","deemed","frequent"]
docstr: Recursive method which prints the FP Growth Tree 
docstr_tok: ["Recursive","method","which","prints","the","FP","Growth","Tree"]
code: def print_tree(self, node=None, indent_times=0):
      """Recursive method which prints the FP Growth Tree"""
      if not node:
          node = self.tree_root
      indent = "    " * indent_times
      print("%s%s:%s" % (indent, node.item, node.support))
      for child_key in node.children:
          child = node.children[child_key]
          self.print_tree(child, indent_times + 1)
  
file_path: ML-From-Scratch/mlfromscratch/unsupervised_learning/fp_growth.py
imports: from __future__ import division, print_function
  import numpy
  import itertools
label_desc: Use image node_id 6 for calling the FPGrowth obj's underlying member method code with example usage: obj.print_tree(node, indent_times) without return types