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) }