Package weka.core.neighboursearch.balltrees

# Class PointsClosestToFurthestChildren

java.lang.Object
weka.core.neighboursearch.balltrees.BallSplitter
weka.core.neighboursearch.balltrees.PointsClosestToFurthestChildren

All Implemented Interfaces:
  `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

Constructors
Constructor
Description
`PointsClosestToFurthestChildren()`
Constructor.
`PointsClosestToFurthestChildren(int[] instList, Instances insts, EuclideanDistance e)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`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.
`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 Details

### 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 Details

### globalInfo

public 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 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:
  `Exception` - If there is some problem in splitting the given node.

### getRevision

public String getRevision()
Returns the revision string.

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