Class FTtree

    • Constructor Detail

      • FTtree

        public FTtree()
    • Method Detail

      • buildClassifier

        public abstract void buildClassifier​(Instances data)
                                      throws java.lang.Exception
        Method for building a Functional Tree (only called for the root node). Grows an initial Functional Tree.
        Overrides:
        buildClassifier in class LogisticBase
        Parameters:
        data - the data to train with
        Throws:
        java.lang.Exception - if something goes wrong
      • buildTree

        public abstract void buildTree​(Instances data,
                                       SimpleLinearRegression[][] higherRegressions,
                                       double totalInstanceWeight,
                                       double higherNumParameters)
                                throws java.lang.Exception
        Abstract method for building the tree structure. Builds a logistic model, splits the node and recursively builds tree for child nodes.
        Parameters:
        data - the training data passed on to this node
        higherRegressions - An array of regression functions produced by LogitBoost at higher levels in the tree. They represent a logistic regression model that is refined locally at this node.
        totalInstanceWeight - the total number of training examples
        higherNumParameters - effective number of parameters in the logistic regression model built in parent nodes
        Throws:
        java.lang.Exception - if something goes wrong
      • prune

        public abstract double prune()
                              throws java.lang.Exception
        Abstract Method that prunes a tree using C4.5 pruning procedure.
        Throws:
        java.lang.Exception - if something goes wrong
      • getNumInnerNodes

        public int getNumInnerNodes()
        Method to count the number of inner nodes in the tree
        Returns:
        the number of inner nodes
      • getNumLeaves

        public int getNumLeaves()
        Returns the number of leaves in the tree. Leaves are only counted if their logistic model has changed compared to the one of the parent node.
        Returns:
        the number of leaves
      • getNodes

        public java.util.Vector getNodes()
        Return a list of all inner nodes in the tree
        Returns:
        the list of nodes
      • getNodes

        public void getNodes​(java.util.Vector nodeList)
        Fills a list with all inner nodes in the tree
        Parameters:
        nodeList - the list to be filled
      • getConstError

        public int getConstError​(double[] probsConst)
        Type Parameters:
        any - probsConst
      • hasModels

        public boolean hasModels()
        Returns true if the logistic regression model at this node has changed compared to the one at the parent node.
        Returns:
        whether it has changed
      • modelDistributionForInstance

        public double[] modelDistributionForInstance​(Instance instance)
                                              throws java.lang.Exception
        Returns the class probabilities for an instance according to the logistic model at the node.
        Parameters:
        instance - the instance
        Returns:
        the array of probabilities
        Throws:
        java.lang.Exception
      • distributionForInstance

        public abstract double[] distributionForInstance​(Instance instance)
                                                  throws java.lang.Exception
        Returns the class probabilities for an instance given by the Functional tree.
        Overrides:
        distributionForInstance in class LogisticBase
        Parameters:
        instance - the instance
        Returns:
        the array of probabilities
        Throws:
        java.lang.Exception - if distribution can't be computed successfully
      • toString

        public java.lang.String toString()
        Returns a description of the Functional tree (tree structure and logistic models)
        Overrides:
        toString in class LogisticBase
        Returns:
        describing string
      • numLeaves

        public int numLeaves()
        Returns the number of leaves (normal count).
        Returns:
        the number of leaves
      • numNodes

        public int numNodes()
        Returns the number of nodes.
        Returns:
        the number of nodes
      • getModelParameters

        public java.lang.String getModelParameters()
        Returns a string describing the number of LogitBoost iterations performed at this node, the total number of LogitBoost iterations performed (including iterations at higher levels in the tree), and the number of training examples at this node.
        Returns:
        the describing string
      • assignIDs

        public int assignIDs​(int lastID)
        Assigns unique IDs to all nodes in the tree
      • assignLeafModelNumbers

        public int assignLeafModelNumbers​(int leafCounter)
        Assigns numbers to the logistic regression models at the leaves of the tree
      • modelsToString

        public java.lang.String modelsToString()
        Returns a string describing the logistic regression function at the node.
      • graph

        public java.lang.String graph()
                               throws java.lang.Exception
        Returns graph describing the tree.
        Throws:
        java.lang.Exception - if something goes wrong
      • cleanup

        public void cleanup()
        Cleanup in order to save memory.
        Overrides:
        cleanup in class LogisticBase