mlpack  1.0.12
amf.hpp
Go to the documentation of this file.
1 
20 #ifndef __MLPACK_METHODS_AMF_AMF_HPP
21 #define __MLPACK_METHODS_AMF_AMF_HPP
22 
23 #include <mlpack/core.hpp>
27 
28 namespace mlpack {
29 namespace amf {
30 
68 template<typename TerminationPolicyType = SimpleResidueTermination,
69  typename InitializationRuleType = RandomInitialization,
70  typename UpdateRuleType = NMFMultiplicativeDistanceUpdate>
71 class AMF
72 {
73  public:
90  AMF(const TerminationPolicyType& terminationPolicy = TerminationPolicyType(),
91  const InitializationRuleType& initializeRule = InitializationRuleType(),
92  const UpdateRuleType& update = UpdateRuleType());
93 
102  template<typename MatType>
103  double Apply(const MatType& V,
104  const size_t r,
105  arma::mat& W,
106  arma::mat& H);
107 
109  const TerminationPolicyType& TerminationPolicy() const
110  { return terminationPolicy; }
112  TerminationPolicyType& TerminationPolicy() { return terminationPolicy; }
113 
115  const InitializationRuleType& InitializeRule() const
116  { return initializationRule; }
118  InitializationRuleType& InitializeRule() { return initializationRule; }
119 
121  const UpdateRuleType& Update() const { return update; }
123  UpdateRuleType& Update() { return update; }
124 
125  private:
127  TerminationPolicyType terminationPolicy;
129  InitializationRuleType initializationRule;
131  UpdateRuleType update;
132 }; // class AMF
133 
134 }; // namespace amf
135 }; // namespace mlpack
136 
137 // Include implementation.
138 #include "amf_impl.hpp"
139 
140 #endif
141 
InitializationRuleType initializationRule
Instantiated initialization Rule.
Definition: amf.hpp:129
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:71
UpdateRuleType & Update()
Modify the update rule.
Definition: amf.hpp:123
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: load.hpp:23
UpdateRuleType update
Instantiated update rule.
Definition: amf.hpp:131
This class implements a simple residue-based termination policy.
InitializationRuleType & InitializeRule()
Modify the initialization rule.
Definition: amf.hpp:118
const UpdateRuleType & Update() const
Access the update rule.
Definition: amf.hpp:121
TerminationPolicyType & TerminationPolicy()
Modify the termination policy.
Definition: amf.hpp:112
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:127
const TerminationPolicyType & TerminationPolicy() const
Access the termination policy.
Definition: amf.hpp:109
const InitializationRuleType & InitializeRule() const
Access the initialization rule.
Definition: amf.hpp:115
The multiplicative distance update rules for matrices W and H.