MLPACK  1.0.11
amf.hpp
Go to the documentation of this file.
1 
28 #ifndef __MLPACK_METHODS_AMF_AMF_HPP
29 #define __MLPACK_METHODS_AMF_AMF_HPP
30 
31 #include <mlpack/core.hpp>
35 
36 namespace mlpack {
37 namespace amf {
38 
76 template<typename TerminationPolicyType = SimpleResidueTermination,
77  typename InitializationRuleType = RandomInitialization,
78  typename UpdateRuleType = NMFMultiplicativeDistanceUpdate>
79 class AMF
80 {
81  public:
98  AMF(const TerminationPolicyType& terminationPolicy = TerminationPolicyType(),
99  const InitializationRuleType& initializeRule = InitializationRuleType(),
100  const UpdateRuleType& update = UpdateRuleType());
101 
110  template<typename MatType>
111  double Apply(const MatType& V,
112  const size_t r,
113  arma::mat& W,
114  arma::mat& H);
115 
117  const TerminationPolicyType& TerminationPolicy() const
118  { return terminationPolicy; }
120  TerminationPolicyType& TerminationPolicy() { return terminationPolicy; }
121 
123  const InitializationRuleType& InitializeRule() const
124  { return initializationRule; }
126  InitializationRuleType& InitializeRule() { return initializationRule; }
127 
129  const UpdateRuleType& Update() const { return update; }
131  UpdateRuleType& Update() { return update; }
132 
133  private:
135  TerminationPolicyType terminationPolicy;
137  InitializationRuleType initializationRule;
139  UpdateRuleType update;
140 }; // class AMF
141 
142 }; // namespace amf
143 }; // namespace mlpack
144 
145 // Include implementation.
146 #include "amf_impl.hpp"
147 
148 #endif
149 
InitializationRuleType initializationRule
Instantiated initialization Rule.
Definition: amf.hpp:137
double Apply(const MatType &V, const size_t r, arma::mat &W, arma::mat &H)
Apply Alternating Matrix Factorization to the provided matrix.
This class implements AMF (alternating matrix factorization) on the given matrix V.
Definition: amf.hpp:79
UpdateRuleType & Update()
Modify the update rule.
Definition: amf.hpp:131
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: load.hpp:31
UpdateRuleType update
Instantiated update rule.
Definition: amf.hpp:139
This class implements a simple residue-based termination policy.
InitializationRuleType & InitializeRule()
Modify the initialization rule.
Definition: amf.hpp:126
const UpdateRuleType & Update() const
Access the update rule.
Definition: amf.hpp:129
TerminationPolicyType & TerminationPolicy()
Modify the termination policy.
Definition: amf.hpp:120
AMF(const TerminationPolicyType &terminationPolicy=TerminationPolicyType(), const InitializationRuleType &initializeRule=InitializationRuleType(), const UpdateRuleType &update=UpdateRuleType())
Create the AMF object and (optionally) set the parameters which AMF will run with.
TerminationPolicyType terminationPolicy
Termination policy.
Definition: amf.hpp:135
const TerminationPolicyType & TerminationPolicy() const
Access the termination policy.
Definition: amf.hpp:117
const InitializationRuleType & InitializeRule() const
Access the initialization rule.
Definition: amf.hpp:123
The multiplicative distance update rules for matrices W and H.