weka.core.neighboursearch.kdtrees

## Class KMeansInpiredMethod

- java.lang.Object
- - weka.core.neighboursearch.kdtrees.KDTreeNodeSplitter
  - - weka.core.neighboursearch.kdtrees.KMeansInpiredMethod

- All Implemented Interfaces:
    java.io.Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler

      public class KMeansInpiredMethod
      extends KDTreeNodeSplitter
      implements TechnicalInformationHandler

  The class that splits a node into two such that the overall sum of squared distances of points to their centres on both sides of the (axis-parallel) splitting plane is minimum.
  For more information see also:
  Ashraf Masood Kibriya (2007). Fast Algorithms for Nearest Neighbour Search. Hamilton, New Zealand.

  BibTeX:

       @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

- - ### Field Summary

    - ### Fields inherited from class weka.core.neighboursearch.kdtrees.KDTreeNodeSplitter

      `MAX, MIN, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `KMeansInpiredMethod()`

  - ### 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 nearest neighbour search algorithm.
    `void` | `splitNode(KDTreeNode node, int numNodesCreated, double[][] nodeRanges, double[][] universe)` Splits a node into two such that the overall sum of squared distances of points to their centres on both sides of the (axis-parallel) splitting plane is minimum.

    - ### Methods inherited from class weka.core.neighboursearch.kdtrees.KDTreeNodeSplitter

      `getOptions, listOptions, setEuclideanDistanceFunction, setInstanceList, setInstances, setNodeWidthNormalization, setOptions`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### KMeansInpiredMethod

          public KMeansInpiredMethod()

  - ### Method Detail

    - #### 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 such that the overall sum of squared distances of points to their centres on both sides of the (axis-parallel) splitting plane is minimum. 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.

    - #### getRevision

          public java.lang.String getRevision()

      Returns the revision string.
      Specified by:
        `getRevision` in interface `RevisionHandler`
      Overrides:
        `getRevision` in class `KDTreeNodeSplitter`
      Returns:
        the revision