MLPACK  1.0.7
nmf.hpp
Go to the documentation of this file.
1 
23 #ifndef __MLPACK_METHODS_NMF_NMF_HPP
24 #define __MLPACK_METHODS_NMF_NMF_HPP
25 
26 #include <mlpack/core.hpp>
28 #include "random_init.hpp"
29 
30 namespace mlpack {
31 namespace nmf {
32 
83 template<typename InitializationRule = RandomInitialization,
84  typename WUpdateRule = WMultiplicativeDistanceRule,
85  typename HUpdateRule = HMultiplicativeDistanceRule>
86 class NMF
87 {
88  public:
108  NMF(const size_t maxIterations = 10000,
109  const double minResidue = 1e-10,
110  const InitializationRule initializeRule = InitializationRule(),
111  const WUpdateRule wUpdate = WUpdateRule(),
112  const HUpdateRule hUpdate = HUpdateRule());
113 
122  template<typename MatType>
123  void Apply(const MatType& V,
124  const size_t r,
125  arma::mat& W,
126  arma::mat& H) const;
127 
128  private:
132  double minResidue;
134  InitializationRule initializeRule;
136  WUpdateRule wUpdate;
138  HUpdateRule hUpdate;
139 
140  public:
142  size_t MaxIterations() const { return maxIterations; }
144  size_t& MaxIterations() { return maxIterations; }
146  double MinResidue() const { return minResidue; }
148  double& MinResidue() { return minResidue; }
150  const InitializationRule& InitializeRule() const { return initializeRule; }
152  InitializationRule& InitializeRule() { return initializeRule; }
154  const WUpdateRule& WUpdate() const { return wUpdate; }
156  WUpdateRule& WUpdate() { return wUpdate; }
158  const HUpdateRule& HUpdate() const { return hUpdate; }
160  HUpdateRule& HUpdate() { return hUpdate; }
161 
162 }; // class NMF
163 
164 }; // namespace nmf
165 }; // namespace mlpack
166 
167 // Include implementation.
168 #include "nmf_impl.hpp"
169 
170 #endif
WUpdateRule wUpdate
Instantiated W update rule.
Definition: nmf.hpp:136
double minResidue
The minimum residue, below which iteration is considered converged.
Definition: nmf.hpp:132
HUpdateRule hUpdate
Instantiated H update rule.
Definition: nmf.hpp:138
double MinResidue() const
Access the minimum residue before termination.
Definition: nmf.hpp:146
size_t MaxIterations() const
Access the maximum number of iterations.
Definition: nmf.hpp:142
NMF(const size_t maxIterations=10000, const double minResidue=1e-10, const InitializationRule initializeRule=InitializationRule(), const WUpdateRule wUpdate=WUpdateRule(), const HUpdateRule hUpdate=HUpdateRule())
Create the NMF object and (optionally) set the parameters which NMF will run with.
void Apply(const MatType &V, const size_t r, arma::mat &W, arma::mat &H) const
Apply Non-Negative Matrix Factorization to the provided matrix.
InitializationRule & InitializeRule()
Modify the initialization rule.
Definition: nmf.hpp:152
const WUpdateRule & WUpdate() const
Access the W update rule.
Definition: nmf.hpp:154
const InitializationRule & InitializeRule() const
Access the initialization rule.
Definition: nmf.hpp:150
WUpdateRule & WUpdate()
Modify the W update rule.
Definition: nmf.hpp:156
size_t maxIterations
The maximum number of iterations allowed before giving up.
Definition: nmf.hpp:130
const HUpdateRule & HUpdate() const
Access the H update rule.
Definition: nmf.hpp:158
This class implements the NMF on the given matrix V.
Definition: nmf.hpp:86
InitializationRule initializeRule
Instantiated initialization Rule.
Definition: nmf.hpp:134
double & MinResidue()
Modify the minimum residue before termination.
Definition: nmf.hpp:148
size_t & MaxIterations()
Modify the maximum number of iterations.
Definition: nmf.hpp:144
HUpdateRule & HUpdate()
Modify the H update rule.
Definition: nmf.hpp:160