sllOpts <- function(opts = list()) {
# Options for Sparse Learning Library
#
# Notice:
# If one or several (even all) fields are empty, sll_opts shall assign the
# default settings.
#
# If some fields of opts have been defined, sll_opts shall check the fields
# for possible errors.
#
#
# Table of Options. * * indicates default value.
#
## FIELD DESCRIPTION
## Starting point
#
# .x0 Starting point of x.
# Initialized according to .init.
#
# .c0 Starting point for the intercept c (for Logistic Loss)
# Initialized according to .init.
#
# .init .init specifies how to initialize x.
# * 0 => .x0 is set by the function initFactor *
# 1 => .x0 and .c0 are defined
# 2 => .x0= zeros(n,1), .c0=0
#
## Termination
#
# .maxIter Maximum number of iterations.
# *1e4*
#
# .tol Tolerance parameter.
# *1e-4*
#
# .tFlag Flag for termination.
# * 0 => abs( funVal(i)- funVal(i-1) ) <= .tol *
# 1 => abs( funVal(i)- funVal(i-1) )
# <= .tol max( funVal(i-1), 1)
# 2 => funVal(i) <= .tol
# 3 => norm( x_i - x_{i-1}, 2) <= .tol
# 4 => norm( x_i - x_{i-1}, 2) <=
# <= .tol max( norm( x_{i-1}, 2), 1 )
# 5 => Run the code for .maxIter iterations
#
## Normalization
#
# .nFlag Flag for implicit normalization of A.
# * 0 => Do not normalize A *
# 1 => A=(A-repmat(mu, m, 1))*diag(nu)^{-1}
# 2 => A=diag(nu)^{-1}*(A-repmat(mu,m,1)
#
# .mu Row vector to be substracted from each sample.
# (.mu is used when .nFlag=1 or 2)
# If .mu is not specified, then
# * .mu=mean(A,1) *
#
# .nu Weight (column) vector for normalization
# (.mu is used when .nFlag=1 or 2)
# If .nu is not specified, then
# * .nFlag=1 => .nu=(sum(A.^2, 1)'/m.^{0.5} *
# * .nFlag=2 => .nu=(sum(A.^2, 2)/n.^{0.5} *
#
## Regularization
#
# .rFlag Flag for regularization
# (.rFlag is used for the functions with "R")
# * 0 => lambda is the regularization parameter *
# 1 => lambda = lambda * lambda_{max}
# where lambda_{max} is the maximum lambda
# that yields the zero solution
# .rsL2 Regularization parameter value of the squared L2 norm
# (.rsL2 is used only for l1 regularization)
# *.rsL2=0*
# If .rFlag=0, .rsL2 is used without scaling
# .rFlag=1, .rsL2=.rsL2 * lambda_{max}
#
## Method & Line Search
# .lFlag
#
## Grooup & Others
#
# .ind Indices for k groups (a k+1 row vector)
# For group lasso only
# Indices for the i-th group are (ind(i)+1):ind(i+1)
#
# .q Value of q in L1/Lq regularization
# *.q=2*
#
# .sWeight The sample (positive and negative) weight
# For the Logistic Loss only
# Positive sample: .sWeight(1)
# Negative sample: sWeight(2)
# *1/m for both positive and negative samples*
#
# .gWeight The weight for different groups
# *.gWeight=1*
#
# .fName The name of the function
#
## Copyright (C) 2009-2010 Jun Liu, and Jieping Ye
#
# You are suggested to first read the Manual.
#
# For any problem, please contact with Jun Liu via j.liu@asu.edu
#
# Last modified 7 August 2009.
if (is.null(opts)) {
opts <- list()
}
## Starting point
if (!is.null(opts$init)) {
if ( (opts$init != 0) && (opts$init != 1) && (opts$init != 2) ) {
opts$init <- 0
}
if (is.null(opts$x0) && (opts$init == 1)) {
opts$init <- 0 #.x0 is not defined and .init=1, set .init=0
}
} else {
opts$init <- 0
}
## Termination
if (!is.null(opts$maxIter)) {
if (opts$maxIter < 1) {
opts$maxIter <- 10000
}
} else {
opts$maxIter <- 10000
}
if (!is.null(opts$tol)) {
if (opts$tol > 1e-1) {
opts$tol <- 1e-1
}
if (opts$tol < 0) {
opts$tol <- 1e-15
}
} else {
opts$tol <- 1e-12
}
if (!is.null(opts$tFlag)) {
if (opts$tFlag < 0) {
opts$tFlag <- 0
} else if (opts$tFlag > 5) {
opts$tFlag <- 5
} else {
opts$tFlag <- as.integer(opts$tFlag)
}
} else {
opts$tFlag <- 0
}
## Normalization
if (!is.null(opts$nFlag)) {
if ( (opts$nFlag != 1) && (opts$nFlag != 2) ) {
opts$nFlag <- 0
}
} else {
opts$nFlag <- 0
}
## Regularization
if (!is.null(opts$rFlag)) {
if (opts$rFlag != 1) {
opts$rFlag <- 0
}
} else {
opts$rFlag <- 0
}
## Method (line search)
if (!is.null(opts$lFlag)) {
if (opts$lFlag != 1) {
opts$lFlag <- 0
}
} else {
opts$lFlag <- 0
}
if (!is.null(opts$mFlag)) {
if (opts$mFlag != 1) {
opts$mFlag <- 0
}
} else {
opts$mFlag <- 0
}
opts
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.