weka.core.neighboursearch.balltrees

## Class PointsClosestToFurthestChildren

- java.lang.Object
- - weka.core.neighboursearch.balltrees.BallSplitter
  - - 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: 10203 $
  Author:
    Ashraf M. Kibriya (amk14[at-the-rate]cs[dot]waikato[dot]ac[dot]nz)
  See Also:
    Serialized Form

- - ### Constructor Summary

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

  - ### Method Summary

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