class DecisionTree
Attributes
root[R]
Public Class Methods
new(tree_xml)
click to toggle source
# File lib/decision_tree.rb, line 7 def initialize(tree_xml) @id = tree_xml.attribute('id') @root = Node.new(tree_xml.xpath('TreeModel/Node')) end
Public Instance Methods
decide(features)
click to toggle source
# File lib/decision_tree.rb, line 12 def decide(features) curr = @root while curr.decision == '' prev = curr curr = step(curr, features) return if didnt_step?(curr, prev) end curr.decision end
Private Instance Methods
didnt_step?(curr, prev)
click to toggle source
# File lib/decision_tree.rb, line 31 def didnt_step?(curr, prev) return false if (prev.pred != curr.pred) RandomForester.logger.error "Null tree: #{@id}, bad feature: #{curr.left.pred.field }" true end
step(curr, features)
click to toggle source
# File lib/decision_tree.rb, line 25 def step(curr, features) curr = curr.left if curr.left && curr.left.true?(features) curr = curr.right if curr.right && curr.right.true?(features) curr end