Class KDTreeNodeSplitter
java.lang.Object
weka.core.neighboursearch.kdtrees.KDTreeNodeSplitter
- All Implemented Interfaces:
Serializable
,OptionHandler
,RevisionHandler
- Direct Known Subclasses:
KMeansInpiredMethod
,MedianOfWidestDimension
,MidPointOfWidestDimension
,SlidingMidPointOfWidestSide
public abstract class KDTreeNodeSplitter
extends Object
implements Serializable, OptionHandler, RevisionHandler
Class that splits up a KDTreeNode.
- Version:
- $Revision: 10203 $
- Author:
- Ashraf M. Kibriya (amk14[at-the-rate]cs[dot]waikato[dot]ac[dot]nz)
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorDescriptiondefault constructor.KDTreeNodeSplitter
(int[] instList, Instances insts, EuclideanDistance e) Creates a new instance of KDTreeNodeSplitter. -
Method Summary
Modifier and TypeMethodDescriptionString[]
Gets the current settings of the object.Returns the revision string.Returns an enumeration describing the available options.void
Sets the EuclideanDistance object to use for splitting nodes.void
setInstanceList
(int[] instList) Sets the master index array containing indices of the training instances.void
setInstances
(Instances inst) Sets the training instances on which the tree is (or is to be) built.void
setNodeWidthNormalization
(boolean normalize) Sets whether if a nodes region is normalized or not.void
setOptions
(String[] options) Parses a given list of options.abstract void
splitNode
(KDTreeNode node, int numNodesCreated, double[][] nodeRanges, double[][] universe) Splits a node into two.
-
Field Details
-
MIN
public static final int MINIndex of min value in an array of attributes' range.- See Also:
-
MAX
public static final int MAXIndex of max value in an array of attributes' range.- See Also:
-
WIDTH
public static final int WIDTHIndex of width value (max-min) in an array of attributes' range.- See Also:
-
-
Constructor Details
-
KDTreeNodeSplitter
public KDTreeNodeSplitter()default constructor. -
KDTreeNodeSplitter
Creates a new instance of KDTreeNodeSplitter.- Parameters:
instList
- Reference of the master index array.insts
- The set of training instances on which the tree is built.e
- The EuclideanDistance object that is used in tree contruction.
-
-
Method Details
-
listOptions
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Returns:
- an enumeration of all the available options.
-
setOptions
Parses a given list of options.- Specified by:
setOptions
in interfaceOptionHandler
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
getOptions
Gets the current settings of the object.- Specified by:
getOptions
in interfaceOptionHandler
- Returns:
- an array of strings suitable for passing to setOptions
-
splitNode
public abstract void splitNode(KDTreeNode node, int numNodesCreated, double[][] nodeRanges, double[][] universe) throws Exception Splits a node into two. After splitting two new nodes are created and correctly initialised. And, node.left and node.right are set appropriately.- 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.
-
setInstances
Sets the training instances on which the tree is (or is to be) built.- Parameters:
inst
- The training instances.
-
setInstanceList
public void setInstanceList(int[] instList) Sets the master index array containing indices of the training instances. This array will be rearranged as the tree is built, so that each node is assigned a portion in this array which contain the instances insides the node's region.- Parameters:
instList
- The master index array.
-
setEuclideanDistanceFunction
Sets the EuclideanDistance object to use for splitting nodes.- Parameters:
func
- The EuclideanDistance object.
-
setNodeWidthNormalization
public void setNodeWidthNormalization(boolean normalize) Sets whether if a nodes region is normalized or not. If set to true then, when selecting the widest attribute/dimension for splitting, the width of each attribute/dimension, of the points inside the node's region, is divided by the width of that attribute/dimension for the whole point-space. Thus, each attribute/dimension of that node is normalized.- Parameters:
normalize
- Should be true if normalization is required.
-
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-