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
Fields -
Constructor Summary
ConstructorsConstructorDescriptiondefault 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.voidSets the EuclideanDistance object to use for splitting nodes.voidsetInstanceList(int[] instList) Sets the master index array containing indices of the training instances.voidsetInstances(Instances inst) Sets the training instances on which the tree is (or is to be) built.voidsetNodeWidthNormalization(boolean normalize) Sets whether if a nodes region is normalized or not.voidsetOptions(String[] options) Parses a given list of options.abstract voidsplitNode(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:
listOptionsin interfaceOptionHandler- Returns:
- an enumeration of all the available options.
-
setOptions
Parses a given list of options.- Specified by:
setOptionsin 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:
getOptionsin 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:
getRevisionin interfaceRevisionHandler- Returns:
- the revision
-