| crossval {gsbm} | R Documentation |
Parameter selection by cross validation
Description
Selection by cross validation of the regularization parameters (lambda1 and lambda2) for estimating the probabilities of connection in a Generalized Stochastic Block Model.
Usage
crossval(
A,
epsilon = 0.1,
nb.boot = 5,
thresh = 1e-05,
maxit = 100,
lambda1.max = NULL,
lambda2.max = NULL,
lambda1.min = NULL,
lambda2.min = NULL,
length = 10,
S0 = NULL,
L0 = NULL,
trace.it = FALSE
)
Arguments
A |
nxn adjacency matrix |
epsilon |
regularization parameter for the L^2-norm penalty (positive number, if NULL, default method is applied) |
nb.boot |
number of folds for cross validation (integer) |
thresh |
convergence tolerance (positive number) |
maxit |
maximum number of iterations (positive integer) |
lambda1.max |
maximum regularization parameter for nuclear norm penalty (positive number) |
lambda2.max |
maximum regularization parameter for 2,1-norm norm penalty (positive number) |
lambda1.min |
minimum regularization parameter for nuclear norm penalty (positive number) |
lambda2.min |
minimum regularization parameter for 2,1-norm norm penalty (positive number) |
length |
size of cross-validation grid (integer) |
S0 |
initial value for the sparse component |
L0 |
initial value for the low-rank component |
trace.it |
whether messages about convergence should be printed (boolean) |
Value
The values selected by cross-validation for the regularization parameters lambda1 and lambda2. The return value is a list of components
lambda1selected value for the parameter of the nuclear norm penalization.lambda2selected value for the parameter of the 2,1-norm penalization.estim.cvresult of the gsbm_mcgd function for the parameters selected.errora table containing the errors for all pairs of parameters on the grid.lambda1.gridgrid of value for the parameter lambda1.lambda2.gridgrid of value for the parameter lambda2.
Examples
# Draw a 50x50 adjacency matrix
# Generalized SBM with 2 communities and 2 outliers
# Create low-rank matrix L
L <- matrix(0,50,50) # low-rank component
L[1:25, 1:25] <- 0.6 # connection probabilities within community 1
L[1:25, 26:48] <- 0.1 # connection probabilities between communities 1 and 2
L[26:48, 1:25] <- 0.1 # connection probabilities between communities 1 and 2
L[26:48, 26:48] <- 0.6 # connection probabilities within community 2
# Create column-sparse matrix S
S <- matrix(0,50,50) # column sparse component
S[49:50,1:48] <- 0.6 # connection probabilities between outliers and inliers
# Draw connections and create the adjacency matrix
undir <- rbinom(n=50*(50-1)/2, size=1, prob=(L+S+t(S))[upper.tri(L+S+t(S))]) # draw edges
A <- matrix(0,50,50)
A[upper.tri(A)] <- undir
A <- (A+t(A))