public class BottomUpConstructor extends BallTreeConstructor implements TechnicalInformationHandler
@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.
Constructor and Description |
---|
BottomUpConstructor()
Creates a new instance of BottomUpConstructor.
|
Modifier and Type | Method and Description |
---|---|
int[] |
addInstance(BallNode node,
Instance inst)
Adds an instance to the ball tree.
|
BallNode |
buildTree()
Builds the ball tree bottom up.
|
Instance |
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.
|
java.lang.String |
getRevision()
Returns the revision string.
|
TechnicalInformation |
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.
|
java.lang.String |
globalInfo()
Returns a string describing this nearest neighbour search algorithm.
|
containChildBallsTipText, getContainChildBalls, getMaxDepth, getMaxInstancesInLeaf, getMaxRelativeLeafRadius, getNumLeaves, getNumNodes, getOptions, listOptions, maxInstancesInLeafTipText, maxRelativeLeafRadiusTipText, setContainChildBalls, setEuclideanDistanceFunction, setInstanceList, setInstances, setMaxInstancesInLeaf, setMaxRelativeLeafRadius, setOptions
public BottomUpConstructor()
public java.lang.String globalInfo()
public TechnicalInformation getTechnicalInformation()
getTechnicalInformation
in interface TechnicalInformationHandler
public BallNode buildTree() throws java.lang.Exception
buildTree
in class BallTreeConstructor
java.lang.Exception
- If there is problem building
the tree.public int[] addInstance(BallNode node, Instance inst) throws java.lang.Exception
addInstance
in class BallTreeConstructor
node
- The root node of the tree.inst
- The instance to add to the tree.java.lang.Exception
- Always as BottomUpConstructor
does not allow addition of instances after batch
construction.public Instance calcPivot(weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode node1, weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode node2, Instances insts) throws java.lang.Exception
node1
- The first child node.node2
- The second child node.insts
- The instance on which the tree is to be
built.java.lang.Exception
- If there is some problem calculating
the centre/pivot of the node.public double calcRadius(weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode n1, weka.core.neighboursearch.balltrees.BottomUpConstructor.TempNode n2) throws java.lang.Exception
n1
- The first child node.n2
- The second child node.java.lang.Exception
- If there is some problem
in calculating the radius.public java.lang.String getRevision()
getRevision
in interface RevisionHandler
getRevision
in class BallTreeConstructor