plot.SLOPE(), plot.trainSLOPE() and
plotDiagnostics() have been reimplemented in ggplot2.caretSLOPE() has been deprecated and will be made
defunct in version 0.6.0.sortedL1Prox() is a new function that computes the
proximal operator for the sorted L1 norm (the penalty term in
SLOPE).regularizationWeights() is a new function that returns
the penalty weights (lambda sequence) for SLOPE or OSCAR.SLOPE() gains two arguments:
theta1 and theta2 to control the behavior
using the parametrization from L. W. Zhong and J. T. Kwok, “Efficient
sparse modeling with automatic feature grouping,” IEEE Transactions on
Neural Networks and Learning Systems, vol. 23, no. 9, pp. 1436–1447,
Sep. 2012, doi: 10.1109/TNNLS.2012.2200262. q is no longer
used with OSCAR models. Thanks, Nuno Eusebio.SLOPE() has gained a new argument,
prox_method, which allows the user to select prox algorithm
to use. There is no an additional algorithm in the package, based on the
PAVA algorithm used in isotonic regression, that can be used. Note that
this addition is mostly of academic interest and does not need to be
changed by the user.q parameter is no longer allowed to be smaller than
1e-6 to avoid constructions of regularization paths with
infinite lambda values.lambda argument in SLOPE() now also
allowed the input "lasso" to obtain the standard
lasso.trainSLOPE()lambda = "gaussian" were
incorrectly computed, increasing and then decreasing. This is now fixed
and regularization weights in this case are now always
non-increasing.trainSLOPE() for multinomial models (thanks @jakubkala and 1)trainSLOPE() was previously hampered by
erroneous refitting of the models, which has been fixed now (thanks
@jakubkala and
yvar argument in plotDiagnostics() that
was previously deprecated is now defunct.missclass for the measure argument
in trainSLOPE() has been deprecated in favor of
misclass.SLOPE().intercept = FALSE and
family = "gaussian" (#13, thanks, Patrick Tardivel).tol_rel_coef_change argument to
SLOPE() as a convergence criterion for the FISTA solver
that sets a tolerance for the relative change in coefficients across
iterations.std::sqrt() in
src/SLOPE.cpp.alpha (previously sigma) is now
invariant to the number of observations, which is achieved by scaling
the penalty part of the objective by the square root of the number of
observations if scale = "l2" and the number of observations
if scale = "sd" or "none". No scaling is
applied when scale = "l1".sigma argument is deprecated in favor of
alpha in SLOPE(), coef.SLOPE(),
and predict.SLOPE().n_sigma argument is deprecated in favor of
path_length in SLOPE()lambda_min_ratio argument is deprecated in favor of
alpha_min_ratio in SLOPE()lambda in SLOPE()
has changed from "gaussian" to "bh".scale = "sd" now scales with the population standard
deviation rather than the sample standard deviation, i.e. the scaling
factor now used is the number of observations (and not the number of
observations minus one as before).path_length has changed from 100 to 20.plot.SLOPE() has gained an argument
x_variable that controls what is plotted on the x
axis.max_variables criterion is hit, the solution
path returned will now include also the last solution (which was not the
case before). Thanks, @straw-boy.rho instead of 1 is now used in the
factorization part for the ADMM solver.deviance() and SLOPE()
that were taking too long to execute have been removed or modified.This version of SLOPE represents a major change to the package. We have merged functionality from the owl package into this package, which means there are several changes to the API, including deprecated functions.
SLOPE_solver(), SLOPE_solver_matlab(),
prox_sorted_L1(), and create_lambda() have
been deprecated (and will be defunct in the next version of SLOPE)X, fdr, and
normalize have been deprecated in SLOPE() and
replaced by x, q, scale and
center, respectively"default" and "matlab" to argument
solver in SLOPE() have been deprecated and
replaced with "fista" and "admm", which uses
the accelerated proximal gradient method FISTA and alternating direction
of multipliers method (ADMM) respectivelyfamily = "gaussian"family argument in SLOPE())lambda is now scaled (divided by) the number
of observations (rows) in xscreen = TRUE in SLOPE(). The type of
algorithm can also be set via screen_alg.SLOPE() now returns an object of class
"SLOPE" (and an additional class depending on input to
family in SLOPE()SLOPE objects gain coef() and
plot() methods.SLOPE now uses screening rules to speed up model
fitting in the high-dimensional regimetrainSLOPE() trains SLOPE with repeated
k-folds cross-validationcaretSLOPE() enables model-tuning using
the caret packageSLOPE() now fits an entire path of regularization
sequences by defaultnormalize option to SLOPE() has been
replaced by scale and center, which allows
granular options for standardizationdeviance() returns the deviance from the
fitscore() can be used to assess model
performance against new dataplotDiagnostics() has been included to
visualize data from the solver (if diagnostics = TRUE in
the call to SLOPE())lambda = "oscar" in the call toSLOPE()`