mdmp: The Minimum Distance Rule using Moore-Penrose Inverse (MDMP)...

Description Usage Arguments Details Value References Examples

View source: R/mdmp.r

Description

Given a set of training data, this function builds the MDMP classifier from Srivistava and Kubokawa (2007). The MDMP classifier is an adaptation of the linear discriminant analysis (LDA) classifier that is designed for small-sample, high-dimensional data. Srivastava and Kubokawa (2007) have proposed a modification of the standard maximum likelihood estimator of the pooled covariance matrix, where only the largest 95 their corresponding eigenvectors are kept. The value of 95 and can be changed via the eigen_pct argument.

The MDMP classifier from Srivistava and Kubokawa (2007) is an adaptation of the linear discriminant analysis (LDA) classifier that is designed for small-sample, high-dimensional data. Srivastava and Kubokawa (2007) have proposed a modification of the standard maximum likelihood estimator of the pooled covariance matrix, where only the largest 95 their corresponding eigenvectors are kept.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
mdmp(x, ...)

## Default S3 method:
mdmp(x, y, prior = NULL, eigen_pct = 0.95, ...)

## S3 method for class 'formula'
mdmp(formula, data, prior = NULL, ...)

## S3 method for class 'mdmp'
predict(object, newdata, ...)

Arguments

x

matrix containing the training data. The rows are the sample observations, and the columns are the features.

...

additional arguments

y

vector of class labels for each training observation

prior

vector with prior probabilities for each class. If NULL (default), then equal probabilities are used. See details.

eigen_pct

the percentage of eigenvalues kept

formula

A formula of the form groups ~ x1 + x2 + ... That is, the response is the grouping factor and the right hand side specifies the (non-factor) discriminators.

data

data frame from which variables specified in formula are preferentially to be taken.

object

trained mdmp object

newdata

matrix of observations to predict. Each row corresponds to a new observation.

Details

The matrix of training observations are given in x. The rows of x contain the sample observations, and the columns contain the features for each training observation.

The vector of class labels given in y are coerced to a factor. The length of y should match the number of rows in x.

An error is thrown if a given class has less than 2 observations because the variance for each feature within a class cannot be estimated with less than 2 observations.

The vector, prior, contains the a priori class membership for each class. If prior is NULL (default), the class membership probabilities are estimated as the sample proportion of observations belonging to each class. Otherwise, prior should be a vector with the same length as the number of classes in y. The prior probabilities should be nonnegative and sum to one.

Value

mdmp object that contains the trained MDMP classifier

list predicted class memberships of each row in newdata

References

Srivastava, M. and Kubokawa, T. (2007). "Comparison of Discrimination Methods for High Dimensional Data," Journal of the Japanese Statistical Association, 37, 1, 123-134.

Srivastava, M. and Kubokawa, T. (2007). "Comparison of Discrimination Methods for High Dimensional Data," Journal of the Japanese Statistical Association, 37, 1, 123-134.

Examples

1
2
3
4
5
6
7
8
n <- nrow(iris)
train <- sample(seq_len(n), n / 2)
mdmp_out <- mdmp(Species ~ ., data = iris[train, ])
predicted <- predict(mdmp_out, iris[-train, -5])$class

mdmp_out2 <- mdmp(x = iris[train, -5], y = iris[train, 5])
predicted2 <- predict(mdmp_out2, iris[-train, -5])$class
all.equal(predicted, predicted2)

ramhiser/sparsediscrim documentation built on May 26, 2019, 10:14 p.m.