Class ClassificationFinder
java.lang.Object
adaa.analytics.rules.logic.induction.AbstractFinder
adaa.analytics.rules.logic.induction.ClassificationFinder
- All Implemented Interfaces:
AutoCloseable
- Direct Known Subclasses:
ApproximateClassificationFinder
,ClassificationExpertFinder
,ClassificationFinderPrecalculated
,ContrastClassificationFinder
Class for growing and pruning classification rules.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<IAttribute,
Map<Double, IntegerBitSet>> Map of precalculated coverings (time optimization).protected Map<IAttribute,
Map<Double, IntegerBitSet>> Fields inherited from class adaa.analytics.rules.logic.induction.AbstractFinder
attributeValuesOrder, modifier, params, pool, threadCount
-
Constructor Summary
ConstructorsConstructorDescriptionInitializes induction parameters. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
checkCandidate
(ElementaryCondition cnd, double classId, double p, double n, double new_p, double P, double uncoveredSize, int ruleOrderNum) Checks if candidate condition fulfills coverage requirement.int
grow
(Rule rule, IExampleSet dataset, Set<Integer> uncovered) Adds elementary conditions to the rule premise until termination conditions are fulfilled.protected ElementaryCondition
induceCondition
(Rule rule, IExampleSet trainSet, Set<Integer> uncoveredPositives, Set<Integer> coveredByRule, Set<IAttribute> allowedAttributes, Pair<String, Object>... extraParams) Induces an elementary condition.void
postprocess
(Rule rule, IExampleSet dataset) Postprocesses a rule.void
preprocess
(IExampleSet trainSet) If example set is unweighted, method precalculates conditions coverings and stores them as bit vectors in @see precalculatedCoverings field.void
prune
(Rule rule, IExampleSet trainSet, Set<Integer> uncovered) Removes irrelevant conditions from the rule using hill-climbing strategy.boolean
tryAddCondition
(Rule currentRule, Rule bestRule, ConditionBase condition, IExampleSet trainSet, Set<Integer> covered, Set<Integer> uncovered) Makes an attempt to add the condition to the rule.Methods inherited from class adaa.analytics.rules.logic.induction.AbstractFinder
addObserver, clearObservers, close, names2attributes, notifyConditionAdded, notifyConditionRemoved, notifyGrowingFinished, notifyGrowingStarted, notifyRuleReady
-
Field Details
-
precalculatedCoverings
Map of precalculated coverings (time optimization). For each attribute there is a set of distinctive values. For each value there is a bit vector of examples covered. -
precalculatedCoveringsComplement
-
-
Constructor Details
-
ClassificationFinder
Initializes induction parameters.- Parameters:
params
- Induction parameters.
-
-
Method Details
-
preprocess
If example set is unweighted, method precalculates conditions coverings and stores them as bit vectors in @see precalculatedCoverings field.- Overrides:
preprocess
in classAbstractFinder
- Parameters:
trainSet
- Training set.
-
grow
Adds elementary conditions to the rule premise until termination conditions are fulfilled.- Overrides:
grow
in classAbstractFinder
- Parameters:
rule
- Rule to be grown.dataset
- Training set.uncovered
- Set of positive examples yet uncovered by the model.- Returns:
- Number of conditions added.
-
prune
Removes irrelevant conditions from the rule using hill-climbing strategy.- Overrides:
prune
in classAbstractFinder
- Parameters:
rule
- Rule to be pruned.trainSet
- Training set.uncovered
- Collection of examples yet uncovered by the model (positive examples in the classification problems).
-
postprocess
Description copied from class:AbstractFinder
Postprocesses a rule.- Overrides:
postprocess
in classAbstractFinder
- Parameters:
rule
- Rule to be postprocessed.dataset
- Training set.
-
induceCondition
protected ElementaryCondition induceCondition(Rule rule, IExampleSet trainSet, Set<Integer> uncoveredPositives, Set<Integer> coveredByRule, Set<IAttribute> allowedAttributes, Pair<String, Object>... extraParams) Induces an elementary condition.- Specified by:
induceCondition
in classAbstractFinder
- Parameters:
rule
- Current rule.trainSet
- Training set.uncoveredPositives
- Set of positive examples uncovered by the model.coveredByRule
- Set of examples covered by the rule being grown.allowedAttributes
- Set of attributes that may be used during induction.extraParams
- Additional parameters.- Returns:
- Induced elementary condition.
-
tryAddCondition
public boolean tryAddCondition(Rule currentRule, Rule bestRule, ConditionBase condition, IExampleSet trainSet, Set<Integer> covered, Set<Integer> uncovered) Makes an attempt to add the condition to the rule.- Parameters:
currentRule
- Rule to be updated.bestRule
- Best rule found up to now. Use null value if not needed.condition
- Condition to be added.trainSet
- Training set.covered
- Set of examples covered by the rules.- Returns:
- Flag indicating whether condition has been added successfully.
-
checkCandidate
protected boolean checkCandidate(ElementaryCondition cnd, double classId, double p, double n, double new_p, double P, double uncoveredSize, int ruleOrderNum) Checks if candidate condition fulfills coverage requirement.- Parameters:
cnd
- Candidate condition.classId
- Class identifier.- Returns:
-