NNDSVDaGetInitialFactors Method |
Creates an NNDSVDa initialization for NMF by replacing zeros with a data-dependent small value.
Namespace: Altaxo.Calc.LinearAlgebra.Double.FactorizationAssembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3572.0 (4.8.3572.0)
Syntax
RemarksIn the paper Boutsidis and Gallopoulos, 2008, https://doi.org/10.1016/j.patcog.2007.09.010, section 2.3,
the zero elements are overwritten with the mean of matrix X.
I consider this wrong, because W and H scale with the square root of X, not with X itself.
Therefore, for example, if X is scaled with 1E20, W and H are scaled with 1E10, but the zeros would then be replaced with a scale of 1E20 again.
Thus, I decided not to use X, but to overwrite the zeros with the average values of W and H, respectively.
This also avoids peculiarities if the average of X is zero.
See Also