class AdaBoost::Resampler
Public Class Methods
new(y_index)
click to toggle source
# File lib/adaboost/resampler.rb, line 5 def initialize(y_index) @y_index = y_index end
Public Instance Methods
over_sample(samples)
click to toggle source
# File lib/adaboost/resampler.rb, line 9 def over_sample(samples) distribution = distribution(samples) y0 = distribution.negative y1 = distribution.positive majority = y0 < y1 ? 1.0 : -1.0 difference = (y0 - y1).abs samples.each do |sample| if difference <= 0 break end if sample[@y_index] != majority samples << sample difference -= 1 end end end
Private Instance Methods
distribution(instances)
click to toggle source
# File lib/adaboost/resampler.rb, line 28 def distribution(instances) analyzer = FeaturesAnalyzer.new(@y_index) analyzer.analyze(instances).distribution end