class Ai4r::Classifiers::Classifier
This class defines a common API for classifiers. All methods in this class must be implemented in subclasses.
Public Instance Methods
build(data_set)
click to toggle source
Build a new classifier, using data examples found in data_set. The last attribute of each item is considered as the item class.
# File lib/ai4r/classifiers/classifier.rb, line 24 def build(data_set) raise NotImplementedError end
eval(data)
click to toggle source
You can evaluate new data, predicting its class. e.g.
classifier.eval(['New York', '<30', 'F']) # => 'Y'
# File lib/ai4r/classifiers/classifier.rb, line 31 def eval(data) raise NotImplementedError end
get_rules()
click to toggle source
This method returns the generated rules in ruby code. e.g.
classifier.get_rules # => if age_range=='<30' then marketing_target='Y' elsif age_range=='[30-50)' and city=='Chicago' then marketing_target='Y' elsif age_range=='[30-50)' and city=='New York' then marketing_target='N' elsif age_range=='[50-80]' then marketing_target='N' elsif age_range=='>80' then marketing_target='Y' else raise 'There was not enough information during training to do a proper induction for this data element' end
It is a nice way to inspect induction results, and also to execute them:
age_range = '<30' city='New York' marketing_target = nil eval classifier.get_rules puts marketing_target # => 'Y'
Note, however, that not all classifiers are able to produce rules. This method is not implemented in such classifiers.
# File lib/ai4r/classifiers/classifier.rb, line 56 def get_rules raise NotImplementedError end