MLPACK  1.0.10
amf.hpp
Go to the documentation of this file.
1 
26 #ifndef __MLPACK_METHODS_AMF_AMF_HPP
27 #define __MLPACK_METHODS_AMF_AMF_HPP
28 
29 #include <mlpack/core.hpp>
33 
34 namespace mlpack {
35 namespace amf {
36 
74 template<typename TerminationPolicyType = SimpleResidueTermination,
75  typename InitializationRuleType = RandomInitialization,
76  typename UpdateRuleType = NMFMultiplicativeDistanceUpdate>
77 class AMF
78 {
79  public:
96  AMF(const TerminationPolicyType& terminationPolicy = TerminationPolicyType(),
97  const InitializationRuleType& initializeRule = InitializationRuleType(),
98  const UpdateRuleType& update = UpdateRuleType());
99 
108  template<typename MatType>
109  double Apply(const MatType& V,
110  const size_t r,
111  arma::mat& W,
112  arma::mat& H);
113 
115  const TerminationPolicyType& TerminationPolicy() const
116  { return terminationPolicy; }
118  TerminationPolicyType& TerminationPolicy() { return terminationPolicy; }
119 
121  const InitializationRuleType& InitializeRule() const
122  { return initializationRule; }
124  InitializationRuleType& InitializeRule() { return initializationRule; }
125 
127  const UpdateRuleType& Update() const { return update; }
129  UpdateRuleType& Update() { return update; }
130 
131  private:
133  TerminationPolicyType terminationPolicy;
135  InitializationRuleType initializationRule;
137  UpdateRuleType update;
138 }; // class AMF
139 
140 }; // namespace amf
141 }; // namespace mlpack
142 
143 // Include implementation.
144 #include "amf_impl.hpp"
145 
146 #endif
147 
InitializationRuleType initializationRule
Instantiated initialization Rule.
Definition: amf.hpp:135
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:77
UpdateRuleType & Update()
Modify the update rule.
Definition: amf.hpp:129
UpdateRuleType update
Instantiated update rule.
Definition: amf.hpp:137
InitializationRuleType & InitializeRule()
Modify the initialization rule.
Definition: amf.hpp:124
const UpdateRuleType & Update() const
Access the update rule.
Definition: amf.hpp:127
TerminationPolicyType & TerminationPolicy()
Modify the termination policy.
Definition: amf.hpp:118
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:133
const TerminationPolicyType & TerminationPolicy() const
Access the termination policy.
Definition: amf.hpp:115
const InitializationRuleType & InitializeRule() const
Access the initialization rule.
Definition: amf.hpp:121
The multiplicative distance update rules for matrices W and H.