def build(data_set)
data_set.check_not_empty
@data_set = data_set
@domains = @data_set.build_domains.collect {|domain| domain.to_a}
@outputs = @domains.last.length
@inputs = 0
@domains[0...-1].each {|domain| @inputs += domain.length}
@structure = [@inputs] + @hidden_layers + [@outputs]
@network = @network_class.new @structure
@training_iterations.times do
data_set.data_items.each do |data_item|
input_values = data_to_input(data_item[0...-1])
output_values = data_to_output(data_item.last)
@network.train(input_values, output_values)
end
end
return self
end