SVD

Type

transform

Class

fire.nodes.ml.NodeSVD

Fields

Name

Title

Description

columnName

Column Name

k

k

Details

Singular value decomposition (SVD) factorizes a matrix into three matrices: U, Σ, and V such that

A=UΣVT,

where

U is an orthonormal matrix, whose columns are called left singular vectors,

Σ is a diagonal matrix with non-negative diagonals in descending order, whose diagonals are called singular values,

V is an orthonormal matrix, whose columns are called right singular vectors

More details are available at: https://spark.apache.org/docs/2.0.0/mllib-dimensionality-reduction.html#singular-value-decomposition-svd

Examples

The below example is available at : https://spark.apache.org/docs/2.0.0/mllib-dimensionality-reduction.html#singular-value-decomposition-svd

import org.apache.spark.mllib.linalg.Matrix

import org.apache.spark.mllib.linalg.SingularValueDecomposition

import org.apache.spark.mllib.linalg.Vector

import org.apache.spark.mllib.linalg.Vectors

import org.apache.spark.mllib.linalg.distributed.RowMatrix

val data = Array(

Vectors.sparse(5, Seq((1, 1.0), (3, 7.0))),

Vectors.dense(2.0, 0.0, 3.0, 4.0, 5.0),

Vectors.dense(4.0, 0.0, 0.0, 6.0, 7.0))

val dataRDD = sc.parallelize(data, 2)

val mat: RowMatrix = new RowMatrix(dataRDD)

// Compute the top 5 singular values and corresponding singular vectors.

val svd: SingularValueDecomposition[RowMatrix, Matrix] = mat.computeSVD(5, computeU = true)

val U: RowMatrix = svd.U // The U factor is a RowMatrix.

val s: Vector = svd.s // The singular values are stored in a local dense vector.

val V: Matrix = svd.V // The V factor is a local dense matrix.