Package weka.core.neighboursearch.kdtrees

# Class KMeansInpiredMethod

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

All Implemented Interfaces:
  `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
  Description
  `KMeansInpiredMethod()`

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

  - ### KMeansInpiredMethod

    public KMeansInpiredMethod()

- ## Method Details

  - ### globalInfo

    public 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 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:
      `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 `KDTreeNodeSplitter`
    Returns:
      the revision