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
library(rpart.plot)
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).