Multi-output decision tree

I have a dataset of 1000 tumours described by 6 parameters (my independent variables). For each tumour I have a value of the accuracy of 8 different segmentation methods.

I would like to build a model that can predict, given the 6 parameters describing a tumour, which segmentation method would yield the highest accuracy score. Is there any way I can do this with a decision tree, or even random forest approach? If so, is there any software that can do that ? (SPSS seems to only deal with binary decision trees) And if not, do you have a different suggestion?

• Would your DV then be one variable with 6 categorical levels, or six variables each continuous? Mar 12 '14 at 15:57
• Hi Peter, I would like my input to be 8 continuous variables, so I can account for differences in the accuracy scores of the 8 segmentation methods. I could use one variable with 8 categorical levels, for example the segmentation method with the highest accuracy for each case, but that would not take into account information such as the fact that other methods might be very close in accuracy Mar 13 '14 at 11:38
• Have you considered canonical correlation? There are also tree methods with more than binary splits, but I am not aware of any with multivariate outcomes (although there may be some) Mar 13 '14 at 13:20
• Hi Peter, thanks for your reply. It looks to me that canonical correlation would be perfect for selecting the best combination of my methods, but maybe not for selecting the best one out of the 8. Is that correct? Mar 13 '14 at 14:17
• Frankly, I'm not sure what the best option is for your problem. It's an interesting one! Mar 13 '14 at 14:26

For n-way outputs, I think you could build n decision (regression) trees. Tree i would take the m input variables (m=6 tumor parameters), and predict the rank of the accuracy of the i-th output (i in {1..n}, n=8, segmentation methods).

The i-th tree would thus try to capture the range of parameter values in which the i-th segmentation method works well. When two methods i,j work equally well, as you allude to in your comment, the decision trees for i and j may both output a similar rank value.

Therefore, any standard tree software would work.

If I understand your problem right, maybe the best way about is not multi output.

You are trying to predict which segmentation to use. So it seems like you can do this in two ways.

• Give each tumor a class - the class is the segmentation that got the best accuracy score - and do class prediction. This is, I think, what you said to Peter's response. It's true that it ignores the second best method, but you may get probability measures for the class prediction being right.

• Frame it as a regression problem of predicting the accuracy of each method. So you'd have a predicted accuracy score per class for any new tumor. And then, you'd go with that method.

Having said that, if you really want multi output prediction:

http://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression_multioutput.html

http://scikit-learn.org/stable/modules/generated/sklearn.multioutput.MultiOutputRegressor.html