web-dev-qa-db-fra.com

Vecteur clairsemé vs vecteur dense

Comment créer SparseVector et des représentations vectorielles denses

si le DenseVector est:

denseV = np.array([0., 3., 0., 4.])

Quelle sera la représentation vectorielle clairsemée?

14
Anoop Toffy

Sauf si j'ai complètement mal compris votre doute, la documentation du type de données MLlib illustre cela très clairement:

import org.Apache.spark.mllib.linalg.Vector;
import org.Apache.spark.mllib.linalg.Vectors;

// Create a dense vector (1.0, 0.0, 3.0).
Vector dv = Vectors.dense(1.0, 0.0, 3.0);
// Create a sparse vector (1.0, 0.0, 3.0) by specifying its indices and values corresponding to nonzero entries.
Vector sv = Vectors.sparse(3, new int[] {0, 2}, new double[] {1.0, 3.0});

Où le deuxième argument de Vectors.sparse est un tableau des indices, et le troisième argument est le tableau des valeurs réelles de ces indices.

21
Chthonic Project

Les vecteurs clairsemés sont lorsque vous avez beaucoup de valeurs dans le vecteur comme zéro. Alors qu'un vecteur dense est lorsque la plupart des valeurs dans le vecteur sont non nulles.

Si vous devez créer un vecteur clairsemé à partir du vecteur dense que vous avez spécifié, utilisez la syntaxe suivante:

Vector sparseVector = Vectors.sparse(4, new int[] {1, 3}, new double[] {3.0, 4.0});
14
Saurabh