Mulit-level or Conditional Classification - How in Knime?

Greeting, gentlefolk,

Consider the following classification problem, which I will use KNIME to solve.

First level: my training dataset contains FOOD, which can be categorized into FRUIT, VEGETABLES, MEAT.

Upon classifying my new data using Knime trained on a training set, I have predictions for this category for each instance.

Having made that classification, error-prone though it may be, I would like to make a second-level or conditional classification using the first as a given.

So for all instances classified as FRUIT, I would further like to sub-classify into APPLE, PEAR, BANANA, PEACH, etc.  For VEGETABLE, the sub-classes are POTATO, BEAN, PEA, MUSHROOM, etc. 

How to do this efficiently in Knime?  I can imagine a very large "brute force" method where I create a very big workflow with multiple parallel filters and parallel classifiers to process the multiple sub-classification problems.  This I believe I can do, slowly.

Alternately, I could imagine a classifier that allowed me to restrict the search.  I don't know if such a capability exists.

Any guidance?  How is this described in the literature?  What are the keywords?

Thanks much,

Bill Nowlin

I think you can do this with a not-so-large workflow, if the hierarchy of concepts is not deep. You can simply create the table of the hierarchy and train for each level for the selected part (you might need a separater loop if your classifier can decide between two options).

The other option I see is the RapidMiner integration plugin. It contains a meta classifier called Hierarchical Classifier, which does exactly what you want. The downsides are that you cannot extract the model from the node, so you have to apply to your data within that node and you cannot specify the hierarchy from a workflow variables or other KNIME specific ways. (On the up-side there are more options for classification.)

Hope this helps, gabor