decision Package
decision Package
Decision trees
-
infpy.decision.random() → x in the interval [0, 1).
attributes Module
The attributes of data we analyse with decision trees.
Not an attribute in the python sense
-
class infpy.decision.attributes.Attribute(name, fn)[source]
Bases: object
An attribute of the data to be classified
Not an attribute in the python sense
-
class infpy.decision.attributes.ContinuousAttribute(name, fn, mean, stddev)[source]
Bases: infpy.decision.attributes.Attribute
A continuous (of type float) attribute of the data to be classified
-
class infpy.decision.attributes.EnumerativeAttribute(name, fn, num_values)[source]
Bases: infpy.decision.attributes.Attribute
An enumerative attribute of the data to be classified
-
class infpy.decision.attributes.OrdinalAttribute(name, fn, num_values)[source]
Bases: infpy.decision.attributes.Attribute
An ordinal attribute of the data to be classified
decision Module
Implementation of a decision tree
-
class infpy.decision.decision.DecisionNode(rule, children)[source]
Bases: object
A node in a decision tree that makes a decision based on the data
-
class infpy.decision.decision.LeafNode(outcome)[source]
Bases: object
A node in a decision tree that returns one of the possible outcomes
-
class infpy.decision.decision.NodeCounter[source]
Bases: object
-
count = 0
-
class infpy.decision.decision.NodeMutator(p_mutation, context)[source]
Bases: object
Mutates nodes according to some probability
-
class infpy.decision.decision.PossibleOutcomes[source]
Bases: object
-
s = set([])
-
infpy.decision.decision.build_random_path(tree, path)[source]
Build a random path in tree to a leaf node
-
infpy.decision.decision.choose_random_decision_node(tree)[source]
Returns (parent,node) where parent is always a DecisionNode
-
infpy.decision.decision.combine_trees(tree_1, tree_2)[source]
Randomly combine 2 trees in place
-
infpy.decision.decision.count_nodes(tree)[source]
-
infpy.decision.decision.create_random_decision_tree(context, depth)[source]
-
infpy.decision.decision.insert_decision(decision_node, context, depth=0)[source]
Insert an extra decision in the tree
-
infpy.decision.decision.log_tree(tree, logger, level, indent=0)[source]
-
infpy.decision.decision.mutate_node(node, context)[source]
Mutate the given node
-
infpy.decision.decision.mutate_tree(tree, context, new_subtree_depth)[source]
Replace one node with a new random subtree of the given depth
-
infpy.decision.decision.print_tree(tree, indent=0)[source]
-
infpy.decision.decision.prune_tree(tree, rules_satisfied=None)[source]
Prunes the tree to remove useless nodes
-
infpy.decision.decision.random() → x in the interval [0, 1).
-
infpy.decision.decision.replace_rule(decision_node, context, depth=0)[source]
Replace the rule in the node with a completely new random rule
-
infpy.decision.decision.tree_has_only_one_outcome(tree, outcome=None)[source]
Does this tree have only one outcome and what is it?
Returns None if more than one outcome, otherwise returns outcome
-
infpy.decision.decision.tree_possible_outcomes(tree)[source]
Returns all the possible outcomes of this tree
-
infpy.decision.decision.visit_tree_nodes(tree, visitor)[source]
genepy_interface Module
Implements decision tree interface to the genepy genetic algorithm library
-
class infpy.decision.genepy_interface.DecisionTreeSpecies(context, initial_depth=3, p_mutation=0.1)[source]
Bases: object
Wraps a decision tree to interface to the pygene genetic algorithm library
Implements combination, mutation and random initialisation
-
mate(individual_1, individual_2)[source]
Recmbination
-
mutate(individual)[source]
Mutation in place
-
prune_individuals(pop)[source]
-
random_individual()[source]
Random initialisation
rule_generation Module
Implements rules to generate and modify decision trees
-
class infpy.decision.rule_generation.ComparisonRule(attr, constant)[source]
Bases: infpy.decision.rule_generation.Rule
A rule that compares the attribute’s value with a constant
-
class infpy.decision.rule_generation.Context[source]
Bases: object
The context object defines the data’s attributes and their range of values.
It also defines the possible outcomes (classifications) of a decision tree.
-
attributes = []
-
outcomes = []
-
class infpy.decision.rule_generation.MembershipRule(attr, iterable)[source]
Bases: infpy.decision.rule_generation.Rule
A rule that tests whether the attribute’s value is a member of some set
-
class infpy.decision.rule_generation.Rule(attr)[source]
Bases: object
A rule in a decision tree.
A rule uses one attribute and to choose between several possible outcomes
-
class infpy.decision.rule_generation.StraightThroughRule(attr)[source]
Bases: infpy.decision.rule_generation.Rule
A rule that simply returns the attribute’s value
-
infpy.decision.rule_generation.new_mutated_rule(rule, degree_of_mutation=1.0)[source]
Create a new mutated copy of a rule
-
infpy.decision.rule_generation.new_rule(attributes)[source]
Chooses one of the attributes and creates a rule based on it.
See new_rule_for_attribute
-
infpy.decision.rule_generation.new_rule_for_attribute(attr)[source]
Creates a new rule based on the attribute
Returns (rule,# possible outcomes)
A rule is function object that takes one argument (a datum) and returns
an index into some children
-
infpy.decision.rule_generation.only_possible_outcome(satisfied_rule, outcome, rule_to_test)[source]
Given that the satisfied_rule has the given outcome, are we guaranteed what
the outcome of the rule_to_test is?
Returns the outcome if we are sure, returns None if not
-
infpy.decision.rule_generation.random() → x in the interval [0, 1).