Package weka.classifiers.trees.ft
Class FTtree
java.lang.Object
weka.classifiers.Classifier
weka.classifiers.trees.lmt.LogisticBase
weka.classifiers.trees.ft.FTtree
- All Implemented Interfaces:
Serializable,Cloneable,CapabilitiesHandler,OptionHandler,RevisionHandler,WeightedInstancesHandler
- Direct Known Subclasses:
FTInnerNode,FTLeavesNode,FTNode
Abstract class for Functional tree structure.
- Version:
- $Revision: 1.4 $
- Author:
- Jo\~{a}o Gama, Carlos Ferreira
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintassignIDs(int lastID) Assigns unique IDs to all nodes in the treeintassignLeafModelNumbers(int leafCounter) Assigns numbers to the logistic regression models at the leaves of the treeabstract voidbuildClassifier(Instances data) Method for building a Functional Tree (only called for the root node).abstract voidbuildTree(Instances data, SimpleLinearRegression[][] higherRegressions, double totalInstanceWeight, double higherNumParameters) Abstract method for building the tree structure.voidcleanup()Cleanup in order to save memory.abstract double[]distributionForInstance(Instance instance) Returns the class probabilities for an instance given by the Functional tree.intgetConstError(double[] probsConst) Returns a string describing the number of LogitBoost iterations performed at this node, the total number of LogitBoost iterations performed (including iterations at higher levels in the tree), and the number of training examples at this node.getNodes()Return a list of all inner nodes in the treevoidFills a list with all inner nodes in the treeintMethod to count the number of inner nodes in the treeintReturns the number of leaves in the tree.Returns the revision string.graph()Returns graph describing the tree.booleanReturns true if the logistic regression model at this node has changed compared to the one at the parent node.double[]modelDistributionForInstance(Instance instance) Returns the class probabilities for an instance according to the logistic model at the node.Returns a string describing the logistic regression function at the node.intReturns the number of leaves (normal count).intnumNodes()Returns the number of nodes.abstract doubleprune()Abstract Method that prunes a tree using C4.5 pruning procedure.toString()Returns a description of the Functional tree (tree structure and logistic models)Methods inherited from class weka.classifiers.trees.lmt.LogisticBase
getMaxIterations, getNumRegressions, getUseAIC, getUsedAttributes, getWeightTrimBeta, percentAttributesUsed, setHeuristicStop, setMaxIterations, setUseAIC, setWeightTrimBetaMethods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getCapabilities, getDebug, getOptions, listOptions, makeCopies, makeCopy, setDebug, setOptions
-
Constructor Details
-
FTtree
public FTtree()
-
-
Method Details
-
buildClassifier
Method for building a Functional Tree (only called for the root node). Grows an initial Functional Tree.- Overrides:
buildClassifierin classLogisticBase- Parameters:
data- the data to train with- Throws:
Exception- if something goes wrong
-
buildTree
public abstract void buildTree(Instances data, SimpleLinearRegression[][] higherRegressions, double totalInstanceWeight, double higherNumParameters) throws Exception Abstract method for building the tree structure. Builds a logistic model, splits the node and recursively builds tree for child nodes.- Parameters:
data- the training data passed on to this nodehigherRegressions- An array of regression functions produced by LogitBoost at higher levels in the tree. They represent a logistic regression model that is refined locally at this node.totalInstanceWeight- the total number of training exampleshigherNumParameters- effective number of parameters in the logistic regression model built in parent nodes- Throws:
Exception- if something goes wrong
-
prune
Abstract Method that prunes a tree using C4.5 pruning procedure.- Throws:
Exception- if something goes wrong
-
getNumInnerNodes
public int getNumInnerNodes()Method to count the number of inner nodes in the tree- Returns:
- the number of inner nodes
-
getNumLeaves
public int getNumLeaves()Returns the number of leaves in the tree. Leaves are only counted if their logistic model has changed compared to the one of the parent node.- Returns:
- the number of leaves
-
getNodes
Return a list of all inner nodes in the tree- Returns:
- the list of nodes
-
getNodes
Fills a list with all inner nodes in the tree- Parameters:
nodeList- the list to be filled
-
getConstError
public int getConstError(double[] probsConst) - Type Parameters:
any- probsConst
-
hasModels
public boolean hasModels()Returns true if the logistic regression model at this node has changed compared to the one at the parent node.- Returns:
- whether it has changed
-
modelDistributionForInstance
Returns the class probabilities for an instance according to the logistic model at the node.- Parameters:
instance- the instance- Returns:
- the array of probabilities
- Throws:
Exception
-
distributionForInstance
Returns the class probabilities for an instance given by the Functional tree.- Overrides:
distributionForInstancein classLogisticBase- Parameters:
instance- the instance- Returns:
- the array of probabilities
- Throws:
Exception- if distribution can't be computed successfully
-
toString
Returns a description of the Functional tree (tree structure and logistic models)- Overrides:
toStringin classLogisticBase- Returns:
- describing string
-
numLeaves
public int numLeaves()Returns the number of leaves (normal count).- Returns:
- the number of leaves
-
numNodes
public int numNodes()Returns the number of nodes.- Returns:
- the number of nodes
-
getModelParameters
Returns a string describing the number of LogitBoost iterations performed at this node, the total number of LogitBoost iterations performed (including iterations at higher levels in the tree), and the number of training examples at this node.- Returns:
- the describing string
-
assignIDs
public int assignIDs(int lastID) Assigns unique IDs to all nodes in the tree -
assignLeafModelNumbers
public int assignLeafModelNumbers(int leafCounter) Assigns numbers to the logistic regression models at the leaves of the tree -
modelsToString
Returns a string describing the logistic regression function at the node. -
graph
Returns graph describing the tree.- Throws:
Exception- if something goes wrong
-
cleanup
public void cleanup()Cleanup in order to save memory.- Overrides:
cleanupin classLogisticBase
-
getRevision
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Overrides:
getRevisionin classLogisticBase- Returns:
- the revision
-