class Mirlo::Classifier
Attributes
train_set[RW]
Public Instance Methods
test_with(test_set)
click to toggle source
# File lib/mirlo/classifier.rb, line 28 def test_with(test_set) TestResult.new.tap do |tr| test_set.samples.each do |sample| prediction = classify(sample) tr.add(sample, prediction) end end end
train(train_set, n_iterations = Mirlo::DEFAULT_N_ITERATIONS)
click to toggle source
# File lib/mirlo/classifier.rb, line 7 def train(train_set, n_iterations = Mirlo::DEFAULT_N_ITERATIONS) @train_set = train_set n_iterations.times { |i| iterate } end
train_until(train_set, max_error: 0.01, max_iterations: Mirlo::DEFAULT_N_ITERATIONS)
click to toggle source
# File lib/mirlo/classifier.rb, line 13 def train_until(train_set, max_error: 0.01, max_iterations: Mirlo::DEFAULT_N_ITERATIONS) @train_set = train_set max_iterations.times do |i| iterate test_result = test_with(train_set) break if test_result.mean_squared_error <= max_error if i == max_iterations - 1 raise ClassifyError.new("Could not reach a standard error of #{max_error} after #{max_iterations} iterations") end end end