KullbackLeiblerSelection {ClassifyR} | R Documentation

## Selection of Differential Distributions with Kullback-Leibler Distance

### Description

Ranks features by largest Kullback-Leibler distance and chooses the features which have best resubstitution performance.

### Usage

      ## S4 method for signature 'matrix'
    KullbackLeiblerSelection(measurements, classes, ...)
      ## S4 method for signature 'DataFrame'
    KullbackLeiblerSelection(measurements, classes, datasetName,
                             trainParams, predictParams, resubstituteParams, ...,
                                   selectionName = "Kullback-Leibler Divergence", verbose = 3)
      ## S4 method for signature 'MultiAssayExperiment'
    KullbackLeiblerSelection(measurements, targets = names(measurements), ...)

### Arguments

`measurements` | Either a `matrix`, `DataFrame` or `MultiAssayExperiment` containing the training data. For a `matrix`, the rows are features, and the columns are samples.
`classes` | Either a vector of class labels of class `factor` of the same length as the number of samples in `measurements` or if the measurements are of class `DataFrame` a character vector of length 1 containing the column name in `measurement` is also permitted. Not used if `measurements` is a `MultiAssayExperiment` object.
`targets` | If `measurements` is a `MultiAssayExperiment`, the names of the data tables to be used. `"clinical"` is also a valid value and specifies that numeric variables from the clinical data table will be used.
`...` | Variables not used by the `matrix` nor the `MultiAssayExperiment` method which are passed into and used by the `DataFrame` method or options which are accepted by the function `getLocationsAndScales`.
`datasetName` | A name for the data set used. Stored in the result.
`trainParams` | A container of class `TrainParams` describing the classifier to use for training.
`predictParams` | A container of class `PredictParams` describing how prediction is to be done.
`resubstituteParams` | An object of class `ResubstituteParams` describing the performance measure to consider and the numbers of top features to try for resubstitution classification.
`selectionName` | A name to identify this selection method by. Stored in the result.
`verbose` | Default: 3. A number between 0 and 3 for the amount of progress messages to give. This function only prints progress messages if the value is 3.

### Details

The distance is defined as 0.5 * ((location1 - location2)^2 / scale1^2 + (location1 - location2)^2 / scale2^2 + scale1^2 / scale2^2 + scale2^2 / scale1^2)

The subscripts denote the group which the parameter is calculated for.

Data tables which consist entirely of non-numeric data cannot be analysed. If `measurements` is an object of class `MultiAssayExperiment`, the factor of sample classes must be stored in the DataFrame accessible by the `colData` function with column name `"class"`.

### Value

An object of class `SelectResult` or a list of such objects, if the classifier which was used for determining the specified performance metric made a number of prediction varieties.

### Author(s)

Dario Strbenac

### Examples

      # First 20 features have bimodal distribution for Poor class.
      # Other 80 features have normal distribution for both classes.
      genesMatrix <- sapply(1:25, function(sample)
                                  {
                                    randomMeans <- sample(c(8, 12), 20, replace = TRUE)
                                    c(rnorm(20, randomMeans, 1), rnorm(80, 10, 1))
                                  }
                           )
      genesMatrix <- cbind(genesMatrix, sapply(1:25, function(sample) rnorm(100, 10, 1)))
      classes <- factor(rep(c("Poor", "Good"), each = 25))

      resubstituteParams <- ResubstituteParams(nFeatures = seq(5, 25, 5),
                                               performanceType = "balanced error",
                                               better = "lower")
      KullbackLeiblerSelection(genesMatrix, classes, "Example",
                               trainParams = TrainParams(naiveBayesKernel),
                               predictParams = PredictParams(NULL),
                               resubstituteParams = resubstituteParams
                              )

[Package ClassifyR version 2.4.4 Index]