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, ..., returnType = c("both", "class", "score"), 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 |
returnType |
Default: |
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 and type.multinomial
is fixed
to "grouped"
so that a grouped lasso penalty is used. During classifier training,
if more than one lambda value is considered by specifying a vector of them as input or
leaving the default value of NULL, then the chosen value is determined based on
classifier resubstitution error rate.
For elasticNetGLMtrainInterface
, an object of type glmnet
. For
elasticNetGLMpredictInterface
, either a factor vector of predicted classes, a
matrix of scores for each class, or a table of both the class labels and class scores,
depending on the setting of returnType
.
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") # lambda is automatically tuned, based on glmnet defaults, if not user-specified. trainParams <- TrainParams(elasticNetGLMtrainInterface, nlambda = 500, getFeatures = elasticNetFeatures) predictParams <- PredictParams(elasticNetGLMpredictInterface) classified <- runTests(genesMatrix, classes, datasetName = "Example", classificationName = "Differential Expression", validation = "fold", params = list(trainParams, predictParams)) classified <- calcCVperformance(classified, "balanced error") head(tunedParameters(classified)) performance(classified) }