Package weka.core.neighboursearch.balltrees

# Class TopDownConstructor

java.lang.Object
weka.core.neighboursearch.balltrees.BallTreeConstructor
weka.core.neighboursearch.balltrees.TopDownConstructor

All Implemented Interfaces:
  `Serializable`, `OptionHandler`, `RevisionHandler`, `TechnicalInformationHandler`

public class TopDownConstructor extends BallTreeConstructor implements TechnicalInformationHandler
The class implementing the TopDown construction method of ball trees. It further uses one of a number of different splitting methods to split a ball while constructing the tree top down.
For more information see also:
Stephen M. Omohundro (1989). Five Balltree Construction Algorithms.

BibTeX:

     @techreport{Omohundro1989,
        author = {Stephen M. Omohundro},
        institution = {International Computer Science Institute},
        month = {December},
        number = {TR-89-063},
        title = {Five Balltree Construction Algorithms},
        year = {1989}
     }

Valid options are:

     -S <classname and options>
      Ball splitting algorithm to use.

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

## Constructor Summary

Constructors
Constructor
Description
`TopDownConstructor()`
Creates a new instance of TopDownConstructor.

## Method Summary

Modifier and Type
Method
Description
`int[]`
`addInstance(BallNode node, Instance inst)`
Adds an instance to the ball tree.
`String`
`ballSplitterTipText()`
Returns the tip text for this property.
`BallNode`
`buildTree()`
Builds the ball tree top down.
`BallSplitter`
`getBallSplitter()`
Returns the BallSplitter algorithm set that would be used by the TopDown BallTree constructor.
`String[]`
`getOptions()`
Gets the current settings of KDtree.
`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.
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`void`
`setBallSplitter(BallSplitter splitter)`
Sets the ball splitting algorithm to be used by the TopDown constructor.
`void`
`setOptions(String[] options)`
Parses a given list of options.

### Methods inherited from class weka.core.neighboursearch.balltrees.BallTreeConstructor

`containChildBallsTipText, getContainChildBalls, getMaxDepth, getMaxInstancesInLeaf, getMaxRelativeLeafRadius, getNumLeaves, getNumNodes, maxInstancesInLeafTipText, maxRelativeLeafRadiusTipText, setContainChildBalls, setEuclideanDistanceFunction, setInstanceList, setInstances, setMaxInstancesInLeaf, setMaxRelativeLeafRadius`

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

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

## Constructor Details

### TopDownConstructor

public TopDownConstructor()
Creates a new instance of TopDownConstructor.

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

### buildTree

public BallNode buildTree() throws Exception
Builds the ball tree top down.

Specified by:
  `buildTree` in class `BallTreeConstructor`
Returns:
  The root node of the tree.
Throws:
  `Exception` - If there is problem building the tree.

### addInstance

public int[] addInstance(BallNode node, Instance inst) throws Exception
Adds an instance to the ball tree.

Specified by:
  `addInstance` in class `BallTreeConstructor`
Parameters:
  `node` - The root node of the tree.
  `inst` - The instance to add to the tree.
Returns:
  The new master index array after adding the instance.
Throws:
  `Exception` - If there is some problem adding the given instance to the tree.

### ballSplitterTipText

public String ballSplitterTipText()
Returns the tip text for this property.

Returns:
  tip text for this property suitable for displaying in the explorer/experimenter gui

### getBallSplitter

public BallSplitter getBallSplitter()
Returns the BallSplitter algorithm set that would be used by the TopDown BallTree constructor.

Returns:
  The BallSplitter currently in use.

### setBallSplitter

public void setBallSplitter(BallSplitter splitter)
Sets the ball splitting algorithm to be used by the TopDown constructor.

Parameters:
  `splitter` - The BallSplitter to use.

### listOptions

public Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
  `listOptions` in interface `OptionHandler`
Overrides:
  `listOptions` in class `BallTreeConstructor`
Returns:
  an enumeration of all the available options.

### setOptions

public void setOptions(String[] options) throws Exception
Parses a given list of options. Valid options are:

     -S <classname and options>
      Ball splitting algorithm to use.

Specified by:
  `setOptions` in interface `OptionHandler`
Overrides:
  `setOptions` in class `BallTreeConstructor`
Parameters:
  `options` - the list of options as an array of strings
Throws:
  `Exception` - if an option is not supported

### getOptions

public String[] getOptions()
Gets the current settings of KDtree.

Specified by:
  `getOptions` in interface `OptionHandler`
Overrides:
  `getOptions` in class `BallTreeConstructor`
Returns:
  an array of strings suitable for passing to setOptions

### getRevision

public String getRevision()
Returns the revision string.

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