weka.core.neighboursearch.kdtrees
Class SlidingMidPointOfWidestSide
java.lang.Object
weka.core.neighboursearch.kdtrees.KDTreeNodeSplitter
weka.core.neighboursearch.kdtrees.SlidingMidPointOfWidestSide
- All Implemented Interfaces:
- java.io.Serializable, OptionHandler, TechnicalInformationHandler
public class SlidingMidPointOfWidestSide
- extends KDTreeNodeSplitter
- implements TechnicalInformationHandler
The class that splits a node into two based on the midpoint value of the dimension in which the node's rectangle is widest. If after splitting one side is empty then it is slided towards the non-empty side until there is at least one point on the empty side.
For more information see also:
David M. Mount (2006). ANN Programming Manual. College Park, MD, USA.
BibTeX:
@manual{Mount2006,
address = {College Park, MD, USA},
author = {David M. Mount},
organization = {Department of Computer Science, University of Maryland},
title = {ANN Programming Manual},
year = {2006},
HTTP = {Available from http://www.cs.umd.edu/\~mount/ANN/}
}
- Version:
- $Revision: 1.2 $
- Author:
- Ashraf M. Kibriya (amk14@waikato.ac.nz)
- See Also:
- Serialized Form
Method Summary |
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. |
void |
splitNode(KDTreeNode node,
int numNodesCreated,
double[][] nodeRanges,
double[][] universe)
Splits a node into two based on the midpoint value of the dimension
in which the node's rectangle is widest. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SlidingMidPointOfWidestSide
public SlidingMidPointOfWidestSide()
globalInfo
public java.lang.String globalInfo()
- Returns a string describing this nearest neighbour search algorithm.
- Returns:
- a description of the algorithm for displaying in the
explorer/experimenter gui
getTechnicalInformation
public 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.
- Specified by:
getTechnicalInformation
in interface TechnicalInformationHandler
- Returns:
- the technical information about this class
splitNode
public void splitNode(KDTreeNode node,
int numNodesCreated,
double[][] nodeRanges,
double[][] universe)
throws java.lang.Exception
- Splits a node into two based on the midpoint value of the dimension
in which the node's rectangle is widest. If after splitting one side
is empty then it is slided towards the non-empty side until there is
at least one point on the empty side. The two nodes created after the
whole splitting are correctly initialised. And, node.left and
node.right are set appropriately.
- Specified by:
splitNode
in class KDTreeNodeSplitter
- Parameters:
node
- The node to split.numNodesCreated
- The number of nodes that so far have been
created for the tree, so that the newly created nodes are
assigned correct/meaningful node numbers/ids.nodeRanges
- The attributes' range for the points inside
the node that is to be split.universe
- The attributes' range for the whole
point-space.
- Throws:
java.lang.Exception
- If there is some problem in splitting the
given node.