vNormalQuadraticData: Create a Binary Classification Problem with V-shaped Decision...

Description Usage Arguments Value Examples

View source: R/vNormalQuadratic.R

Description

Create a binary classification problem with V-shaped decision boundary.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
  vNormalQuadraticData(n, prior = rep(0.5, 2),
    lambda = rep(0.5, 2),
    sigma = list(3 * diag(2), diag(2)))

  vNormalQuadraticLabels(data, prior = rep(0.5, 2),
    lambda = rep(0.5, 2),
    sigma = list(3 * diag(2), diag(2)))

  vNormalQuadraticPosterior(data, prior = rep(0.5, 2),
    lambda = rep(0.5, 2),
    sigma = list(3 * diag(2), diag(2)))

  vNormalQuadraticBayesClass(data, prior = rep(0.5, 2),
    lambda = rep(0.5, 2),
    sigma = list(3 * diag(2), diag(2)))

Arguments

n

Number of observations.

prior

Vector of class prior probabilities.

lambda

The conditional probabilities for the mixture components given the class. Either a vector (if the same number m of mixture components is desired for each class and the conditional probabilities for each class should be equal) or a list as long as the number of classes containing one vector of probabilities for every class. The length of the k-th element is the desired number of mixture components for the k-th class.

sigma

The covariance matrices of the mixture components. Either one single matrix that is used for each mixture component or a list as long as the number of classes. List elements can be matrices (in case that for all mixture components forming one class the same covariance matrix shall be used) or lists of matrices as long as the number of mixture components in the corresponding class.

data

A data.frame.

Value

vNormalQuadraticData returns an object of class "locClass", a list with components:

x

(A matrix.) The explanatory variables.

y

(A factor.) The class labels.

vNormalQuadraticLabels returns a factor of class labels.

vNormalQuadraticPosterior returns a matrix of posterior probabilities.

vNormalQuadraticBayesClass returns a factor of Bayes predictions.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Generate a training and a test set
train <- vNormalQuadraticData(1000)
test <- vNormalQuadraticData(1000)

# Generate a grid of points
x.1 <- x.2 <- seq(-5,5,0.1)
grid <- expand.grid(x.1 = x.1, x.2 = x.2)

# Calculate the posterior probablities for all grid points
gridPosterior <- vNormalQuadraticPosterior(grid)

# Draw contour lines of posterior probabilities and plot training observations
contour(x.1, x.2, matrix(gridPosterior[,1], length(x.1)), col = "gray")
points(train$x, col = train$y)

# Calculate Bayes error
ybayes <- vNormalQuadraticBayesClass(test$x)
mean(ybayes != test$y)

if (require(MASS)) {

    # Fit an LDA model and calculate misclassification rate on the test data set
    tr <- lda(y ~ ., data = as.data.frame(train))
    pred <- predict(tr, as.data.frame(test))
    mean(pred$class != test$y)

    # Draw decision boundary
    gridPred <- predict(tr, grid)
    contour(x.1, x.2, matrix(gridPred$posterior[,1], length(x.1)), col = "red", levels = 0.5, add = TRUE)

}

locClassData documentation built on May 2, 2019, 5:26 p.m.