aboutsummaryrefslogtreecommitdiff
path: root/mllib
diff options
context:
space:
mode:
authorReza Zadeh <rizlar@gmail.com>2014-01-04 12:44:04 -0800
committerReza Zadeh <rizlar@gmail.com>2014-01-04 12:44:04 -0800
commitcdff9fc858b9b83eb1119ec2a6d1d3c9a66f47a9 (patch)
treed426962afa500f0f73771d49d5f9335f70ab9d90 /mllib
parente9bd6cb51dce9222a5a284cd171b299b0169852b (diff)
downloadspark-cdff9fc858b9b83eb1119ec2a6d1d3c9a66f47a9.tar.gz
spark-cdff9fc858b9b83eb1119ec2a6d1d3c9a66f47a9.tar.bz2
spark-cdff9fc858b9b83eb1119ec2a6d1d3c9a66f47a9.zip
prettify
Diffstat (limited to 'mllib')
-rw-r--r--mllib/src/main/scala/org/apache/spark/mllib/linalg/SVD.scala9
-rw-r--r--mllib/src/test/scala/org/apache/spark/mllib/linalg/SVDSuite.scala34
2 files changed, 22 insertions, 21 deletions
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 <master> <matrix_file> <m> <n>" +
+ println("Usage: SVD <master> <matrix_file> <m> <n> " +
"<k> <output_U_file> <output_S_file> <output_V_file>")
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")