Class BottomUpConstructor
java.lang.Object
weka.core.neighboursearch.balltrees.BallTreeConstructor
weka.core.neighboursearch.balltrees.BottomUpConstructor
- All Implemented Interfaces:
Serializable
,OptionHandler
,RevisionHandler
,TechnicalInformationHandler
The class that constructs a ball tree bottom up.
BibTeX:
@techreport{Omohundro1989, author = {Stephen M. Omohundro}, institution = {International Computer Science Institute}, month = {December}, number = {TR-89-063}, title = {Five Balltree Construction Algorithms}, year = {1989} }Valid options are:
-N <value> Set maximum number of instances in a leaf node (default: 40)
-R Set internal nodes' radius to the sum of the child balls radii. So that it contains the child balls.
- Version:
- $Revision: 8034 $
- Author:
- Ashraf M. Kibriya (amk14[at-the-rate]cs[dot]waikato[dot]ac[dot]nz)
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint[]
addInstance
(BallNode node, Instance inst) Adds an instance to the ball tree.Builds the ball tree bottom up.calcPivot
(weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode node1, weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode node2, Instances insts) Calculates the centroid pivot of a node based on its two child nodes.double
calcRadius
(weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode n1, weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode n2) Calculates the radius of a node based on its two child nodes.Returns the revision string.Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.Returns a string describing this nearest neighbour search algorithm.Methods inherited from class weka.core.neighboursearch.balltrees.BallTreeConstructor
containChildBallsTipText, getContainChildBalls, getMaxDepth, getMaxInstancesInLeaf, getMaxRelativeLeafRadius, getNumLeaves, getNumNodes, getOptions, listOptions, maxInstancesInLeafTipText, maxRelativeLeafRadiusTipText, setContainChildBalls, setEuclideanDistanceFunction, setInstanceList, setInstances, setMaxInstancesInLeaf, setMaxRelativeLeafRadius, setOptions
-
Constructor Details
-
BottomUpConstructor
public BottomUpConstructor()Creates a new instance of BottomUpConstructor.
-
-
Method Details
-
globalInfo
Returns a string describing this nearest neighbour search algorithm.- Returns:
- a description of the algorithm for displaying in the explorer/experimenter gui
-
getTechnicalInformation
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.- Specified by:
getTechnicalInformation
in interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
buildTree
Builds the ball tree bottom up.- Specified by:
buildTree
in classBallTreeConstructor
- Returns:
- The root node of the tree.
- Throws:
Exception
- If there is problem building the tree.
-
addInstance
Adds an instance to the ball tree.- Specified by:
addInstance
in classBallTreeConstructor
- Parameters:
node
- The root node of the tree.inst
- The instance to add to the tree.- Returns:
- The new master index array after adding the instance.
- Throws:
Exception
- Always as BottomUpConstructor does not allow addition of instances after batch construction.
-
calcPivot
public Instance calcPivot(weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode node1, weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode node2, Instances insts) throws Exception Calculates the centroid pivot of a node based on its two child nodes.- Parameters:
node1
- The first child node.node2
- The second child node.insts
- The instance on which the tree is to be built.- Returns:
- The centre/pivot of the node.
- Throws:
Exception
- If there is some problem calculating the centre/pivot of the node.
-
calcRadius
public double calcRadius(weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode n1, weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode n2) throws Exception Calculates the radius of a node based on its two child nodes.- Parameters:
n1
- The first child node.n2
- The second child node.- Returns:
- The calculated radius of the the node.
- Throws:
Exception
- If there is some problem in calculating the radius.
-
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classBallTreeConstructor
- Returns:
- the revision
-