20.1 Decision Trees Setup

20180603 Packages used in this chapter include C50 (Kuhn and Quinlan 2022), RWeka (Hornik 2021), party (Hothorn et al. 2022), partykit (Hothorn and Zeileis 2022), rpart (Therneau and Atkinson 2022), rpart.plot (Milborrow 2022), and rattle (G. Williams 2022).

Packages are loaded into the currently running R session from your local library directories on disk. Missing packages can be installed using utils::install.packages() within R. On Ubuntu, for example, R packages can also be installed using $ wajig install r-cran-<pkgname>.

# Load required packages from local library into the R session.

library(C50)          # Original C5.0 implementation.
library(RWeka)        # Weka decision tree J48.
library(party)        # Conditional decision trees ctree().
library(partykit)     # Convert rpart object to BinaryTree
library(rattle)       # GUI for building trees and fancy tree plot.
library(rpart)        # Popular decision tree algorithm.
library(rpart.plot)   # Enhanced tree plots.

The rattle::weatherAUS dataset is loaded into the template variable ds and further template variables are setup as introduced by Graham J. Williams (2017). See Chapter 8 for details.

dsname <- "weatherAUS"
ds     <- get(dsname)
nobs   <- nrow(ds)

vnames <- names(ds)
ds    %<>% clean_names(numerals="right")
names(vnames) <- names(ds)

vars   <- names(ds)
target <- "rain_tomorrow"
vars   <- c(target, vars) %>% unique() %>% rev()

It is always useful to remind ourselves of the dataset with a random sample:

ds  %>% sample_frac() %>% select(date, location, sample(3:length(vars), 5))
## # A tibble: 217,049 × 7
##    date       location      wind_speed_3pm temp_9am rain_today cloud_3pm rainf…¹
##    <date>     <chr>                  <dbl>    <dbl> <fct>          <int>   <dbl>
##  1 2014-04-06 AliceSprings               6     24   No                 7     0  
##  2 2009-06-23 Perth                     15     10.8 Yes                8     1.6
##  3 2013-08-06 MountGambier              28     10.9 Yes                3    10.4
##  4 2012-04-20 WaggaWagga                 7     17.3 No                 6     0.6


Hornik, Kurt. 2021. RWeka: R/Weka Interface. https://CRAN.R-project.org/package=RWeka.
Hothorn, Torsten, Kurt Hornik, Carolin Strobl, and Achim Zeileis. 2022. Party: A Laboratory for Recursive Partytioning. http://party.R-forge.R-project.org.
Hothorn, Torsten, and Achim Zeileis. 2022. Partykit: A Toolkit for Recursive Partytioning. http://partykit.r-forge.r-project.org/partykit/.
Kuhn, Max, and Ross Quinlan. 2022. C50: C5.0 Decision Trees and Rule-Based Models. https://topepo.github.io/C5.0/.
Milborrow, Stephen. 2022. Rpart.plot: Plot Rpart Models: An Enhanced Version of Plot.rpart. http://www.milbo.org/rpart-plot/index.html.
Therneau, Terry, and Beth Atkinson. 2022. Rpart: Recursive Partitioning and Regression Trees. https://CRAN.R-project.org/package=rpart.
Williams, Graham. 2022. Rattle: Graphical User Interface for Data Science in r. https://rattle.togaware.com/.
Williams, Graham J. 2017. The Essentials of Data Science: Knowledge Discovery Using r. The r Series. CRC Press.

Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0