weka.core.neighboursearch.balltrees
Class PointsClosestToFurthestChildren

java.lang.Object
  extended by weka.core.neighboursearch.balltrees.BallSplitter
      extended by weka.core.neighboursearch.balltrees.PointsClosestToFurthestChildren
All Implemented Interfaces:
java.io.Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler

public class PointsClosestToFurthestChildren
extends BallSplitter
implements TechnicalInformationHandler

Implements the Moore's method to split a node of a ball tree.

For more information please see section 2 of the 1st and 3.2.3 of the 2nd:

Andrew W. Moore: The Anchors Hierarchy: Using the Triangle Inequality to Survive High Dimensional Data. In: UAI '00: Proceedings of the 16th Conference on Uncertainty in Artificial Intelligence, San Francisco, CA, USA, 397-405, 2000.

Ashraf Masood Kibriya (2007). Fast Algorithms for Nearest Neighbour Search. Hamilton, New Zealand.

BibTeX:

 @inproceedings{Moore2000,
    address = {San Francisco, CA, USA},
    author = {Andrew W. Moore},
    booktitle = {UAI '00: Proceedings of the 16th Conference on Uncertainty in Artificial Intelligence},
    pages = {397-405},
    publisher = {Morgan Kaufmann Publishers Inc.},
    title = {The Anchors Hierarchy: Using the Triangle Inequality to Survive High Dimensional Data},
    year = {2000}
 }
 
 @mastersthesis{Kibriya2007,
    address = {Hamilton, New Zealand},
    author = {Ashraf Masood Kibriya},
    school = {Department of Computer Science, School of Computing and Mathematical Sciences, University of Waikato},
    title = {Fast Algorithms for Nearest Neighbour Search},
    year = {2007}
 }
 

Version:
$Revision: 1.2 $
Author:
Ashraf M. Kibriya (amk14[at-the-rate]cs[dot]waikato[dot]ac[dot]nz)
See Also:
Serialized Form

Constructor Summary
PointsClosestToFurthestChildren()
          Constructor.
PointsClosestToFurthestChildren(int[] instList, Instances insts, EuclideanDistance e)
          Constructor.
 
Method Summary
 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 object.
 void splitNode(BallNode node, int numNodesCreated)
          Splits a ball into two.
 
Methods inherited from class weka.core.neighboursearch.balltrees.BallSplitter
getOptions, listOptions, setEuclideanDistanceFunction, setInstanceList, setInstances, setOptions
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PointsClosestToFurthestChildren

public PointsClosestToFurthestChildren()
Constructor.


PointsClosestToFurthestChildren

public PointsClosestToFurthestChildren(int[] instList,
                                       Instances insts,
                                       EuclideanDistance e)
Constructor.

Parameters:
instList - The master index array.
insts - The instances on which the tree is (or is to be) built.
e - The Euclidean distance function to use for splitting.
Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing this object.

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(BallNode node,
                      int numNodesCreated)
               throws java.lang.Exception
Splits a ball into two.

Specified by:
splitNode in class BallSplitter
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.
Throws:
java.lang.Exception - If there is some problem in splitting the given node.

getRevision

public java.lang.String getRevision()
Returns the revision string.

Specified by:
getRevision in interface RevisionHandler
Overrides:
getRevision in class BallSplitter
Returns:
the revision