| elasticNetGLMinterface {ClassifyR} | R Documentation |
An elastic net GLM classifier uses a penalty which is a combination of a lasso penalty and a ridge penalty, scaled by a lambda value, to fit a sparse linear model to the data.
## S4 method for signature 'matrix'
elasticNetGLMtrainInterface(measurements, classes, ...)
## S4 method for signature 'DataFrame'
elasticNetGLMtrainInterface(measurements, classes, lambda = NULL,
..., verbose = 3)
## S4 method for signature 'MultiAssayExperiment'
elasticNetGLMtrainInterface(measurements, targets = names(measurements), ...)
## S4 method for signature 'multnet,matrix'
elasticNetGLMpredictInterface(model, test, ...)
## S4 method for signature 'multnet,DataFrame'
elasticNetGLMpredictInterface(model, test, classes = NULL, lambda, ..., verbose = 3)
## S4 method for signature 'multnet,MultiAssayExperiment'
elasticNetGLMpredictInterface(model, test, targets = names(test), ...)
measurements |
Either a |
classes |
Either a vector of class labels of class |
lambda |
The lambda value passed directly to |
test |
An object of the same class as |
targets |
If |
... |
Variables not used by the |
model |
A trained elastic net GLM, as created by the |
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. |
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".
The value of the "family" parameter is fixed to "multinomial" so that
classification with more than 2 classes is possible. During classifier training, if more than
one lambda value is considered by specifying a vector of them as input, then the chosen value
is determined based on classifier resubstitution performance. Leaving the default value of NULL,
however, causes the glmnet function to determine a set of values to evaluate
and then a single lambda value is chosen based on the fraction of (null) deviance explained by the
fitted model.
For elasticNetGLMtrainInterface, an object of type glmnet. For elasticNetGLMpredictInterface, a factor vector of class predictions.
Dario Strbenac
if(require(glmnet))
{
# Genes 76 to 100 have differential expression.
genesMatrix <- sapply(1:25, function(sample) c(rnorm(100, 9, 2)))
genesMatrix <- cbind(genesMatrix, sapply(1:25, function(sample)
c(rnorm(75, 9, 2), rnorm(25, 14, 2))))
classes <- factor(rep(c("Poor", "Good"), each = 25))
colnames(genesMatrix) <- paste("Sample", 1:ncol(genesMatrix))
rownames(genesMatrix) <- paste("Gene", 1:nrow(genesMatrix))
resubstituteParams <- ResubstituteParams(nFeatures = seq(10, 100, 10),
performanceType = "balanced error",
better = "lower")
# alpha is a user-specified tuning parameter.
# lambda is automatically tuned, based on glmnet defaults, if not user-specified.
trainParams <- TrainParams(elasticNetGLMtrainInterface,
tuneParams = list(alpha = c(0, 0.5, 1)),
resubstituteParams = resubstituteParams)
predictParams <- PredictParams(elasticNetGLMpredictInterface,
getClasses = function(result) result)
classified <- runTests(genesMatrix, classes, "Example", "Differential Expression",
permutations = 5,
params = list(trainParams, predictParams))
classified <- calcCVperformance(classified, "balanced error")
head(tunedParameters(classified))
performance(classified)
}