Class KDTreeNodeSplitter

    • Field Detail

      • MIN

        public static final int MIN
        Index of min value in an array of attributes' range.
        See Also:
        Constant Field Values
      • MAX

        public static final int MAX
        Index of max value in an array of attributes' range.
        See Also:
        Constant Field Values
      • WIDTH

        public static final int WIDTH
        Index of width value (max-min) in an array of attributes' range.
        See Also:
        Constant Field Values
    • Constructor Detail

      • KDTreeNodeSplitter

        public KDTreeNodeSplitter()
        default constructor.
      • KDTreeNodeSplitter

        public KDTreeNodeSplitter​(int[] instList,
                                  Instances insts,
                                  EuclideanDistance e)
        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 Detail

      • listOptions

        public Enumeration<Option> listOptions()
        Returns an enumeration describing the available options.
        Specified by:
        listOptions in interface OptionHandler
        Returns:
        an enumeration of all the available options.
      • setOptions

        public void setOptions​(String[] options)
                        throws Exception
        Parses a given list of options.
        Specified by:
        setOptions in interface OptionHandler
        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 the object.
        Specified by:
        getOptions in interface OptionHandler
        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

        public void setInstances​(Instances inst)
        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

        public void setEuclideanDistanceFunction​(EuclideanDistance func)
        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.