def build_rule(data_examples, attr_index, domains)
domain = domains[attr_index]
value_freq = Hash.new
domain.each do |attr_value|
value_freq[attr_value] = Hash.new { |hash, key| hash[key] = 0 }
end
data_examples.each do |data|
value_freq[data[attr_index]][data.last] = value_freq[data[attr_index]][data.last] + 1
end
rule = {}
correct_instances = 0
value_freq.each_pair do |attr, class_freq_hash|
max_freq = 0
class_freq_hash.each_pair do |class_value, freq|
if max_freq < freq
rule[attr] = class_value
max_freq = freq
end
end
correct_instances += max_freq
end
return {:attr_index => attr_index, :rule => rule, :correct => correct_instances}
end