Skip to content

Commit d39cbe0

Browse files
author
John Halloran
committed
Shorten and reformat docstring
1 parent a0483b4 commit d39cbe0

File tree

1 file changed

+28
-34
lines changed

1 file changed

+28
-34
lines changed

src/diffpy/snmf/snmf_class.py

Lines changed: 28 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55

66
class SNMFOptimizer:
7-
"""A self-contained implementation of the stretched NMF algorithm (sNMF),
8-
including sparse stretched NMF.
7+
"""A implementation of stretched NMF (sNMF), including sparse stretched NMF.
98
109
Instantiating the SNMFOptimizer class runs all the analysis immediately.
1110
The results matrices can then be accessed as instance attributes
@@ -33,44 +32,39 @@ def __init__(
3332
3433
Parameters
3534
----------
36-
MM: ndarray
37-
The array containing the data to be decomposed. Shape is (length_of_signal,
38-
number_of_conditions).
39-
Y0: ndarray
40-
The array containing initial guesses for the component weights
41-
at each stretching condition. Shape is (number of components, number of
42-
conditions) Must be provided if n_components is not provided. Will override
43-
n_components if both are provided.
44-
X0: ndarray
45-
The array containing initial guesses for the intensities of each component per
35+
MM : ndarray
36+
The data to be decomposed. Shape is (length_of_signal, number_of_conditions).
37+
Y0 : ndarray
38+
The initial guesses for the component weights at each stretching condition.
39+
Shape is (number of components, number ofconditions) Must be provided if
40+
n_components is not provided. Will override n_components if both are provided.
41+
X0 : ndarray
42+
The initial guesses for the intensities of each component per
4643
row/sample/angle. Shape is (length_of_signal, number_of_components).
47-
A: ndarray
48-
The array containing initial guesses for the stretching factor for each component,
49-
at each condition. Shape is (number_of_components, number_of_conditions).
50-
rho: float
51-
The float which sets a stretching factor that influences the decomposition.
52-
Zero corresponds to no stretching present. Relatively insensitive and typically
53-
adjusted in powers of 10.
54-
eta: float
55-
The integer which sets a sparsity factor than influences the decomposition.
56-
Should be set to zero for non sparse data such as PDF. Can be used to improve
57-
results for sparse data such as XRD, but due to instability, should be used
58-
only after first selecting the best value for rho.
59-
max_iter: int
44+
A : ndarray
45+
The initial guesses for the stretching factor for each component, at each
46+
condition. Shape is (number_of_components, number_of_conditions).
47+
rho : float
48+
The stretching factor that influences the decomposition. Zero corresponds to no
49+
stretching present. Relatively insensitive and typically adjusted in powers of 10.
50+
eta : float
51+
The sparsity factor than influences the decomposition. Should be set to zero for
52+
non-sparse data such as PDF. Can be used to improve results for sparse data such
53+
as XRD, but due to instability, should be used only after first selecting the
54+
best value for rho.
55+
max_iter : int
6056
The maximum number of times to update each of A, X, and Y before stopping
6157
the optimization.
62-
tol: float
63-
The minimum fractional improvement in the objective function to allow
64-
without terminating the optimization. Note that a minimum of 20 updates
65-
are run before this parameter is checked.
66-
n_components: int
58+
tol : float
59+
The convergence threshold. This is the minimum fractional improvement in the
60+
objective function to allow without terminating the optimization. Note that
61+
a minimum of 20 updates are run before this parameter is checked.
62+
n_components : int
6763
The number of components to attempt to extract from MM. Note that this will
6864
be overridden by Y0 if that is provided, but must be provided if no Y0 is
6965
provided.
70-
random_state: int
71-
The integer which acts as a reproducible seed for the initial matrices used in
72-
the optimization. Due to the non-convex nature of the problem, results may vary
73-
even with the same initial guesses, so this does not make the program deterministic.
66+
random_state : int
67+
The seed for the initial matrices used in the optimization.
7468
"""
7569

7670
self.MM = MM

0 commit comments

Comments
 (0)