|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.trees.lmt.LogisticBase
weka.classifiers.trees.lmt.LMTNode
Class for logistic model tree structure.
Field Summary | |
double |
m_alpha
Alpha-value (for pruning) at the node |
protected boolean |
m_fastRegression
Use heuristic that determines the number of LogitBoost iterations only once in the beginning? |
protected SimpleLinearRegression[][] |
m_higherRegressions
Simple regression functions fit by LogitBoost at higher levels in the tree |
protected int |
m_id
Node id |
protected boolean |
m_isLeaf
True if node is leaf |
protected int |
m_leafModelNum
ID of logistic model at leaf |
protected ClassifierSplitModel |
m_localModel
The ClassifierSplitModel (for splitting) |
protected int |
m_minNumInstances
minimum number of instances at which a node is considered for splitting |
protected ModelSelection |
m_modelSelection
ModelSelection object (for splitting) |
protected NominalToBinary |
m_nominalToBinary
Filter to convert nominal attributes to binary |
protected static int |
m_numFoldsPruning
Number of folds for CART pruning |
protected int |
m_numHigherRegressions
Number of simple regression functions fit by LogitBoost at higher levels in the tree |
double |
m_numIncorrectModel
Weighted number of training examples currently misclassified by the logistic model at the node |
double |
m_numIncorrectTree
Weighted number of training examples currently misclassified by the subtree rooted at the node |
protected int |
m_numInstances
Number of instances at the node |
protected LMTNode[] |
m_sons
Array of children of the node |
protected double |
m_totalInstanceWeight
Total number of training instances. |
Fields inherited from class weka.classifiers.trees.lmt.LogisticBase |
m_errorOnProbabilities, m_fixedNumIterations, m_heuristicStop, m_maxIterations, m_numClasses, m_numericData, m_numericDataHeader, m_numFoldsBoosting, m_numRegressions, m_regressions, m_train, m_useCrossValidation, Z_MAX |
Fields inherited from class weka.classifiers.Classifier |
m_Debug |
Constructor Summary | |
LMTNode(ModelSelection modelSelection,
int numBoostingIterations,
boolean fastRegression,
boolean errorOnProbabilities,
int minNumInstances)
Constructor for logistic model tree node. |
Method Summary | |
int |
assignIDs(int lastID)
Assigns unique IDs to all nodes in the tree |
int |
assignLeafModelNumbers(int leafCounter)
Assigns numbers to the logistic regression models at the leaves of the tree |
void |
buildClassifier(Instances data)
Method for building a logistic model tree (only called for the root node). |
void |
buildTree(Instances data,
SimpleLinearRegression[][] higherRegressions,
double totalInstanceWeight)
Method for building the tree structure. |
void |
calculateAlphas()
Updates the alpha field for all nodes. |
void |
cleanup()
Cleanup in order to save memory. |
double[] |
distributionForInstance(Instance instance)
Returns the class probabilities for an instance given by the logistic model tree. |
protected void |
dumpTree(int depth,
java.lang.StringBuffer text)
Help method for printing tree structure. |
protected double[][] |
getCoefficients()
Returns an array containing the coefficients of the logistic regression function at this node. |
protected double[] |
getFs(Instance instance)
Computes the F-values of LogitBoost for an instance from the current logistic model at the node Note that this also takes into account the (partial) logistic model fit at higher levels in the tree. |
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. |
java.util.Vector |
getNodes()
Return a list of all inner nodes in the tree |
void |
getNodes(java.util.Vector nodeList)
Fills a list with all inner nodes in the tree |
protected Instances |
getNumericData(Instances train)
Returns a numeric version of a set of instances. |
int |
getNumInnerNodes()
Method to count the number of inner nodes in the tree |
int |
getNumLeaves()
Returns the number of leaves in the tree. |
java.lang.String |
graph()
Returns graph describing the tree. |
private void |
graphTree(java.lang.StringBuffer text)
Helper function for graph description of tree |
boolean |
hasModels()
Returns true if the logistic regression model at this node has changed compared to the one at the parent node. |
protected SimpleLinearRegression[][] |
mergeArrays(SimpleLinearRegression[][] a1,
SimpleLinearRegression[][] a2)
Merges two arrays of regression functions into one |
double[] |
modelDistributionForInstance(Instance instance)
Returns the class probabilities for an instance according to the logistic model at the node. |
void |
modelErrors()
Updates the numIncorrectModel field for all nodes. |
java.lang.String |
modelsToString()
Returns a string describing the logistic regression function at the node. |
int |
numLeaves()
Returns the number of leaves (normal count). |
int |
numNodes()
Returns the number of nodes. |
void |
prune(double alpha)
Prunes a logistic model tree using the CART pruning scheme, given a cost-complexity parameter alpha. |
int |
prune(double[] alphas,
double[] errors,
Instances test)
Method for performing one fold in the cross-validation of the cost-complexity parameter. |
java.lang.String |
toString()
Returns a description of the logistic model tree (tree structure and logistic models) |
void |
treeErrors()
Updates the numIncorrectTree field for all nodes. |
protected int |
tryLogistic(Instances data)
Determines the optimum number of LogitBoost iterations to perform by building a standalone logistic regression function on the training data. |
protected void |
unprune()
Method to "unprune" a logistic model tree. |
Methods inherited from class weka.classifiers.trees.lmt.LogisticBase |
getBestIteration, getErrorRate, getFs, getMaxIterations, getMeanAbsoluteError, getNumRegressions, getProbs, getUsedAttributes, getWs, getYs, getZ, getZs, initRegressions, logLikelihood, percentAttributesUsed, performBoosting, performBoosting, performBoosting, performBoostingCV, performIteration, probs, selectRegressions, setHeuristicStop, setMaxIterations |
Methods inherited from class weka.classifiers.Classifier |
classifyInstance, debugTipText, forName, getDebug, getOptions, listOptions, makeCopies, setDebug, setOptions |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected double m_totalInstanceWeight
protected int m_id
protected int m_leafModelNum
public double m_alpha
public double m_numIncorrectModel
public double m_numIncorrectTree
protected int m_minNumInstances
protected ModelSelection m_modelSelection
protected NominalToBinary m_nominalToBinary
protected SimpleLinearRegression[][] m_higherRegressions
protected int m_numHigherRegressions
protected static int m_numFoldsPruning
protected boolean m_fastRegression
protected int m_numInstances
protected ClassifierSplitModel m_localModel
protected LMTNode[] m_sons
protected boolean m_isLeaf
Constructor Detail |
public LMTNode(ModelSelection modelSelection, int numBoostingIterations, boolean fastRegression, boolean errorOnProbabilities, int minNumInstances)
modelSelection
- selection method for local splitting modelnumBoostingIterations
- sets the numBoostingIterations parameterfastRegression
- sets the fastRegression parameterMethod Detail |
public void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier
in class LogisticBase
data
- the training data
java.lang.Exception
- if something goes wrongpublic void buildTree(Instances data, SimpleLinearRegression[][] higherRegressions, double totalInstanceWeight) throws java.lang.Exception
data
- the training data passed on to this nodehigherRegressions
- 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
java.lang.Exception
- if something goes wrongpublic void prune(double alpha) throws java.lang.Exception
alpha
- the cost-complexity measure
java.lang.Exception
public int prune(double[] alphas, double[] errors, Instances test) throws java.lang.Exception
alphas
- array to hold the generated alpha-valueserrors
- array to hold the corresponding error estimatestest
- test set of that fold (to obtain error estimates)
if
- something goes wrong
java.lang.Exception
protected void unprune()
protected int tryLogistic(Instances data) throws java.lang.Exception
data
- training instances for the logistic model
if
- something goes wrong
java.lang.Exception
public int getNumInnerNodes()
public int getNumLeaves()
public void modelErrors() throws java.lang.Exception
java.lang.Exception
public void treeErrors()
public void calculateAlphas() throws java.lang.Exception
java.lang.Exception
protected SimpleLinearRegression[][] mergeArrays(SimpleLinearRegression[][] a1, SimpleLinearRegression[][] a2)
a1
- one arraya2
- the other array
public java.util.Vector getNodes()
public void getNodes(java.util.Vector nodeList)
nodeList
- the list to be filledprotected Instances getNumericData(Instances train) throws java.lang.Exception
getNumericData
in class LogisticBase
java.lang.Exception
protected double[] getFs(Instance instance) throws java.lang.Exception
getFs
in class LogisticBase
instance
- the instance
java.lang.Exception
public boolean hasModels()
public double[] modelDistributionForInstance(Instance instance) throws java.lang.Exception
instance
- the instance
java.lang.Exception
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance
in class LogisticBase
instance
- the instance
java.lang.Exception
- if distribution can't be computed successfullypublic int numLeaves()
public int numNodes()
public java.lang.String toString()
toString
in class LogisticBase
public java.lang.String getModelParameters()
protected void dumpTree(int depth, java.lang.StringBuffer text) throws java.lang.Exception
java.lang.Exception
- if something goes wrongpublic int assignIDs(int lastID)
public int assignLeafModelNumbers(int leafCounter)
protected double[][] getCoefficients()
getCoefficients
in class LogisticBase
public java.lang.String modelsToString()
public java.lang.String graph() throws java.lang.Exception
java.lang.Exception
- if something goes wrongprivate void graphTree(java.lang.StringBuffer text) throws java.lang.Exception
java.lang.Exception
- if something goes wrongpublic void cleanup()
cleanup
in class LogisticBase
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |