package sklearn

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type tag = [
  1. | `DictionaryLearning
]
type t = [ `BaseEstimator | `DictionaryLearning | `Object | `SparseCodingMixin | `TransformerMixin ] Obj.t
val of_pyobject : Py.Object.t -> t
val to_pyobject : [> tag ] Obj.t -> Py.Object.t
val as_transformer : t -> [ `TransformerMixin ] Obj.t
val as_estimator : t -> [ `BaseEstimator ] Obj.t
val as_sparse_coding : t -> [ `SparseCodingMixin ] Obj.t
val create : ?n_components:int -> ?alpha:float -> ?max_iter:int -> ?tol:float -> ?fit_algorithm:[ `Lars | `Cd ] -> ?transform_algorithm:[ `Lasso_lars | `Lasso_cd | `Lars | `Omp | `Threshold ] -> ?transform_n_nonzero_coefs:int -> ?transform_alpha:float -> ?n_jobs:int -> ?code_init:[> `ArrayLike ] Np.Obj.t -> ?dict_init:[> `ArrayLike ] Np.Obj.t -> ?verbose:int -> ?split_sign:bool -> ?random_state:int -> ?positive_code:bool -> ?positive_dict:bool -> ?transform_max_iter:int -> unit -> t

Dictionary learning

Finds a dictionary (a set of atoms) that can best be used to represent data using a sparse code.

Solves the optimization problem::

(U^*,V^* ) = argmin 0.5 || Y - U V ||_2^2 + alpha * || U ||_1 (U,V) with || V_k ||_2 = 1 for all 0 <= k < n_components

Read more in the :ref:`User Guide <DictionaryLearning>`.

Parameters ---------- n_components : int, default=n_features number of dictionary elements to extract

alpha : float, default=1.0 sparsity controlling parameter

max_iter : int, default=1000 maximum number of iterations to perform

tol : float, default=1e-8 tolerance for numerical error

fit_algorithm : 'lars', 'cd', default='lars' lars: uses the least angle regression method to solve the lasso problem (linear_model.lars_path) cd: uses the coordinate descent method to compute the Lasso solution (linear_model.Lasso). Lars will be faster if the estimated components are sparse.

.. versionadded:: 0.17 *cd* coordinate descent method to improve speed.

transform_algorithm : 'lasso_lars', 'lasso_cd', 'lars', 'omp', 'threshold', default='omp' Algorithm used to transform the data lars: uses the least angle regression method (linear_model.lars_path) lasso_lars: uses Lars to compute the Lasso solution lasso_cd: uses the coordinate descent method to compute the Lasso solution (linear_model.Lasso). lasso_lars will be faster if the estimated components are sparse. omp: uses orthogonal matching pursuit to estimate the sparse solution threshold: squashes to zero all coefficients less than alpha from the projection ``dictionary * X'``

.. versionadded:: 0.17 *lasso_cd* coordinate descent method to improve speed.

transform_n_nonzero_coefs : int, default=0.1*n_features Number of nonzero coefficients to target in each column of the solution. This is only used by `algorithm='lars'` and `algorithm='omp'` and is overridden by `alpha` in the `omp` case.

transform_alpha : float, default=1.0 If `algorithm='lasso_lars'` or `algorithm='lasso_cd'`, `alpha` is the penalty applied to the L1 norm. If `algorithm='threshold'`, `alpha` is the absolute value of the threshold below which coefficients will be squashed to zero. If `algorithm='omp'`, `alpha` is the tolerance parameter: the value of the reconstruction error targeted. In this case, it overrides `n_nonzero_coefs`.

n_jobs : int or None, default=None Number of parallel jobs to run. ``None`` means 1 unless in a :obj:`joblib.parallel_backend` context. ``-1`` means using all processors. See :term:`Glossary <n_jobs>` for more details.

code_init : array of shape (n_samples, n_components), default=None initial value for the code, for warm restart

dict_init : array of shape (n_components, n_features), default=None initial values for the dictionary, for warm restart

verbose : bool, default=False To control the verbosity of the procedure.

split_sign : bool, default=False Whether to split the sparse feature vector into the concatenation of its negative part and its positive part. This can improve the performance of downstream classifiers.

random_state : int, RandomState instance or None, optional (default=None) Used for initializing the dictionary when ``dict_init`` is not specified, randomly shuffling the data when ``shuffle`` is set to ``True``, and updating the dictionary. Pass an int for reproducible results across multiple function calls. See :term:`Glossary <random_state>`.

positive_code : bool, default=False Whether to enforce positivity when finding the code.

.. versionadded:: 0.20

positive_dict : bool, default=False Whether to enforce positivity when finding the dictionary

.. versionadded:: 0.20

transform_max_iter : int, default=1000 Maximum number of iterations to perform if `algorithm='lasso_cd'` or `lasso_lars`.

.. versionadded:: 0.22

Attributes ---------- components_ : array, n_components, n_features dictionary atoms extracted from the data

error_ : array vector of errors at each iteration

n_iter_ : int Number of iterations run.

Notes ----- **References:**

J. Mairal, F. Bach, J. Ponce, G. Sapiro, 2009: Online dictionary learning for sparse coding (https://www.di.ens.fr/sierra/pdfs/icml09.pdf)

See also -------- SparseCoder MiniBatchDictionaryLearning SparsePCA MiniBatchSparsePCA

val fit : ?y:Py.Object.t -> x:[> `ArrayLike ] Np.Obj.t -> [> tag ] Obj.t -> t

Fit the model from data in X.

Parameters ---------- X : array-like, shape (n_samples, n_features) Training vector, where n_samples in the number of samples and n_features is the number of features.

y : Ignored

Returns ------- self : object Returns the object itself

val fit_transform : ?y:[> `ArrayLike ] Np.Obj.t -> ?fit_params:(string * Py.Object.t) list -> x:[> `ArrayLike ] Np.Obj.t -> [> tag ] Obj.t -> [> `ArrayLike ] Np.Obj.t

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.

Parameters ---------- X : array-like, sparse matrix, dataframe of shape (n_samples, n_features)

y : ndarray of shape (n_samples,), default=None Target values.

**fit_params : dict Additional fit parameters.

Returns ------- X_new : ndarray array of shape (n_samples, n_features_new) Transformed array.

val get_params : ?deep:bool -> [> tag ] Obj.t -> Dict.t

Get parameters for this estimator.

Parameters ---------- deep : bool, default=True If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns ------- params : mapping of string to any Parameter names mapped to their values.

val set_params : ?params:(string * Py.Object.t) list -> [> tag ] Obj.t -> t

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form ``<component>__<parameter>`` so that it's possible to update each component of a nested object.

Parameters ---------- **params : dict Estimator parameters.

Returns ------- self : object Estimator instance.

val transform : x:[> `ArrayLike ] Np.Obj.t -> [> tag ] Obj.t -> [> `ArrayLike ] Np.Obj.t

Encode the data as a sparse combination of the dictionary atoms.

Coding method is determined by the object parameter `transform_algorithm`.

Parameters ---------- X : array of shape (n_samples, n_features) Test data to be transformed, must have the same number of features as the data used to train the model.

Returns ------- X_new : array, shape (n_samples, n_components) Transformed data

val components_ : t -> [> `ArrayLike ] Np.Obj.t

Attribute components_: get value or raise Not_found if None.

val components_opt : t -> [> `ArrayLike ] Np.Obj.t option

Attribute components_: get value as an option.

val error_ : t -> [> `ArrayLike ] Np.Obj.t

Attribute error_: get value or raise Not_found if None.

val error_opt : t -> [> `ArrayLike ] Np.Obj.t option

Attribute error_: get value as an option.

val n_iter_ : t -> int

Attribute n_iter_: get value or raise Not_found if None.

val n_iter_opt : t -> int option

Attribute n_iter_: get value as an option.

val to_string : t -> string

Print the object to a human-readable representation.

val show : t -> string

Print the object to a human-readable representation.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty-print the object to a formatter.