optimizeNewLambda: Perform factorization for new lambda value

View source: R/rliger.R

optimizeNewLambdaR Documentation

Perform factorization for new lambda value

Description

Uses an efficient strategy for updating that takes advantage of the information in the existing factorization; uses previous k. Recommended mainly when re-optimizing for higher lambda and when new lambda value is significantly different; otherwise may not return optimal results.

Usage

optimizeNewLambda(
  object,
  new.lambda,
  thresh = 1e-04,
  max.iters = 100,
  rand.seed = 1,
  verbose = TRUE
)

Arguments

object

liger object. Should call optimizeALS before calling.

new.lambda

Regularization parameter. Larger values penalize dataset-specific effects more strongly.

thresh

Convergence threshold. Convergence occurs when |obj0-obj|/(mean(obj0,obj)) < thresh

max.iters

Maximum number of block coordinate descent iterations to perform (default 100).

rand.seed

Random seed for reproducibility (default 1).

verbose

Print progress bar/messages (TRUE by default)

Value

liger object with optimized factorization values

Examples

ligerex <- createLiger(list(ctrl = ctrl, stim = stim))
ligerex <- normalize(ligerex)
ligerex <- selectGenes(ligerex)
ligerex <- scaleNotCenter(ligerex)

# Assume we are performing the factorization
# Specification for minimal example run time, not converging.
ligerex <- optimizeALS(ligerex, k = 5, lambda = 5, max.iters = 1)
# decide to run with lambda = 15 instead (keeping k the same)
ligerex <- optimizeNewLambda(ligerex, new.lambda = 15, max.iters = 1)


rliger documentation built on Nov. 9, 2023, 1:07 a.m.