class FpGrowth::FpTree::BonzaiSecateur

Public Class Methods

new(fp_tree, hardness=20) click to toggle source
# File lib/fpgrowth/fp_tree/bonzai_secateur.rb, line 5
def initialize(fp_tree, hardness=20)
  @fp_tree=fp_tree
  @hardness=hardness
end

Public Instance Methods

execute(hardness=@hardness, fp_tree=@fp_tree.clone) click to toggle source
# File lib/fpgrowth/fp_tree/bonzai_secateur.rb, line 10
def execute(hardness=@hardness, fp_tree=@fp_tree.clone)
  traverse(fp_tree)
  return fp_tree
end
execute!(hardness=@hardness) click to toggle source
# File lib/fpgrowth/fp_tree/bonzai_secateur.rb, line 15
def execute!(hardness=@hardness)
  return execute(hardness, @fp_tree)
end
traverse(fp_tree, cursor = fp_tree.root, deepness=0) click to toggle source
# File lib/fpgrowth/fp_tree/bonzai_secateur.rb, line 19
def traverse(fp_tree, cursor = fp_tree.root, deepness=0)
  children = cursor.children.clone
  threshold = cursor.support.to_f / 100 * (@hardness + deepness)
  children.each { |child|
    fp_tree.cut_branch(child) if child.support < threshold
  }
  cursor.children.each { |child| traverse(fp_tree, child, deepness + 1) }
end