Contents - Index - Previous - Next
Classification tree FAQs (Frequently Asked Questions)
How should the text labels of classification trees be composed?
What's the difference between classification trees and decision trees?
My tree has tangled branches and/or overlapping nodes. How can I make it neater?
Can I create two or more trees in the same window?
At runtime, my classification tree asks questions but reaches no solutions. Why?
How can a classification tree represent a fact like 'Smoker IS true'?
Why does my model at runtime ask the same question twice?
Can a classification tree model represent uncertainty?
How should the text labels of classification trees be composed?
This example gives the idea:

Each label is made up of two parts:

Feature descriptions are not essential. But it's normal to include them since they enable InterModeller to ask questions that distinguish between sibling classes.
What's the difference between classification trees and decision trees?
These are very different ways of representing knowledge: decision trees are a 'procedural' type of representation whereas classification trees are 'declarative'. What this means is that a decision tree represents a particular problem-solving procedure: ask these questions, get these answers, reach these decisions. A classification tree represents a hierarchical (inheritance) arrangement of objects grouped into nested classes. It's not a procedure as such, just a description of relationships, although of course there are procedures that can be used with classification trees (such as the one used by InterModeller at runtime).
My tree has tangled branches and/or overlapping nodes. How can I make it neater?
Either use the 'Redraw neatly' command (Build menu) or else tidy the tree manually by dragging with the arrow tool.
Can I create two or more trees in the same window?
Yes. Control-click with the pen to create a new root for each additional tree. See the 'Linked ctrees' example in the Examples folder to see how two or more trees can work together to create a coherent model. The main idea is this: if at runtime InterModeller reaches a tree node with a class label C which appears as the root class label of another tree in the same window, InterModeller behaves as if the second tree was grafted to the first tree at the node C. Note that for this to work, no local features should appear at the river fish node in either tree.
At runtime, my classification tree asks questions but reaches no solutions. Why?
This can happen for several reasons. For instance, consider the model below which will never reach a solution.

The problem arises in this case because of the repeated use of the same attribute home, with contradictory values, at different levels of the tree. During a consultation the user will be required to select from a menu a single value for this attribute and as soon as one value is selected, the others naturally are excluded. For example, it is impossible for InterModeller to validate Harry the halibut since this class has a local feature that contradicts the feature inherited from the root class. In general, although it is highly desirable for sibling classes (e.g. Harry and Henry) to refer to a common attribute, it is very undesirable for a class to refer to an attribute that is named by an ancestor. In other words, on any one branch of the tree each attribute should appear only once.
How can a classification tree represent a fact like 'Smoker IS true'?
Create a tree with only one node and label it 'Smoker'.
Why does my model at runtime ask the same question twice?
During a consultation, InterModeller keeps track of questions and answers. It will never ask exactly the same question twice. Check whether you have accidentally mistyped some text in your model and make sure that you re-use all symbols consistently. If you use the phrase 'Height' in one part of your model and 'Hieght' in another, InterModeller will assume these refer to different concepts and may ask questions that look like duplicates.
Can a classification tree model represent uncertainty?
Only rule models can incorporate certainty factors, so only they can express quantified uncertainty in the knowledge base. But at runtime, a classification tree model can certainly accommodate quantified uncertainty in the user data. Just make sure that certainty handling is enabled using the Run/Logic command before the model is run.