sklearn.decomposition.SparseCoder

class sklearn.decomposition.SparseCoder

Codificación dispersa

Encuentra una representación dispersa de los datos contra un diccionario fijo y precalculado.

Cada fila del resultado es la solución a un problema de codificación dispersa. El objetivo es encontrar un arreglo disperso code tal que:

X ~= code * dictionary

Más información en el Manual de usuario.

Parámetros
dictionaryndarray de forma (n_components, n_features)

Los átomos del diccionario utilizados para la codificación dispersa. Se supone que las líneas están normalizadas a la norma unitaria.

transform_algorithm{“lasso_lars”, “lasso_cd”, “lars”, “omp”, “threshold”}, default=”omp”

Algoritmo utilizado para transformar los datos:

  • 'lars': utiliza el método de regresión de ángulo mínimo (linear_model.lars_path);

  • 'lasso_lars': utiliza Lars para calcular la solución Lasso;

  • 'lasso_cd': utiliza el método de descenso de coordenadas para calcular la solución Lasso (linear_model.Lasso). 'lasso_lars' será más rápido si los componentes estimados son dispersos;

  • 'omp': utiliza la búsqueda de correspondencias ortogonales para estimar la solución dispersa;

  • 'threshold': reduce a cero todos los coeficientes menores que alfa de la proyección dictionary * X'.

transform_n_nonzero_coefsint, default=None

Número de coeficientes distintos de cero para el objetivo en cada columna de la solución. Sólo se utiliza con algorithm='lars' y algorithm='omp' y se anula con alpha en el caso omp. Si es None, entonces transform_n_nonzero_coefs=int(n_features / 10).

transform_alphafloat, default=None

Si algorithm='lasso_lars' o `algorithm='lasso_cd', alpha es la penalización aplicada a la norma L1. Si algorithm='threshold', alpha es el valor absoluto del umbral por debajo del cual los coeficientes serán reducidos a cero. Si algorithm='omp', alpha es el parámetro de tolerancia: el valor del error de reconstrucción al que se apunta. En este caso, anula n_nonzero_coefs. Si es None, por defecto es 1.

split_signbool, default=False

Si se desea dividir el vector de características disperso en la concatenación de su parte negativa y su parte positiva. Esto puede mejorar el rendimiento de los clasificadores posteriores.

n_jobsint, default=None

Número de trabajos paralelos a ejecutar. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa utilizar todos los procesadores. Ver el Glosario para más detalles.

positive_codebool, default=False

Indica si se debe imponer la positividad al encontrar el código.

Nuevo en la versión 0.20.

transform_max_iterint, default=1000

Número máximo de iteraciones a realizar si algorithm='lasso_cd' o lasso_lars.

Nuevo en la versión 0.22.

Atributos
components_ndarray de forma (n_components, n_features)

Los átomos del diccionario sin cambios.

Obsoleto desde la versión 0.24: Este atributo está obsoleto en 0.24 y se eliminará en 1.1 (cambio de nombre de 0.26). Utiliza dictionary en su lugar.

Ejemplos

>>> import numpy as np
>>> from sklearn.decomposition import SparseCoder
>>> X = np.array([[-1, -1, -1], [0, 0, 3]])
>>> dictionary = np.array(
...     [[0, 1, 0],
...      [-1, -1, 2],
...      [1, 1, 1],
...      [0, 1, 1],
...      [0, 2, 1]],
...    dtype=np.float64
... )
>>> coder = SparseCoder(
...     dictionary=dictionary, transform_algorithm='lasso_lars',
...     transform_alpha=1e-10,
... )
>>> coder.transform(X)
array([[ 0.,  0., -1.,  0.,  0.],
       [ 0.,  1.,  1.,  0.,  0.]])

Métodos

fit

No hace nada y devuelve el estimador sin cambios.

fit_transform

Ajusta a los datos y luego los transforma.

get_params

Obtiene los parámetros para este estimador.

set_params

Establece los parámetros de este estimador.

transform

Codifica los datos como una combinación dispersa de los átomos del diccionario.

fit()

No hace nada y devuelve el estimador sin cambios.

Este método sólo está ahí para implementar la API habitual y, por lo tanto, para trabajar en pipelines.

Parámetros
XIgnorado
yIgnorado
Devuelve
selfobject
fit_transform()

Ajusta a los datos y luego los transforma.

Ajusta el transformador a X e y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

transform()

Codifica los datos como una combinación dispersa de los átomos del diccionario.

El método de codificación está determinado por el parámetro del objeto transform_algorithm.

Parámetros
Xndarray de forma [n_samples, n_features)

Los datos de prueba que se van a transformar, deben tener el mismo número de características que los datos utilizados para entrenar el modelo.

Devuelve
X_newndarray de forma (n_samples, n_components)

Datos transformados.