¿Cómo reducir la dimensionalidad en Sparse Matrix en Python?

Una array generalmente consta de una combinación de ceros y no ceros. Cuando una array se compone principalmente de ceros, dicha array se denomina array dispersa. Una array que consta de un máximo de números distintos de cero, dicha array se denomina array densa. La array dispersa encuentra su aplicación en problemas de aprendizaje profundo y aprendizaje automático de alta dimensión. En otras palabras, cuando una array tiene muchos de sus coeficientes como cero, se dice que dicha array es escasa.

El área común donde nos encontramos con problemas de dimensionalidad tan escasos es

  • Procesamiento del lenguaje natural : es obvio que la mayoría de los elementos vectoriales del documento serán 0 en los modelos de lenguaje.
  • Visión por computadora : a veces una imagen puede estar ocupada por un color similar (por ejemplo, blanco que puede ser un fondo) que no nos brinda ninguna información útil.

En tales casos, no podemos darnos el lujo de tener una array de array dimensional grande, ya que puede aumentar la complejidad espacial y temporal del problema, por lo que se recomienda reducir la dimensionalidad de la array dispersa. En este artículo, discutamos la implementación de cómo reducir la dimensionalidad de la array dispersa en Python.

La dimensionalidad de la array dispersa se puede reducir representando primero la array densa como una representación de fila dispersa comprimida en la que la array dispersa se representa utilizando tres arrays unidimensionales para los valores distintos de cero, la extensión de las filas y la columna. índices Luego, mediante el uso de TruncatedSVD de scikit-learn, es posible reducir la dimensionalidad de la array dispersa.

Ejemplo:

Primero, cargue el conjunto de datos de dígitos incorporado del paquete scikit-learn, estandarice cada punto de datos usando el escalador estándar. Representa la array estandarizada en su forma dispersa usando csr_matrix como se muestra. Ahora importe el TruncatedSVD de sklearn y especifique el no. de dimensiones requeridas en el resultado final Finalmente verifique la forma de la array reducida

Python3

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import TruncatedSVD
from scipy.sparse import csr_matrix
from sklearn import datasets
from numpy import count_nonzero
 
# load the inbuild digits dataset
digits = datasets.load_digits()
 
print(digits.data)
 
# shape of the dense matrix
print(digits.data.shape)
 
# standardizing the data points
X = StandardScaler().fit_transform(digits.data)
print(X)
 
# representing in CSR form
X_sparse = csr_matrix(X)
print(X_sparse)
 
# specify the no of output features
tsvd = TruncatedSVD(n_components=10)
 
# apply the truncatedSVD function
X_sparse_tsvd = tsvd.fit(X_sparse).transform(X_sparse)
print(X_sparse_tsvd)
 
# shape of the reduced matrix
print(X_sparse_tsvd.shape)

Producción:

Código:

Verifiquemos de forma cruzada la dimensión original y la dimensión transformada.

Python3

print("Original number of features:", X.shape[1])
print("Reduced number of features:", X_sparse_tsvd.shape[1])

Producción:

Publicación traducida automáticamente

Artículo escrito por jssuriyakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *