Quick R Project: Understanding the Complexity Parameter

By Joseph Schmuller

Rattle is a terrific teaching tool for R programming. In this little two-part project, you can use Rattle to help wrap your brain around the complexity parameter (cp) and what it entails.

The default value of the cp is .01. To tell you how to calculate cp is beyond the scope of our discussion here. Just think of cp as the “minimum benefit” that a split must add to the tree. If the split doesn’t yield at least that much benefit (the value of cp), rpart() doesn’t add it.

What happens if you set cp to .00? You get no restrictions on what a split must add. Hence, you wind up with the most complex tree possible. So here’s the first part of this quick project: Set cp to .00 and Execute, and then use

prp(crs$rpart, cex=1,varlen=0,branch=0)

to draw the tree. Evaluate this tree against the Testing set, and look at the overall error rate. Compared to the original error rate (6.9 percent), is the extra complexity worth adding?

The second part of this project is to move in the other direction. Set cp to a higher value, like .10. This makes it restrictive to add a split. Click Execute. Then draw the tree. It looks way less complex than with cp = .01, doesn’t it? Evaluate against the Testing set. How about that overall error rate?

On a live tree that grows outdoors in your garden, what do you call the process of cutting branches to make the tree look better? Does pruning sound familiar? That’s also the name for eliminating splits to make a decision tree less complex (which is what increasing the cp does).