NNLS fits y ~ Xb subject to b >= 0, with no intercept. It is the
default meta learner of the stacked meta learners (setup_SuperLearner,
setup_ModalityStacking), where the predictors are the base learners'
cross-validated predictions and a non-negative, sum-to-one coefficient vector
is the ensemble weighting. With no intercept and a sign constraint, it fits
only outcomes in the cone the predictors span.
With normalize = TRUE the coefficients are scaled to sum to 1, so the fit is
a convex combination of the predictors. For classification the outcome is
coded 0/1 on the second factor level and the fitted values are read as
probabilities of that level; unnormalized coefficients do not guarantee a
value in [0, 1], so predictions are clamped.
Get more information from nnls::nnls.