Learn R Programming

msgl (version 0.1.3)

msgl: Fit a multinomial sparse group lasso regularization path.

Description

For a classification problem with $K$ classes and $p$ covariates dived into $m$ groups. A sequence of minimizers (one for each lambda given in the lambda argument) of $$\hat R(\beta) + \lambda \left( (1-\alpha) \sum_{J=1}^m \gamma_J \|\beta^{(J)}\|_2 + \alpha \sum_{i=1}^{n} \xi_i |\beta_i| \right)$$ where $\hat R$ is the weighted empirical log-likelihood risk of the multinomial regression model. The vector $\beta^{(J)}$ denotes the parameters associated with the $J$'th group of covariates (default is one covariate per group, hence the default dimension of $\beta^{(J)}$ is $K$). The group weights $\gamma \in [0,\infty)^m$ and the parameter weights $\xi = (\xi^{(1)},\dots, \xi^{(m)}) \in [0,\infty)^n$ with $\xi^{(1)}\in [0,\infty)^{n_1},\dots, \xi^{(m)} \in [0,\infty)^{n_m}$.

Usage

msgl(x, classes,
    sampleWeights = rep(1/length(classes), length(classes)),
    grouping = NULL, groupWeights = NULL,
    parameterWeights = NULL, alpha = 0.5,
    standardize = TRUE, lambda, return = 1:length(lambda),
    sparse.data = FALSE,
    algorithm.config = sgl.standard.config)

Arguments

x
design matrix, matrix of size $N \times p$.
classes
classes, factor of length $N$.
sampleWeights
sample weights, a vector of length $N$.
grouping
grouping of covariates, a vector of length $p$. Each element of the vector specifying the group of the covariate.
groupWeights
the group weights, a vector of length $m+1$ (the number of groups). The first element of the vector is the intercept weight. If groupWeights = NULL default weights will be used. Default weights are 0 for the intercept and $$\sqrt{K\cd
parameterWeights
a matrix of size $K \times (p+1)$. The first column of the matrix is the intercept weights. Default weights are is 0 for the intercept weights and 1 for all other weights.
alpha
the $\alpha$ value 0 for group lasso, 1 for lasso, between 0 and 1 gives a sparse group lasso penalty.
standardize
if TRUE the covariates are standardize before fitting the model. The model parameters are returned in the original scale.
lambda
the lambda sequence for the regularization path.
return
the indices of lambda values for which to return a the fitted parameters.
sparse.data
if TRUE x will be treated as sparse, if x is a sparse matrix it will be treated as sparse by default.
algorithm.config
the algorithm configuration to be used.

Value

  • betathe fitted parameters -- a list of length length(lambda) with each entry a matrix of size $K\times (p+1)$ holding the fitted parameters
  • lossthe values of the loss function
  • objectivethe values of the objective function (i.e. loss + penalty)
  • lambdathe lambda values used

Examples

Run this code
data(SimData)
x <- sim.data$x
classes <- sim.data$classes
lambda <- msgl.lambda.seq(x, classes, alpha = .5, d = 100L, lambda.min = 0.01)
fit <- msgl(x, classes, alpha = .5, lambda = lambda)
fit$beta[[10]] #model with lambda = lambda[10]

Run the code above in your browser using DataLab