|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.trees.m5.RuleNode
Constructs a node for use in an m5 tree or rule
Field Summary | |
private int |
m_classIndex
the class index |
private double |
m_devFraction
a node will not be split if its class standard deviation is less than 5% of the class standard deviation of all the instances |
private double |
m_globalAbsDeviation
the absolute deviation of the global class |
private double |
m_globalDeviation
a node will not be split if the class deviation of its instances is less than m_devFraction of the deviation of the global class |
private int |
m_id
Node id. |
private int[] |
m_indices
Indices of the attributes to be used in generating a linear model at this node |
private Instances |
m_instances
instances reaching this node |
private boolean |
m_isLeaf
Node is a leaf |
private int |
m_leafModelNum
the number assigned to the linear model if this node is a leaf |
protected RuleNode |
m_left
child nodes |
private PreConstructedLinearModel |
m_nodeModel
the linear model at this node |
private int |
m_numAttributes
the number of attributes |
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. |
private RuleNode |
m_parent
the parent of this node |
private double |
m_pruningMultiplier
|
private boolean |
m_regressionTree
Make a regression tree instead of a model tree |
protected RuleNode |
m_right
|
private double |
m_rootMeanSquaredError
the mean squared error of the model at this node (either linear or subtree) |
private boolean |
m_saveInstances
Save the instances at each node (for visualizing in the Explorer's treevisualizer. |
private int |
m_splitAtt
attribute this node splits on |
private double |
m_splitNum
a node will not be split if it contains less then m_splitNum instances |
private double |
m_splitValue
the value of the split attribute |
private static double |
SMOOTHING_CONSTANT
Constant used in original m5 smoothing calculation |
Fields inherited from class weka.classifiers.Classifier |
m_Debug |
Constructor Summary | |
RuleNode(double globalDev,
double globalAbsDev,
RuleNode parent)
Creates a new RuleNode instance. |
Method Summary | |
protected int |
assignIDs(int lastID)
Assigns a unique identifier to each node in the tree |
private boolean[] |
attsTestedAbove()
Returns an array containing the indexes of attributes used in tests above this node |
private boolean[] |
attsTestedBelow()
Returns an array containing the indexes of attributes used in tests below this node |
void |
buildClassifier(Instances data)
Build this node (find an attribute and split point) |
private void |
buildLinearModel(int[] indices)
Build a linear model for this node using those attributes specified in indices. |
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. |
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 |
private int |
numParameters()
Get the number of parameters in the model at this node |
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 |
private double |
pruningFactor(int num_instances,
int num_params)
Compute the pruning factor |
void |
returnLeaves(FastVector[] 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 |
Methods inherited from class weka.classifiers.Classifier |
debugTipText, distributionForInstance, 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 |
private Instances m_instances
private int m_classIndex
protected int m_numInstances
private int m_numAttributes
private boolean m_isLeaf
private int m_splitAtt
private double m_splitValue
private PreConstructedLinearModel m_nodeModel
public int m_numParameters
private double m_rootMeanSquaredError
protected RuleNode m_left
protected RuleNode m_right
private RuleNode m_parent
private double m_splitNum
private double m_devFraction
private double m_pruningMultiplier
private int m_leafModelNum
private double m_globalDeviation
private double m_globalAbsDeviation
private int[] m_indices
private static final double SMOOTHING_CONSTANT
private int m_id
private boolean m_saveInstances
private boolean m_regressionTree
Constructor Detail |
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 nodeMethod Detail |
public void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier
in class Classifier
data
- the instances on which to build this node
java.lang.Exception
- if an error occurspublic double classifyInstance(Instance inst) throws java.lang.Exception
classifyInstance
in class Classifier
inst
- the instance to classify
java.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 node
java.lang.Exception
- if an error occurspublic void split() throws java.lang.Exception
java.lang.Exception
- if an error occursprivate void buildLinearModel(int[] indices) throws java.lang.Exception
indices
- an array of attribute indices to include in the linear
model
java.lang.Exception
private boolean[] attsTestedAbove()
private boolean[] attsTestedBelow()
public int numLeaves(int leafCounter)
leafCounter
- the number of leaves counted
public java.lang.String toString()
public 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 node
public void installLinearModels() throws java.lang.Exception
java.lang.Exception
- if an error occurspublic void installSmoothedModels() throws java.lang.Exception
java.lang.Exception
public void prune() throws java.lang.Exception
java.lang.Exception
- if an error occursprivate double pruningFactor(int num_instances, int num_params)
num_instances
- number of instancesnum_params
- number of parameters in the model
public void findBestLeaf(double[] maxCoverage, RuleNode[] bestLeaf)
maxCoverage
- the greatest coverage found so farbestLeaf
- the leaf with the greatest coveragepublic void returnLeaves(FastVector[] 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()
private int numParameters()
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 used
public 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
value
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |