فاکتورگیری نامنفی ماتریس
فاکتورگیری غیر منفی ماتریس یا Non-negative matrix factorization، مجموعهای از الگوریتمها برای تجزیه ماتریس به (معمولاً) دو ماتریس و . یعنی . فاکتورگیری ماتریسها معمولاً یکتا نیست و روشهای مختلفی برای انجام آن ارائه شدهاست مانند تحلیل مؤلفههای اصلی (Independent Component Analysis) یا تجزیه مقدارهای منفرد (Singular Value Decomposition) و غیره. تفاوت این روش با روشهای دیگر در این است که در فاکتورگیری غیر-منفی ماتریس این محدودیت را در نظر میگیریم که ماتریسهای H و W باید ماتریس غیرمنفی باشند (تمامی المانهای آنها مثبت باشد).
فاکتورگیری غیرمنفی ماتریس
معمولاً زمانی که دوماتریس را به هم ضرب میکنیم، رتبهٔ ماتریسهای فاکتور معمولاً بسیار کمتر از ماتریس حاصلضرب هستند. این یک انگیزهٔ بزرگ برای NMF است. یک مثال در زمینهٔ متن-کاوی:
بردار را با ۵۰۰ ستون و ۱۰۰۰ سطر در نظر میگیریم طوریکه هر ستون از این ماتریس یعنی یک متن را مشخص کند. یعنی ۵۰۰ متن هرکدام با ۱۰۰۰ کلمه. تصور کنید که ما از الگوریتم میخواهیم که ۱۰ ویژگی انتخاب کرده و بردار ویژگی را با ۱۰۰۰ سطر و ۱۰ ستون ایجاد کند. میتوان مشاهده کرد که هر ستون در ترکیب خطی ۱۰ بردار ویژه در با ضرایب موجود در هستند. در واقع میتوان اینگونه فرض کرد که هر متن، ساخته شده از ترکیب خطی مجموعه از بردارهای ویژه است.
نرمافزارها
- beta_ntf Python module for Nonnegative Tensor Factorization. Supports tensors of arbitrary shape.
- Routines for performing Weighted Non-Negative Matrix Factorzation
- Fast Non-negative Matrix Factorization متلب software by Haesun Park's group. See also a distribution page by Jingu Kim.
- Non-negative Matrix Factorization آر (زبان برنامهنویسی) implementation by Suhai (Timothy) Liu.
- Non-negative Matrix Factorization: algorithms and development framework آر (زبان برنامهنویسی): R-package published on آر (زبان برنامهنویسی) that implements a number of NMF algorithms and provides a framework to test, develop and benchmark new/custom algorithms. [by Renaud Gaujoux].
- Fast Non-Negative Matrix Factorization Software An efficient and feature rich C++ implementation of NMF using alternating non-negative least squares (ANLS) framework and block coordinate descent approach.
- PyMF A Python module that includes several matrix factorization methods.
- NMF toolbox implemented in Matlab. Developed at IMM DTU.
- Text to Matrix Generator (TMG) MATLAB toolbox that can be used for various tasks in text mining (TM) specifically i) indexing, ii) retrieval, iii) dimensionality reduction, iv) clustering, v) classification. Most of TMG is written in MATLAB and parts in Perl. It contains implementations of LSI, clustered LSI, NMF and other methods.
- GraphLab Efficient non-negative matrix factorization on multicore.
- Nimfa A Python library for non-negative matrix factorizations, various initialization methods and factorization quality measures.