sklearn.random_projection
.SparseRandomProjection¶
- class sklearn.random_projection.SparseRandomProjection¶
Reduce la dimensionalidad mediante la proyección aleatoria dispersa.
La matriz aleatoria dispersa es una alternativa a la matriz de proyección aleatoria densa que garantiza una calidad de inserción(embedding) similar a la vez que es mucho más eficiente en términos de memoria y permite un cálculo más rápido de los datos proyectados.
Si observamos
s = 1 / density
los componentes de la matriz aleatoria se extraen de:-sqrt(s) / sqrt(n_components) con probabilidad 1 / 2s
0 con probabilidad 1 - 1 / s
+sqrt(s) / sqrt(n_components) con probabilidad 1 / 2s
Más información en el Manual de usuario.
Nuevo en la versión 0.13.
- Parámetros
- n_componentsint o “auto”, default=”auto”
Dimensionalidad del espacio de proyección objetivo.
n_components puede ajustarse automáticamente según el número de muestras del conjunto de datos y el límite dado por el lema de Johnson-Lindenstrauss. En ese caso, la calidad de la inserción se controla con el parámetro
eps
.Hay que tener en cuenta que el lema de Johnson-Lindenstrauss puede producir una estimación muy conservadora del número de componentes necesarios, ya que no hace ninguna suposición sobre la estructura del conjunto de datos.
- densityfloat o “auto”, default=”auto”
Razón en el rango (0, 1] del componente distinto de cero en la matriz de proyección aleatoria.
Si density = “auto”, el valor se establece en la densidad mínima recomendada por Ping Li et al: 1 / sqrt(n_features).
Utiliza density = 1 / 3,0 si deseas reproducir los resultados de Achlioptas, 2001.
- epsfloat, default=0.1
Parámetro para controlar la calidad de la inserción según el lema de Johnson-Lindenstrauss cuando n_components se establece en “auto”. Este valor debe ser estrictamente positivo.
Los valores más pequeños conducen a una mejor inserción y a un mayor número de dimensiones (n_components) en el espacio de proyección objetivo.
- dense_outputbool, default=False
Si es True, asegura que la salida de la proyección aleatoria es un arreglo numpy denso incluso si la matriz de entrada y la de proyección aleatoria son ambas dispersas. En la práctica, si el número de componentes es pequeño, el número de componentes cero en los datos proyectados será muy pequeño y será más eficiente para la CPU y la memoria utilizar una representación densa.
Si es False, los datos proyectados utilizan una representación dispersa si la entrada es dispersa.
- random_stateentero, instancia de RandomState o None, default=None
Controla el generador de números pseudoaleatorios utilizado para generar la matriz de proyección en el momento del ajuste. Pase un int para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario.
- Atributos
- n_components_int
Número concreto de componentes calculado cuando n_components=»auto».
- components_matriz dispersa de forma (n_components, n_features)
Matriz aleatoria utilizada para la proyección. La matriz dispersa tendrá el formato CSR.
- density_float en el rango 0.0 - 1.0
Densidad concreta calculada cuando density = «auto».
Ver también
Referencias
- 1
Ping Li, T. Hastie y K. W. Church, 2006, «Very Sparse Random Projections». https://web.stanford.edu/~hastie/Papers/Ping/KDD06_rp.pdf
- 2
D. Achlioptas, 2001, «Database-friendly random projections», https://users.soe.ucsc.edu/~optas/papers/jl.pdf
Ejemplos
>>> import numpy as np >>> from sklearn.random_projection import SparseRandomProjection >>> rng = np.random.RandomState(42) >>> X = rng.rand(100, 10000) >>> transformer = SparseRandomProjection(random_state=rng) >>> X_new = transformer.fit_transform(X) >>> X_new.shape (100, 3947) >>> # very few components are non-zero >>> np.mean(transformer.components_ != 0) 0.0100...
Métodos
Genera una matriz de proyección aleatoria dispersa.
Ajusta los datos y luego los transforma.
Obtiene los parámetros para este estimador.
Establece los parámetros de este estimador.
Proyecta los datos mediante el producto de matrices con la matriz aleatoria
- fit()¶
Genera una matriz de proyección aleatoria dispersa.
- Parámetros
- X{ndarray, sparse matrix} de forma (n_samples, n_features)
Conjunto de entrenamiento: sólo se utiliza shape para encontrar las dimensiones óptimas de la matriz aleatoria basándose en la teoría referida en los artículos mencionados anteriormente.
- y
Ignorado
- Devuelve
- self
- fit_transform()¶
Ajusta los datos y luego los transforma.
Ajusta el transformador a
X
ey
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- 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 con 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()¶
Proyecta los datos mediante el producto de matrices con la matriz aleatoria
- Parámetros
- X{ndarray, sparse matrix} de forma (n_samples, n_features)
Los datos de entrada para proyectar en un espacio de menor dimensión.
- Devuelve
- X_new{ndarray, sparse matrix} de forma (n_samples, n_components)
Arreglo proyectado.