Abstract

This article introduces a Python library named pyGNMF, which implements the recently proposed generalised non-negative matrix factorisation (GNMF) method. GNMF factorises a non-negative matrix into a product of two non-negative matrices by incorporating error-covariance information between different elements of the dataset. In literature, several non-negative matrix factorisation (NNMF) methods such as NMF, glsNMF and LS-NMF are available; however, they assume different forms of the error-covariance matrix. In particular, NMF assumes identity error-covariance matrix, LS-NMF assumes diagonal error-covariance matrix, and glsNMF assumes errors to be correlated in only one direction (rows or columns). In contrast, GNMF can incorporate the full error-covariance information and depending on the error-covariance structure, GNMF subsumes these methods as special cases. The parent article introduces two approaches to solve the problem by using projected gradient-based and multiplicative updates and is demonstrated on an air pollution source apportionment problem. Both these approaches have been incorporated into the pyGNMF library. The mathematical nature of GNMF method makes it domain-agnostic, enabling users from different domains to deploy GNMF for their non-negative matrix factorisation applications.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.