MLPACK  1.0.10
lcc.hpp
Go to the documentation of this file.
1 
23 #ifndef __MLPACK_METHODS_LOCAL_COORDINATE_CODING_LCC_HPP
24 #define __MLPACK_METHODS_LOCAL_COORDINATE_CODING_LCC_HPP
25 
26 #include <mlpack/core.hpp>
28 
29 // Include three simple dictionary initializers from sparse coding.
30 #include "../sparse_coding/nothing_initializer.hpp"
31 #include "../sparse_coding/data_dependent_random_initializer.hpp"
32 #include "../sparse_coding/random_initializer.hpp"
33 
34 namespace mlpack {
35 namespace lcc {
36 
89 template<typename DictionaryInitializer =
92 {
93  public:
101  LocalCoordinateCoding(const arma::mat& data,
102  const size_t atoms,
103  const double lambda);
104 
113  void Encode(const size_t maxIterations = 0,
114  const double objTolerance = 0.01);
115 
119  void OptimizeCode();
120 
128  void OptimizeDictionary(arma::uvec adjacencies);
129 
133  double Objective(arma::uvec adjacencies) const;
134 
136  const arma::mat& Data() const { return data; }
137 
139  const arma::mat& Dictionary() const { return dictionary; }
141  arma::mat& Dictionary() { return dictionary; }
142 
144  const arma::mat& Codes() const { return codes; }
146  arma::mat& Codes() { return codes; }
147 
148  // Returns a string representation of this object.
149  std::string ToString() const;
150 
151  private:
153  size_t atoms;
154 
156  const arma::mat& data;
157 
159  arma::mat dictionary;
160 
162  arma::mat codes;
163 
165  double lambda;
166 };
167 
168 }; // namespace lcc
169 }; // namespace mlpack
170 
171 // Include implementation.
172 #include "lcc_impl.hpp"
173 
174 #endif
const arma::mat & data
Data matrix (columns are points).
Definition: lcc.hpp:156
void OptimizeDictionary(arma::uvec adjacencies)
Learn dictionary by solving linear system.
arma::mat & Dictionary()
Mutator for dictionary.
Definition: lcc.hpp:141
const arma::mat & Dictionary() const
Accessor for dictionary.
Definition: lcc.hpp:139
double Objective(arma::uvec adjacencies) const
Compute objective function given the list of adjacencies.
A data-dependent random dictionary initializer for SparseCoding.
LocalCoordinateCoding(const arma::mat &data, const size_t atoms, const double lambda)
Set the parameters to LocalCoordinateCoding.
arma::mat & Codes()
Modify the codes.
Definition: lcc.hpp:146
arma::mat dictionary
Dictionary (columns are atoms).
Definition: lcc.hpp:159
An implementation of Local Coordinate Coding (LCC) that codes data which approximately lives on a man...
Definition: lcc.hpp:91
arma::mat codes
Codes (columns are points).
Definition: lcc.hpp:162
size_t atoms
Number of atoms in dictionary.
Definition: lcc.hpp:153
void Encode(const size_t maxIterations=0, const double objTolerance=0.01)
Run local coordinate coding.
void OptimizeCode()
Code each point via distance-weighted LARS.
const arma::mat & Codes() const
Accessor the codes.
Definition: lcc.hpp:144
double lambda
l1 regularization term.
Definition: lcc.hpp:165
const arma::mat & Data() const
Access the data.
Definition: lcc.hpp:136