Class: Arroz::Ensemble

Inherits:
Object
  • Object
show all
Defined in:
lib/arroz/ensemble.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(classifiers) ⇒ Ensemble

Returns a new instance of Ensemble.



7
8
9
# File 'lib/arroz/ensemble.rb', line 7

def initialize(classifiers)
  @classifiers = classifiers
end

Instance Attribute Details

#classifiersObject

Returns the value of attribute classifiers.



5
6
7
# File 'lib/arroz/ensemble.rb', line 5

def classifiers
  @classifiers
end

Instance Method Details

#classify(element) ⇒ Object



11
12
13
14
15
# File 'lib/arroz/ensemble.rb', line 11

def classify(element)
  guesses = classifiers.map { |c| c.classify(element) }
  
  plurality_vote(guesses)
end

#classify_projections(projections) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
22
23
24
# File 'lib/arroz/ensemble.rb', line 17

def classify_projections(projections)
  raise ArgumentError.new("Wrong number of projections") if projections.size != classifiers.size
  
  guesses = classifiers.zip(projections).
    map { |classifier, projection| classifier.classify(projection) }

  plurality_vote(guesses)
end