# File lib/ai4r/classifiers/multilayer_perceptron.rb, line 66
      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