Learn R Programming

LDATree

LDATree is an R modeling package for fitting classification trees. If you are unfamiliar with classification trees, here is a tutorial about the traditional CART and its R implementation rpart.

Overview

Compared to other similar trees, LDATree sets itself apart in the following ways:

  • It applies the idea of LDA (Linear Discriminant Analysis) when selecting variables, finding splits, and fitting models in terminal nodes.

  • It addresses certain limitations of the R implementation of LDA (MASS::lda), such as handling missing values, dealing with more features than samples, and constant values within groups.

  • Re-implement LDA using the Generalized Singular Value Decomposition (GSVD), LDATree offers quick response, particularly with large datasets.

  • The package also includes several visualization tools to provide deeper insights into the data.

Installation

install.packages("LDATree")

Usage

To build an LDATree:

library(LDATree)

fit <- Treee(Species~., data = iris)

To plot the LDATree:

# View the overall tree
plot(fit)
# Three types of individual plots
# 1. Scatter plot on first two LD scores
plot(fit, data = iris, node = 1)

# 2. Density plot on the first LD score
plot(fit, data = iris, node = 3)
#> Warning: Groups with fewer than two data points have been dropped.
#> Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
#> -Inf

# 3. A message
plot(fit, data = iris, node = 5)
#> [1] "Every observation in this node is predicted to be virginica"

To make predictions:

# Prediction only.
predictions <- predict(fit, iris)
head(predictions)
#> [1] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
# A more informative prediction
predictions <- predict(fit, iris, type = "all")
head(predictions)
#>   response node setosa versicolor virginica
#> 1   setosa   13      0          0         0
#> 2   setosa   13      0          0         0
#> 3   setosa   13      0          0         0
#> 4   setosa   13      0          0         0
#> 5   setosa   13      0          0         0
#> 6   setosa   13      0          0         0

Getting help

If you encounter a clear bug, please file an issue with a minimal reproducible example on GitHub

Copy Link

Version

Install

install.packages('LDATree')

Monthly Downloads

572

Version

0.1.2

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Siyu Wang

Last Published

August 25th, 2023

Functions in LDATree (0.1.2)

ldaGSVD

Linear Discriminant Analysis using the Generalized Singular Value Decomposition
plot.Treee

Plot a Treee object
predict.Treee

Predictions from a fitted Treee object
Treee

Classification trees with Linear Discriminant Analysis terminal nodes
predict.ldaGSVD

Predictions from a fitted ldaGSVD object
LDATree-package

LDATree: Classification Trees with Linear Discriminant Analysis at Terminal Nodes