---
name: "mlpack_sparse_coding"
section: "1"
platform: "linux"
package: "mlpack-bin"
version: "4.6.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mlpack_sparse_coding"
---

# mlpack\_sparse\_coding(1)

sparse coding

## NAME

**mlpack\_sparse\_coding** - sparse coding

## SYNOPSIS

```
 mlpack_sparse_coding [-k int] [-i unknown] [-m unknown] [-l double] [-L double] [-n int] [-w double] [-N bool] [-o double] [-s int] [-T unknown] [-t unknown] [-V bool] [-c unknown] [-d unknown] [-M unknown] [-h -v]
```

## DESCRIPTION

An implementation of Sparse Coding with Dictionary Learning, which achieves sparsity via an l1-norm regularizer on the codes (LASSO) or an (l1+l2)**-norm** regularizer on the codes (the Elastic Net). Given a dense data matrix X with d dimensions and n points, sparse coding seeks to find a dense dictionary matrix D with k atoms in d dimensions, and a sparse coding matrix Z with n points in k dimensions.

The original data matrix X can then be reconstructed as Z \* D. Therefore, this program finds a representation of each point in X as a sparse linear combination of atoms in the dictionary D.

The sparse coding is found with an algorithm which alternates between a dictionary step, which updates the dictionary D, and a sparse coding step, which updates the sparse coding matrix.

Once a dictionary D is found, the sparse coding model may be used to encode other matrices, and saved for future usage.

To run this program, either an input matrix or an already-saved sparse coding model must be specified. An input matrix may be specified with the ’**--training\_file** (**-t**)' option, along with the number of atoms in the dictionary (specified with the '**--atoms** (**-k**)' parameter). It is also possible to specify an initial dictionary for the optimization, with the ’**--initial\_dictionary\_file** (**-i**)' parameter. An input model may be specified with the '**--input\_model\_file** (**-m**)' parameter.

As an example, to build a sparse coding model on the dataset 'data.csv' using 200 atoms and an l1-regularization parameter of 0.1, saving the model into ’model.bin', use

$ **mlpack\_sparse\_coding** **--training\_file** data.csv **--atoms** 200 **--lambda1** 0.1 **--output\_model\_file** model.bin

Then, this model could be used to encode a new matrix, 'otherdata.csv', and save the output codes to 'codes.csv':

$ **mlpack\_sparse\_coding** **--input\_model\_file** model.bin **--test\_file** otherdata.csv **--codes\_file** codes.csv

## OPTIONAL INPUT OPTIONS

- **--atoms (-k) \[*int*\]**

  Number of atoms in the dictionary. Default value 15.

- **--help (-h) \[*bool*\]**

  Default help info.

- **--info \[string\]**

  Print help on a specific option. Default value ''.

- **--initial\_dictionary\_file (-i) \[*unknown*\]**

  Optional initial dictionary matrix.

- **--input\_model\_file (-m) \[*unknown*\]**

  File containing input sparse coding model.

- **--lambda1 (-l) \[*double*\]**

  Sparse coding l1-norm regularization parameter.  Default value 0.

- **--lambda2 (-L) \[*double*\]**

  Sparse coding l2-norm regularization parameter.  Default value 0.

- **--max\_iterations (-n) \[*int*\]**

  Maximum number of iterations for sparse coding (0 indicates no limit). Default value 0.

- **--newton\_tolerance (-w) \[*double*\]**

  Tolerance for convergence of Newton method.  Default value 1e-06.

- **--normalize (-N) \[*bool*\]**

  If set, the input data matrix will be normalized before coding.

- **--objective\_tolerance (-o) \[*double*\]**

  Tolerance for convergence of the objective function. Default value 0.01.

- **--seed (-s) \[*int*\]**

  Random seed. If 0, 'std::time(NULL)' is used.  Default value 0.

- **--test\_file (-T) \[*unknown*\]**

  Optional matrix to be encoded by trained model.

- **--training\_file (-t) \[*unknown*\]**

  Matrix of training data (X).

- **--verbose (-v) \[*bool*\]**

  Display informational messages and the full list of parameters and timers at the end of execution.

- **--version (-V) \[*bool*\]**

  Display the version of mlpack.

## OPTIONAL OUTPUT OPTIONS

- **--codes\_file (-c) \[*unknown*\]**

  Matrix to save the output sparse codes of the test matrix (**--test\_file**) to.

- **--dictionary\_file (-d) \[*unknown*\]**

  Matrix to save the output dictionary to.

- **--output\_model\_file (-M) \[*unknown*\]**

  File to save trained sparse coding model to.

## ADDITIONAL INFORMATION

For further information, including relevant papers, citations, and theory, consult the documentation found at http://www.mlpack.org or included with your distribution of mlpack.
