mlpack  1.0.12
lcc.hpp
Go to the documentation of this file.
1 
15 #ifndef __MLPACK_METHODS_LOCAL_COORDINATE_CODING_LCC_HPP
16 #define __MLPACK_METHODS_LOCAL_COORDINATE_CODING_LCC_HPP
17 
18 #include <mlpack/core.hpp>
20 
21 // Include three simple dictionary initializers from sparse coding.
22 #include "../sparse_coding/nothing_initializer.hpp"
23 #include "../sparse_coding/data_dependent_random_initializer.hpp"
24 #include "../sparse_coding/random_initializer.hpp"
25 
26 namespace mlpack {
27 namespace lcc {
28 
81 template<typename DictionaryInitializer =
84 {
85  public:
93  LocalCoordinateCoding(const arma::mat& data,
94  const size_t atoms,
95  const double lambda);
96 
105  void Encode(const size_t maxIterations = 0,
106  const double objTolerance = 0.01);
107 
111  void OptimizeCode();
112 
120  void OptimizeDictionary(arma::uvec adjacencies);
121 
125  double Objective(arma::uvec adjacencies) const;
126 
128  const arma::mat& Data() const { return data; }
129 
131  const arma::mat& Dictionary() const { return dictionary; }
133  arma::mat& Dictionary() { return dictionary; }
134 
136  const arma::mat& Codes() const { return codes; }
138  arma::mat& Codes() { return codes; }
139 
140  // Returns a string representation of this object.
141  std::string ToString() const;
142 
143  private:
145  size_t atoms;
146 
148  const arma::mat& data;
149 
151  arma::mat dictionary;
152 
154  arma::mat codes;
155 
157  double lambda;
158 };
159 
160 }; // namespace lcc
161 }; // namespace mlpack
162 
163 // Include implementation.
164 #include "lcc_impl.hpp"
165 
166 #endif
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: load.hpp:23
const arma::mat & data
Data matrix (columns are points).
Definition: lcc.hpp:148
void OptimizeDictionary(arma::uvec adjacencies)
Learn dictionary by solving linear system.
arma::mat & Dictionary()
Mutator for dictionary.
Definition: lcc.hpp:133
const arma::mat & Dictionary() const
Accessor for dictionary.
Definition: lcc.hpp:131
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:138
arma::mat dictionary
Dictionary (columns are atoms).
Definition: lcc.hpp:151
An implementation of Local Coordinate Coding (LCC) that codes data which approximately lives on a man...
Definition: lcc.hpp:83
arma::mat codes
Codes (columns are points).
Definition: lcc.hpp:154
size_t atoms
Number of atoms in dictionary.
Definition: lcc.hpp:145
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:136
double lambda
l1 regularization term.
Definition: lcc.hpp:157
const arma::mat & Data() const
Access the data.
Definition: lcc.hpp:128