Generated by DocFX

Class NonnegativeMatrixFactorization

Nonnegative Matrix Factorization.

Inheritance
System.Object
NonnegativeMatrixFactorization
Namespace: ISynergy.Framework.Mathematics.Decompositions
Assembly: ISynergy.Framework.Mathematics.dll
Syntax
public class NonnegativeMatrixFactorization : object
Remarks

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.

Constructors

View Source

NonnegativeMatrixFactorization(Double[,], Int32)

Initializes a new instance of the NMF algorithm

Declaration
public NonnegativeMatrixFactorization(double[, ] value, int r)
Parameters
Type Name Description
System.Double[,] value

The input data matrix (must be positive).

System.Int32 r

The reduced dimension.

View Source

NonnegativeMatrixFactorization(Double[,], Int32, Int32)

Initializes a new instance of the NMF algorithm

Declaration
public NonnegativeMatrixFactorization(double[, ] value, int r, int maxiter)
Parameters
Type Name Description
System.Double[,] value

The input data matrix (must be positive).

System.Int32 r

The reduced dimension.

System.Int32 maxiter

The number of iterations to perform.

Properties

View Source

LeftNonnegativeFactors

Gets the nonnegative factor matrix W.

Declaration
public double[, ] LeftNonnegativeFactors { get; }
Property Value
Type Description
System.Double[,]
View Source

RightNonnegativeFactors

Gets the nonnegative factor matrix H.

Declaration
public double[, ] RightNonnegativeFactors { get; }
Property Value
Type Description
System.Double[,]

Extension Methods

Matrix.Replace<T>(T, Object, Object)
Matrix.IsEqual(Object, Object, Decimal, Decimal)
EntityBaseExtensions.HasProperty(Object, String)
ArrayExtensions.Concatenate<T>(T, T[])
CollectionExtensions.FromHierarchy<TSource>(TSource, Func<TSource, TSource>, Func<TSource, Boolean>)
CollectionExtensions.FromHierarchy<TSource>(TSource, Func<TSource, TSource>)
ObjectExtensions.Clone<T>(T)
ObjectExtensions.To<T>(Object)
ObjectExtensions.To(Object, Type)
ObjectExtensions.HasMethod(Object, String)
ObjectExtensions.AddressOf<T>(T)
ReflectionExtensions.GetIdentityValue<T>(T)
ReflectionExtensions.GetIdentityValue<T, TResult>(T)
ReflectionExtensions.GetIdentityProperty<T>(T)
ReflectionExtensions.HasIdentityProperty<T>(T)
ReflectionExtensions.GetPropertyValue<T, TResult>(T, String, TResult)
ReflectionExtensions.GetPropertyInfo<T, TValue>(T, Expression<Func<T, TValue>>)
ReflectionExtensions.GetTitleValue<T>(T)
ReflectionExtensions.HasParentIdentityProperty<T>(T)
ReflectionExtensions.GetParentIdentityProperty<T>(T)
ReflectionExtensions.IsFreeApplication<T>(T)