Module: HybridForest::Trees::Impurity
- Included in:
- Entropy, GiniImpurity
- Defined in:
- lib/hybridforest/trees/impurity_metrics/impurity.rb
Instance Method Summary collapse
- #compute(instances) ⇒ Object
- #information_gain(children, parent_impurity) ⇒ Object
- #weighted_impurity(instances_in_child, parent_count) ⇒ Object
Instance Method Details
#compute(instances) ⇒ Object
23 24 25 |
# File 'lib/hybridforest/trees/impurity_metrics/impurity.rb', line 23 def compute(instances) raise NotImplementedError, "Must be implemented by including classes" end |
#information_gain(children, parent_impurity) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/hybridforest/trees/impurity_metrics/impurity.rb', line 8 def information_gain(children, parent_impurity) return 0.0 if children.blank? parent_count = children.sum(&:count) children_impurity = children.sum do |child| weighted_impurity(child, parent_count) end parent_impurity - children_impurity end |
#weighted_impurity(instances_in_child, parent_count) ⇒ Object
18 19 20 21 |
# File 'lib/hybridforest/trees/impurity_metrics/impurity.rb', line 18 def weighted_impurity(instances_in_child, parent_count) weight = instances_in_child.count.to_f / parent_count compute(instances_in_child) * weight end |