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