You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This package includes the code of the paper 'GSVD-NMF: Recovering Missing Features in
7
-
Non-negative Matrix Factorization`.
8
-
It is used to recover Non-negative matrix factorization(NMF) components from low-dimensional space to higher dimensional space by exploiting the generalized singular value decomposition (GSVD) between existing NMF results and the SVD of X.
6
+
This package implements the technique in the paper 'GSVD-NMF: Recovering Missing Features in
7
+
Non-negative Matrix Factorization`.
8
+
It is used to recover Non-negative matrix factorization(NMF) components from an initial lower-rank factorization by exploiting the generalized singular value decomposition (GSVD) between existing NMF results and the SVD of X.
9
9
This method allows the incremental expansion of the number of components, which can be convenient and effective for interactive analysis of large-scale data.
10
10
11
11
See also [NMFMerge](https://github.com/HolyLab/NMFMerge.jl) for the converse operation. Together, the two result in a substantial improvement in the quality and consistency of NMF factorization.
@@ -16,9 +16,9 @@ Demo:
16
16
17
17
To run this demo, NMF.jl and LinearAlgebra.jl are also required.
18
18
19
-
Install and load packages
19
+
Install and load packages (type `]` at the `julia>` prompt to enter `pkg>` mode):
``ncomponents::Pair{Int,Int}``: in the form of ``n1 => n2``, augments from ``n1`` components to ``n2``components, where ``n1`` is the number of components for initial NMF (under-complete NMF), and ``n2`` is the number of components for final NMF.
75
76
76
-
Alternatively, ``ncomponents`` can be an integer denoting the number of components for final NMF.
77
+
Alternatively, ``ncomponents`` can be an integer denoting the number of components for final NMF.
77
78
In this case, ``gsvdnmf`` defaults to augment components on initial NMF solution by 1.
78
79
79
80
Keyword arguments:
@@ -86,9 +87,9 @@ Other keyword arguments are passed to ``NMF.nnmf``.
86
87
87
88
-----
88
89
89
-
W, H = **gsvdnmf**(X::AbstractMatrix, W::AbstractMatrix, H::AbstractMatrix, f;
90
-
n2 = size(first(f), 2),
91
-
tol_nmf=1e-4,
90
+
W, H = **gsvdnmf**(X::AbstractMatrix, W::AbstractMatrix, H::AbstractMatrix, f;
91
+
n2 = size(first(f), 2),
92
+
tol_nmf=1e-4,
92
93
kwargs...)
93
94
94
95
This funtion augments components for ``W`` and ``H``, and subsequently polishs new ``W`` and ``H`` by NMF.
@@ -105,7 +106,7 @@ Arguments:
105
106
106
107
``f``: SVD (or Truncated SVD) of ``X``, ``f`` needs to be explicitly writen in ``Tuple`` form.
107
108
108
-
Keyword arguments
109
+
Keyword arguments
109
110
110
111
``tol_nmf``: the tolerance of NMF polishing step, default: $10^{-4}$
111
112
@@ -140,9 +141,5 @@ Arguments:
140
141
-----
141
142
142
143
## Citation
143
-
The code is welcomed to be used in your publication, please cite:
W, H = **gsvdnmf**(X::AbstractMatrix, ncomponents::Pair{Int,Int}; tol_final=1e-4, tol_intermediate=1e-4, kwargs...)
53
+
W, H = gsvdnmf(X::AbstractMatrix, ncomponents::Pair{Int,Int}; tol_final=1e-4, tol_intermediate=1e-4, kwargs...)
56
54
57
-
This function performs "GSVD-NMF" on 2D data matrix ``X``.
55
+
Perform "GSVD-NMF" on the data matrix `X`.
58
56
59
-
Arguments:
57
+
Arguments:
60
58
61
-
``X``: non-nagetive 2D data matrix
59
+
- `X`: non-negative data matrix
62
60
63
-
``ncomponents::Pair{Int,Int}``: in the form of ``n1 => n2``, augments from ``n1`` components to ``n2``components, where ``n1`` is the number of components for initial NMF (under-complete NMF), and ``n2`` is the number of components for final NMF.
61
+
- `ncomponents`: in the form of `n1 => n2`, augments from `n1` components to `n2`components,
62
+
where `n1` is the number of components for initial NMF (under-complete NMF), and `n2` is the number of
63
+
components for final NMF.
64
64
65
-
Alternatively, ``ncomponents`` can be an integer denoting the number of components for final NMF.
66
-
In this case, ``gsvdnmf`` defaults to augment components on initial NMF solution by 1.
65
+
Alternatively, `ncomponents` can be an integer denoting the number of components for final NMF.
66
+
In this case, `gsvdnmf` defaults to augment components on initial NMF solution by 1.
67
67
68
-
Keyword arguments:
68
+
Keyword arguments:
69
69
70
-
``tol_final``: The tolerence of final NMF, default:``10^{-4}``
70
+
- `tol_final`: The tolerence of final NMF, default:`10^{-4}`
71
71
72
-
``tol_intermediate``: The tolerence of initial NMF (under-complete NMF), default: tol_final
72
+
- `tol_intermediate`: The tolerence of initial NMF (under-complete NMF), default: tol_final
73
73
74
-
Other keyword arguments are passed to ``NMF.nnmf``.
0 commit comments