SeCo
The SeCo-Framework for Rule Learning
The SeCo-Framework is a modular architecture for learning decision rules on given datasets. It is under development for some years now and it is planned to publish it soon under the GPL at sourceforge. The framework allows to specify various building blocks to implement a variety of different rule learning algorithms. The first version of the framework was based on the architecture given in the paper "Separate-and-Conquer Rule Learning" by J.Fürnkranz. The main components (interfaces) of the framework are:
- Heuristic
- specifies the heuristic, a wide variety of different heuristics is implemented, even some parametrized heuristics with best parameter settings (these are the result of this paper)
- CandidateSelector
- which candidates (refined candidate rules, i.e., conditions in a rule) should be selected for further refinements
- ClassificationMode
- type of classification method (i.e., decision list or unordered list and (weighted) majority voting)
- PostProcessor
- implements the optimization phase of Ripper
- RuleFilter
- used to filter out unpromising candidates or to implement a hill-climbing search by selecting only the best rule for further refinements
- RuleInitializer
- how to initialize the first rule, i.e., as an empty rule covering all examples (for top-down learning) or as a random positive example (for bottom-up learning)
- BinarizationMode
- specifies whether an (un)ordered binarization on the classes should be done or whether a multi-class rule set should be learned (where the class to learn is not fixed in advance)
- RuleRefiner
- decides how a rule is refined (i.e., by adding or removing conditions)
- RuleStoppingCriterion
- states when the algorithm stops to induce more rules
- StoppingCriterion
- responsible for stopping the addition of conditions in a candidate rule
- WeightModel
- used to reweight the examples in spite of removing them completely
Note that the list of components is not complete and is currently extended. Thus, this site is updated frequently and in some sense it is still under construction.
Currently the following algorithms can be instantiated in the SeCo-Framework:
- CN2, see here or here
- AQ
- Ripper
- SimpleSeCo
- which is a very simple version of a rule learner which was used in many different papers (e.g., see here or this paper)
For further information see the Technical Report of the SeCo-Framework.