Class: Evoc::ClosedRules

Inherits:
Object
  • Object
show all
Defined in:
lib/evoc/algorithms/closed_rules.rb

Class Method Summary collapse

Class Method Details

.closed_rules(tx_store:, query:) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/evoc/algorithms/closed_rules.rb', line 3

def self.closed_rules(tx_store:,query:)
  # @@store = tx_store
  # create initial trees, one tree per consequent
  tree = self.initialize_tree(tx_store,query)
  # puts "INIT TREE:"
  # tree.print_tree(1,nil,lambda {|node,pre| puts "#{pre} #{@@store.ints2names(node.name.map(&:to_i))}"})
  closed_rules = Evoc::RuleStore.new(query: query)
  tree.children.each do |consequent|
    self.extend_nodes(consequent).each do |frequency, closed_sets|
      closed_sets.each do |closed_set| 
        antecedent = closed_set - consequent.name
        closed_rules << Evoc::Rule.new(lhs: antecedent.map(&:to_i), rhs: consequent.name.map(&:to_i),tx_store: tx_store, m_support: frequency.to_r/tx_store.size)
      end
    end
  end
  return closed_rules
end