First, vectors come in two flavors: dense and sparse. Dense vectors store all their entries in an array of floating-point numbers.
In contrast, sparse vectors store only the nonzero values and their indices. Sparse vectors are usually preferable (both in terms of memory use and speed) if at most 10% of elements are nonzero.
MLlib’s
Vector
classes are primarily meant for data
representation, but do not provide arithmetic operations such as
addition and subtraction in the user API. import
org.apache.spark.mllib.linalg.Vectors
// Create the dense vector <1.0, 2.0, 3.0>; Vectors.dense takes values or an array
val
denseVec2
=
Vectors
.
dense
(
Array
(
1.0
,
2.0
,
3.0
))
// Create the sparse vector <1.0, 0.0, 2.0, 0.0>; Vectors.sparse takes the size of
// the vector (here 4) and the positions and values of nonzero entries
val
sparseVec1
=
Vectors
.
sparse
(
4
,
Array
(
0
,
2
),
Array
(
1.0
,
2.0
))
No comments:
Post a Comment