From cdff9fc858b9b83eb1119ec2a6d1d3c9a66f47a9 Mon Sep 17 00:00:00 2001 From: Reza Zadeh Date: Sat, 4 Jan 2014 12:44:04 -0800 Subject: prettify --- .../scala/org/apache/spark/mllib/linalg/SVD.scala | 9 +++--- .../org/apache/spark/mllib/linalg/SVDSuite.scala | 34 +++++++++++----------- 2 files changed, 22 insertions(+), 21 deletions(-) (limited to 'mllib') diff --git a/mllib/src/main/scala/org/apache/spark/mllib/linalg/SVD.scala b/mllib/src/main/scala/org/apache/spark/mllib/linalg/SVD.scala index e58b8e8fbd..31990b0223 100644 --- a/mllib/src/main/scala/org/apache/spark/mllib/linalg/SVD.scala +++ b/mllib/src/main/scala/org/apache/spark/mllib/linalg/SVD.scala @@ -136,7 +136,7 @@ object SVD { // Construct jblas A^T A locally val ata = DoubleMatrix.zeros(n, n) for (entry <- emits.toArray) { - ata.put(entry._1._1-1, entry._1._2-1, entry._2) + ata.put(entry._1._1 - 1, entry._1._2 - 1, entry._2) } // Since A^T A is small, we can compute its SVD directly @@ -158,12 +158,12 @@ object SVD { MatrixEntry(i + 1, j + 1, V.get(i,j)) }.flatten) val retS = sc.makeRDD(Array.tabulate(sigma.length){ - x => MatrixEntry(x + 1,x + 1, sigma(x))}) + x => MatrixEntry(x + 1, x + 1, sigma(x))}) // Compute U as U = A V S^-1 // turn V S^-1 into an RDD as a sparse matrix val vsirdd = sc.makeRDD(Array.tabulate(V.rows, sigma.length) - { (i,j) => ((i + 1, j + 1), V.get(i,j)/sigma(j)) }.flatten) + { (i,j) => ((i + 1, j + 1), V.get(i,j) / sigma(j)) }.flatten) // Multiply A by VS^-1 val aCols = data.map(entry => (entry.j, (entry.i, entry.mval))) @@ -178,10 +178,11 @@ object SVD { def main(args: Array[String]) { if (args.length < 8) { - println("Usage: SVD " + + println("Usage: SVD " + " ") System.exit(1) } + val (master, inputFile, m, n, k, output_u, output_s, output_v) = (args(0), args(1), args(2).toInt, args(3).toInt, args(4).toInt, args(5), args(6), args(7)) diff --git a/mllib/src/test/scala/org/apache/spark/mllib/linalg/SVDSuite.scala b/mllib/src/test/scala/org/apache/spark/mllib/linalg/SVDSuite.scala index a83d9d015b..4126e819e3 100644 --- a/mllib/src/test/scala/org/apache/spark/mllib/linalg/SVDSuite.scala +++ b/mllib/src/test/scala/org/apache/spark/mllib/linalg/SVDSuite.scala @@ -47,25 +47,25 @@ class SVDSuite extends FunSuite with BeforeAndAfterAll { // Return jblas matrix from sparse matrix RDD def getDenseMatrix(matrix:RDD[MatrixEntry], m:Int, n:Int) : DoubleMatrix = { val ret = DoubleMatrix.zeros(m, n) - matrix.toArray.map(x => ret.put(x.i-1, x.j-1, x.mval)) + matrix.toArray.map(x => ret.put(x.i - 1, x.j - 1, x.mval)) ret } def assertMatrixEquals(a:DoubleMatrix, b:DoubleMatrix) { assert(a.rows == b.rows && a.columns == b.columns, "dimension mismatch") val diff = DoubleMatrix.zeros(a.rows, a.columns) - Array.tabulate(a.rows, a.columns){(i,j) => - diff.put(i,j, - Math.min(Math.abs(a.get(i,j)-b.get(i,j)), - Math.abs(a.get(i,j)+b.get(i,j)))) } + Array.tabulate(a.rows, a.columns){(i, j) => + diff.put(i, j, + Math.min(Math.abs(a.get(i, j) - b.get(i, j)), + Math.abs(a.get(i, j) + b.get(i, j)))) } assert(diff.norm1 < EPSILON, "matrix mismatch: " + diff.norm1) } test("full rank matrix svd") { val m = 10 val n = 3 - val data = sc.makeRDD(Array.tabulate(m,n){ (a,b)=> - MatrixEntry(a+1,b+1, (a+2).toDouble*(b+1)/(1+a+b)) }.flatten ) + val data = sc.makeRDD(Array.tabulate(m,n){ (a, b) => + MatrixEntry(a + 1, b + 1, (a + 2).toDouble * (b + 1) / (1 + a + b)) }.flatten ) val decomposed = SVD.sparseSVD(data, m, n, n) val u = decomposed.U @@ -75,9 +75,9 @@ class SVDSuite extends FunSuite with BeforeAndAfterAll { val densea = getDenseMatrix(data, m, n) val svd = Singular.sparseSVD(densea) - val retu = getDenseMatrix(u,m,n) - val rets = getDenseMatrix(s,n,n) - val retv = getDenseMatrix(v,n,n) + val retu = getDenseMatrix(u, m, n) + val rets = getDenseMatrix(s, n, n) + val retv = getDenseMatrix(v, n, n) // check individual decomposition assertMatrixEquals(retu, svd(0)) @@ -106,9 +106,9 @@ class SVDSuite extends FunSuite with BeforeAndAfterAll { val densea = getDenseMatrix(data, m, n) val svd = Singular.sparseSVD(densea) - val retu = getDenseMatrix(u,m,retrank) - val rets = getDenseMatrix(s,retrank,retrank) - val retv = getDenseMatrix(v,n,retrank) + val retu = getDenseMatrix(u, m, retrank) + val rets = getDenseMatrix(s, retrank, retrank) + val retv = getDenseMatrix(v, n, retrank) // check individual decomposition assertMatrixEquals(retu, svd(0).getColumn(0)) @@ -123,7 +123,7 @@ class SVDSuite extends FunSuite with BeforeAndAfterAll { val m = 10 val n = 3 val data = sc.makeRDD(Array.tabulate(m,n){ (a, b) => - MatrixEntry(a + 1, b + 1, (a + 2).toDouble*(b + 1)/(1 + a + b)) }.flatten ) + MatrixEntry(a + 1, b + 1, (a + 2).toDouble * (b + 1)/(1 + a + b)) }.flatten ) val k = 1 // only one svalue above this @@ -136,9 +136,9 @@ class SVDSuite extends FunSuite with BeforeAndAfterAll { val densea = getDenseMatrix(data, m, n) val svd = Singular.sparseSVD(densea) - val retu = getDenseMatrix(u,m,retrank) - val rets = getDenseMatrix(s,retrank,retrank) - val retv = getDenseMatrix(v,n,retrank) + val retu = getDenseMatrix(u, m, retrank) + val rets = getDenseMatrix(s, retrank, retrank) + val retv = getDenseMatrix(v, n, retrank) assert(retrank == 1, "rank returned not one") -- cgit v1.2.3