C# Class Accord.Math.Decompositions.NonnegativeMatrixFactorization

Nonnegative Matrix Factorization.

Non-negative matrix factorization (NMF) is a group of algorithms in multivariate analysis and linear algebra where a matrix X is factorized into (usually) two matrices, W and H. The non-negative factorization enforces the constraint that the factors W and H must be non-negative, i.e., all elements must be equal to or greater than zero. The factorization is not unique.

References: http://en.wikipedia.org/wiki/Non-negative_matrix_factorization Lee, D., Seung, H., 1999. Learning the Parts of Objects by Non-Negative Matrix Factorization. Nature 401, 788–791. Michael W. Berry, et al. (June 2006). Algorithms and Applications for Approximate Nonnegative Matrix Factorization.

Show file Open project: accord-net/framework Class Usage Examples

Public Methods

Method Description
NonnegativeMatrixFactorization ( double value, int r ) : System

Initializes a new instance of the NMF algorithm

NonnegativeMatrixFactorization ( double value, int r, int maxiter ) : System

Initializes a new instance of the NMF algorithm

Private Methods

Method Description
compute ( int maxiter ) : void

Performs NMF using the multiplicative method

At the end of the computation H contains the projected data and W contains the weights. The multiplicative method is the simplest factorization method.

Method Details

NonnegativeMatrixFactorization() public method

Initializes a new instance of the NMF algorithm
public NonnegativeMatrixFactorization ( double value, int r ) : System
value double The input data matrix (must be positive).
r int The reduced dimension.
return System

NonnegativeMatrixFactorization() public method

Initializes a new instance of the NMF algorithm
public NonnegativeMatrixFactorization ( double value, int r, int maxiter ) : System
value double The input data matrix (must be positive).
r int The reduced dimension.
maxiter int The number of iterations to perform.
return System