NEWS
picasso 2.0.1 (2026-07-25)
Portability
- Updated the bundled Eigen headers from 3.3.5 to 3.4.0 so the package
compiles cleanly under the C++20 default of recent R-devel toolchains
(GCC 14/16), removing the
-Wdeprecated-enum-enum-conversion install
warnings that originated in the older Eigen sources. No package API or
numerical behavior changes.
picasso 2.0.0
New models and solver controls
- Added multinomial logistic regression for L1, MCP, and SCAD penalties in the
R and Python interfaces. The solver uses class-coupled active-set Proximal
Newton/IRLS updates, pathwise warm starts, strong screening, full KKT checks,
and deviance-tail early stopping for automatically generated paths.
- MCP/SCAD binomial, Poisson, square-root-lasso, and multinomial fits now use
adaptive local linear approximation (LLA).
lla.max.stages = 3L is the
default maximum, including the initial L1 master; larger budgets are
available when stricter stationarity is required.
- Added opt-in
fast.mode. The default remains high precision. Fast mode uses
benchmark-calibrated achieved-accuracy tolerances of 4e-4 for Poisson and
1e-4 for binomial, square-root-lasso, and multinomial; Gaussian retains
1e-7.
- Gaussian fits now default to
type.gaussian = "auto". A calibrated,
memory-bounded policy selects between residual-based naive updates and lazy
covariance updates using the design shape and lambda-path reuse. Explicit
"naive" and "covariance" requests retain their previous behavior.
- Added
dfmax path-size stopping consistently across families.
Interfaces and diagnostics
- Native path fitting is now interruptible: every family polls for a pending
user interrupt (Ctrl-C) at each lambda boundary and re-raises it as a
standard R
interrupt condition instead of running the full path to
completion.
- Added binomial and Poisson offsets throughout fitting, prediction,
assessment, and cross-validation. New-data offsets are applied on the link
scale and are required whenever prediction or assessment evaluates the
linear predictor; nonzero-support extraction does not need them.
- Added
cv.picasso(), assess.picasso(), and confusion.picasso() support
for all applicable families, including stratified categorical folds and
stable class maps for factor and multinomial responses.
- Prediction methods now support response, link, class, and nonzero outputs as
applicable, plus interpolation by lambda value through
s.
- Versioned native solvers now report termination status and failure location.
Gaussian iteration-limit failures retain only the previously converged path
prefix. Non-Gaussian fits additionally report per-lambda runtime, objective,
KKT residual, stationarity, and LLA stage counts; usable stage-budget
termination remains distinct from a hard failure.
- Gaussian fit objects record both requested and resolved solver modes.
Multinomial fits record the requested path length and whether a saturated
generated-path tail was omitted.
Correctness, performance, and portability
- Categorical class prediction now compares finite link-scale scores directly,
matching glmnet while avoiding probability-rounding ties and unnecessary
sigmoid/softmax temporaries. Confusion tables use predicted classes in rows,
observed classes in columns, and retain every fitted class level.
- Fixed binomial response/class prediction for requests containing multiple
lambda values.
- Scalar coefficient and prediction defaults now select at most the first
three available path points or coefficients, so short paths and low-
dimensional models no longer fail with out-of-range default indices.
- Scalar prediction row selectors now use
NULL for all rows. Explicit
Y.pred.idx or p.pred.idx values are always applied instead of treating
1:5 as a hidden default sentinel.
- Invalid MCP/SCAD concavity parameters now fail instead of being silently
replaced by 3; every family validates the documented LLA stage budget.
Square-root-lasso reports its algorithm as active-set quadratic MM.
- Moved scalar and multinomial path-loss evaluation into the native solvers,
avoiding repeated R-side matrix products after fitting.
- Cached fixed weighted column norms inside scalar active-set subproblems,
compacted active working sets, vectorized multinomial curvature/KKT kernels,
and reduced temporary allocations in prediction and path rescaling.
- Scalar-family assessment now keeps small paths on one matrix multiplication
and evaluates larger paths in approximately 8 MiB link-predictor blocks,
reducing peak memory without changing metric values.
- Strengthened validation for numeric matrix storage, finite inputs, decreasing
lambda paths, dimensions, class maps, offsets, and no-intercept
standardization. Constant-response and zero-gradient paths now have explicit
finite behavior.
- Kept R-package and standalone native source mirrors under build-time parity
checks and added scalar, multinomial, interface, and numerical-stability
regression coverage.
- Removed the unused
MASS attachment from the R package dependency surface;
only Matrix is attached at load time.