I am aware of how the M5 regression model trees work. I know that they fit linear regression models at every leaf of the regression tree and that every parent in the node is also associated with a regression model. Furthermore, I even understand that in the M5 regression model, it is possible to perform smoothing by considering the models in the nodes above the leaf.

Now, what is the difference between such a regression model such as M5 as described above and the cubist model? Does cubist do anything different from the above explanation?

I have used the methods in R


2 Answers 2


As you mentioned, in the documentation for cubist here, they state that it is an extension to M5 model. The specifications seems to be overlapping with description of M5 model that you have mentioned above. In caret documentation, they specify M5, M5Rules and cubist as M5 (RWeka) Models here.

I guess M5 is RWeka package implementation and cubist is from separate cubist package implementation (more recent), and hence an improvement over the algorithm. It is still uncertain, how it may be better. Some further light by anyone would be great.

  • $\begingroup$ Given that it is GPL code, the improvement should also be open source. $\endgroup$ Jun 17, 2016 at 14:37

From what I have understood, in the cubist algorithm a linear model is made per decision node, and that model is then extended each node further down the tree. This should result in a more continuous predicted value whereas M5P might suffer from discontinuities when jumping from one leaf node to the other by crossing a decision node.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.