public class RuleNode extends AbstractClassifier
| Modifier and Type | Field and Description |
|---|---|
protected RuleNode |
m_left
left child node
|
protected int |
m_numInstances
the number of instances reaching this node
|
int |
m_numParameters
the number of paramters in the chosen model for this node---either the subtree model or the linear model.
|
protected RuleNode |
m_right
right child node
|
BATCH_SIZE_DEFAULT, m_BatchSize, m_Debug, m_DoNotCheckCapabilities, m_numDecimalPlaces, NUM_DECIMAL_PLACES_DEFAULT| Constructor and Description |
|---|
RuleNode(double globalDev,
double globalAbsDev,
RuleNode parent)
Creates a new
RuleNode instance. |
| Modifier and Type | Method and Description |
|---|---|
protected int |
assignIDs(int lastID)
Assigns a unique identifier to each node in the tree
|
void |
buildClassifier(Instances data)
Build this node (find an attribute and split point)
|
double |
classifyInstance(Instance inst)
Classify an instance using this node.
|
void |
findBestLeaf(double[] maxCoverage,
RuleNode[] bestLeaf)
Find the leaf with greatest coverage
|
double |
getMinNumInstances()
Get the minimum number of instances to allow at a leaf node
|
PreConstructedLinearModel |
getModel()
Get the linear model at this node
|
int |
getNumInstances()
Return the number of instances that reach this node.
|
boolean |
getRegressionTree()
Get the value of regressionTree.
|
java.lang.String |
getRevision()
Returns the revision string.
|
void |
graph(java.lang.StringBuffer text)
Assign a unique identifier to each node in the tree and then calls graphTree
|
protected void |
graphTree(java.lang.StringBuffer text)
Return a dotty style string describing the tree
|
void |
installLinearModels()
Traverses the tree and installs linear models at each node.
|
void |
installSmoothedModels() |
boolean |
isLeaf()
Return true if this node is a leaf
|
RuleNode |
leftNode()
Get the left child of this node
|
java.lang.String |
nodeToString()
Returns a description of this node (debugging purposes)
|
int |
numberOfLinearModels()
Get the number of linear models in the tree
|
int |
numLeaves(int leafCounter)
Sets the leaves' numbers
|
RuleNode |
parentNode()
Get the parent of this node
|
void |
printAllModels()
Print all the linear models at the learf (debugging purposes)
|
java.lang.String |
printLeafModels()
print all leaf models
|
java.lang.String |
printNodeLinearModel()
print the linear model at this node
|
void |
prune()
Recursively prune the tree
|
void |
returnLeaves(java.util.ArrayList<RuleNode>[] v)
Return a list containing all the leaves in the tree
|
RuleNode |
rightNode()
Get the right child of this node
|
protected double |
rootMeanSquaredError()
Get the root mean squared error at this node
|
void |
setMinNumInstances(double minNum)
Set the minumum number of instances to allow at a leaf node
|
void |
setRegressionTree(boolean newregressionTree)
Set the value of regressionTree.
|
protected void |
setSaveInstances(boolean save)
Set whether to save instances for visualization purposes.
|
protected static double |
smoothingOriginal(double n,
double pred,
double supportPred)
Applies the m5 smoothing procedure to a prediction
|
void |
split()
Finds an attribute and split point for this node
|
int |
splitAtt()
Get the index of the splitting attribute for this node
|
double |
splitVal()
Get the split point for this node
|
java.lang.String |
toString()
print the linear model at this node
|
java.lang.String |
treeToString(int level)
Recursively builds a textual description of the tree
|
batchSizeTipText, debugTipText, distributionForInstance, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getCapabilities, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, getOptions, implementsMoreEfficientBatchPrediction, listOptions, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces, setOptionsprotected int m_numInstances
public int m_numParameters
protected RuleNode m_left
protected RuleNode m_right
public RuleNode(double globalDev,
double globalAbsDev,
RuleNode parent)
RuleNode instance.globalDev - the global standard deviation of the classglobalAbsDev - the global absolute deviation of the classparent - the parent of this nodepublic void buildClassifier(Instances data) throws java.lang.Exception
data - the instances on which to build this nodejava.lang.Exception - if an error occurspublic double classifyInstance(Instance inst) throws java.lang.Exception
classifyInstance in interface ClassifierclassifyInstance in class AbstractClassifierinst - the instance to classifyjava.lang.Exception - if an error occursprotected static double smoothingOriginal(double n,
double pred,
double supportPred)
throws java.lang.Exception
n - number of instances in selected child of this nodepred - the prediction so farsupportPred - the prediction of the linear model at this nodejava.lang.Exception - if an error occurspublic void split()
throws java.lang.Exception
java.lang.Exception - if an error occurspublic int numLeaves(int leafCounter)
leafCounter - the number of leaves countedpublic java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String printNodeLinearModel()
public java.lang.String printLeafModels()
public java.lang.String nodeToString()
public java.lang.String treeToString(int level)
level - the level of this nodepublic void installLinearModels()
throws java.lang.Exception
java.lang.Exception - if an error occurspublic void installSmoothedModels()
throws java.lang.Exception
java.lang.Exceptionpublic void prune()
throws java.lang.Exception
java.lang.Exception - if an error occurspublic void findBestLeaf(double[] maxCoverage,
RuleNode[] bestLeaf)
maxCoverage - the greatest coverage found so farbestLeaf - the leaf with the greatest coveragepublic void returnLeaves(java.util.ArrayList<RuleNode>[] v)
v - a single element array containing a vector of leavespublic RuleNode parentNode()
public RuleNode leftNode()
public RuleNode rightNode()
public int splitAtt()
public double splitVal()
public int numberOfLinearModels()
public boolean isLeaf()
protected double rootMeanSquaredError()
public PreConstructedLinearModel getModel()
public int getNumInstances()
public boolean getRegressionTree()
public void setMinNumInstances(double minNum)
minNum - the minimum number of instancespublic double getMinNumInstances()
double valuepublic void setRegressionTree(boolean newregressionTree)
newregressionTree - Value to assign to regressionTree.public void printAllModels()
protected int assignIDs(int lastID)
lastID - last id number usedpublic void graph(java.lang.StringBuffer text)
text - a StringBuffer valueprotected void graphTree(java.lang.StringBuffer text)
text - a StringBuffer valueprotected void setSaveInstances(boolean save)
save - a boolean valuepublic java.lang.String getRevision()
getRevision in interface RevisionHandlergetRevision in class AbstractClassifier