mlpack  master
matrix_completion.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_METHODS_MATRIX_COMPLETION_MATRIX_COMPLETION_HPP
14 #define MLPACK_METHODS_MATRIX_COMPLETION_MATRIX_COMPLETION_HPP
15 
18 
19 namespace mlpack {
20 namespace matrix_completion {
21 
54 {
55  public:
68  MatrixCompletion(const size_t m,
69  const size_t n,
70  const arma::umat& indices,
71  const arma::vec& values,
72  const size_t r);
73 
86  MatrixCompletion(const size_t m,
87  const size_t n,
88  const arma::umat& indices,
89  const arma::vec& values,
90  const arma::mat& initialPoint);
91 
102  MatrixCompletion(const size_t m,
103  const size_t n,
104  const arma::umat& indices,
105  const arma::vec& values);
106 
112  void Recover(arma::mat& recovered);
113 
118 
119  private:
121  size_t m;
123  size_t n;
125  arma::umat indices;
127  arma::mat values;
128 
131 
133  void CheckValues();
135  void InitSDP();
136 
139  static size_t DefaultRank(const size_t m, const size_t n, const size_t p);
140 };
141 
142 } // namespace matrix_completion
143 } // namespace mlpack
144 
145 #endif
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: binarize.hpp:18
const optimization::LRSDP< optimization::SDP< arma::sp_mat > > & Sdp() const
Return the underlying SDP.
static size_t DefaultRank(const size_t m, const size_t n, const size_t p)
Select a rank of the matrix given that is of size m x n and has p known elements. ...
LRSDP is the implementation of Monteiro and Burer&#39;s formulation of low-rank semidefinite programs (LR...
Definition: lrsdp.hpp:30
size_t m
Number of rows in original matrix.
arma::mat values
Vector containing the values of the known entries.
optimization::LRSDP< optimization::SDP< arma::sp_mat > > & Sdp()
Modify the underlying SDP.
MatrixCompletion(const size_t m, const size_t n, const arma::umat &indices, const arma::vec &values, const size_t r)
Construct a matrix completion problem, specifying the maximum rank of the solution.
size_t n
Number of columns in original matrix.
optimization::LRSDP< optimization::SDP< arma::sp_mat > > sdp
The underlying SDP to be solved.
void Recover(arma::mat &recovered)
Solve the underlying SDP to fill in the remaining values.
arma::umat indices
Matrix containing the indices of the known entries (has two rows).
This class implements the popular nuclear norm minimization heuristic for matrix completion problems...
void CheckValues()
Validate the input matrices.