Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DecisionTreeNode ¶
type DecisionTreeNode struct { Type NodeType Children map[string]*DecisionTreeNode SplitAttr base.Attribute ClassDist map[string]int Class string ClassAttr base.Attribute }
DecisionTreeNode represents a given portion of a decision tree
func InferID3Tree ¶
func InferID3Tree(from base.FixedDataGrid, with RuleGenerator) *DecisionTreeNode
InferID3Tree builds a decision tree using a RuleGenerator from a set of Instances (implements the ID3 algorithm)
func (*DecisionTreeNode) Predict ¶
func (d *DecisionTreeNode) Predict(what base.FixedDataGrid) base.FixedDataGrid
Predict outputs a base.Instances containing predictions from this tree
func (*DecisionTreeNode) Prune ¶
func (d *DecisionTreeNode) Prune(using base.FixedDataGrid)
Prune eliminates branches which hurt accuracy
func (*DecisionTreeNode) String ¶
func (d *DecisionTreeNode) String() string
String returns a human-readable representation of a given node and it's children
type ID3DecisionTree ¶
type ID3DecisionTree struct { base.BaseClassifier Root *DecisionTreeNode PruneSplit float64 }
ID3DecisionTree represents an ID3-based decision tree using the Information Gain metric to select which attributes to split on at each node.
func NewID3DecisionTree ¶
func NewID3DecisionTree(prune float64) *ID3DecisionTree
NewID3DecisionTree returns a new ID3DecisionTree with the specified test-prune ratio. Of the ratio is less than 0.001, the tree isn't pruned
func (*ID3DecisionTree) Fit ¶
func (t *ID3DecisionTree) Fit(on base.FixedDataGrid)
Fit builds the ID3 decision tree
func (*ID3DecisionTree) Predict ¶
func (t *ID3DecisionTree) Predict(what base.FixedDataGrid) base.FixedDataGrid
Predict outputs predictions from the ID3 decision tree
func (*ID3DecisionTree) String ¶
func (t *ID3DecisionTree) String() string
String returns a human-readable version of this ID3 tree
type InformationGainRuleGenerator ¶
type InformationGainRuleGenerator struct { }
func (*InformationGainRuleGenerator) GenerateSplitAttribute ¶
func (r *InformationGainRuleGenerator) GenerateSplitAttribute(f base.FixedDataGrid) base.Attribute
GenerateSplitAttribute returns the non-class Attribute which maximises the information gain.
IMPORTANT: passing a base.Instances with no Attributes other than the class variable will panic()
func (*InformationGainRuleGenerator) GetSplitAttributeFromSelection ¶
func (r *InformationGainRuleGenerator) GetSplitAttributeFromSelection(consideredAttributes []base.Attribute, f base.FixedDataGrid) base.Attribute
GetSplitAttributeFromSelection returns the class Attribute which maximises the information gain amongst consideredAttributes
IMPORTANT: passing a zero-length consideredAttributes parameter will panic()
type RandomTree ¶
type RandomTree struct { base.BaseClassifier Root *DecisionTreeNode Rule *RandomTreeRuleGenerator }
RandomTree builds a decision tree by considering a fixed number of randomly-chosen attributes at each node
func NewRandomTree ¶
func NewRandomTree(attrs int) *RandomTree
NewRandomTree returns a new RandomTree which considers attrs randomly chosen attributes at each node.
func (*RandomTree) Fit ¶
func (rt *RandomTree) Fit(from base.FixedDataGrid)
Fit builds a RandomTree suitable for prediction
func (*RandomTree) Predict ¶
func (rt *RandomTree) Predict(from base.FixedDataGrid) base.FixedDataGrid
Predict returns a set of Instances containing predictions
func (*RandomTree) Prune ¶
func (rt *RandomTree) Prune(with base.FixedDataGrid)
Prune removes nodes from the tree which are detrimental to determining the accuracy of the test set (with)
func (*RandomTree) String ¶
func (rt *RandomTree) String() string
String returns a human-readable representation of this structure
type RandomTreeRuleGenerator ¶
type RandomTreeRuleGenerator struct { Attributes int // contains filtered or unexported fields }
RandomTreeRuleGenerator is used to generate decision rules for Random Trees
func (*RandomTreeRuleGenerator) GenerateSplitAttribute ¶
func (r *RandomTreeRuleGenerator) GenerateSplitAttribute(f base.FixedDataGrid) base.Attribute
GenerateSplitAttribute returns the best attribute out of those randomly chosen which maximises Information Gain
type RuleGenerator ¶
type RuleGenerator interface {
GenerateSplitAttribute(base.FixedDataGrid) base.Attribute
}
RuleGenerator implementations analyse instances and determine the best value to split on