What is non-negative least squares, and when is it used?

Non-Negative Least Squares (NNLS) adds a constraint to the least squares equation that all coefficient estimates must be greater than or equal to zero. NNLS might be an appropriate choice in scenarios where negative estimates do not make sense for any of the features, such as if the features consist of components that cannot be removed from the equation. This might occur if the features are ingredients of a mixture, where the solution produced requires a contribution from each ingredient, and each ingredient must be added to the mixture in some quantity.