20.1 Decision Trees Setup

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

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: 176,747 x 7
##    date       location      max_temp rain_today humidity_9am wind_dir_9am
##    <date>     <chr>            <dbl> <fct>             <int> <ord>       
##  1 2010-09-03 Adelaide          18.3 No                   67 ENE         
##  2 2010-10-30 WaggaWagga        19.3 No                   81 NE          
##  3 2017-04-04 GoldCoast         25.5 No                   65 S           
##  4 2018-10-28 Witchcliffe       24.7 No                   79 SE          
##  5 2018-02-12 Witchcliffe       26.1 No                   59 SE          
##  6 2009-03-10 Cairns            31.3 No                   88 W           
##  7 2010-04-28 Portland          16.4 No                   89 NW          
##  8 2009-10-22 Mildura           29.3 No                   49 SE          
##  9 2015-04-26 BadgerysCreek     20   Yes                  76 WSW         
## 10 2014-10-19 Sale              28.4 No                   66 NW          
## # … with 176,737 more rows, and 1 more variable: wind_gust_dir <ord>

References

Hornik, Kurt. 2020. RWeka: R/Weka Interface. https://CRAN.R-project.org/package=RWeka.
Hothorn, Torsten, Kurt Hornik, Carolin Strobl, and Achim Zeileis. 2021. Party: A Laboratory for Recursive Partytioning. http://party.R-forge.R-project.org.
Hothorn, Torsten, and Achim Zeileis. 2021. Partykit: A Toolkit for Recursive Partytioning. http://partykit.r-forge.r-project.org/partykit/.
Kuhn, Max, and Ross Quinlan. 2021. C50: C5.0 Decision Trees and Rule-Based Models. https://topepo.github.io/C5.0/.
Milborrow, Stephen. 2020. Rpart.plot: Plot Rpart Models: An Enhanced Version of Plot.rpart. http://www.milbo.org/rpart-plot/index.html.
Therneau, Terry, and Beth Atkinson. 2019. Rpart: Recursive Partitioning and Regression Trees. https://CRAN.R-project.org/package=rpart.
Williams, Graham. 2020. 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 development 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-2021 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0.