mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Han Fan <visaya...@gmail.com>
Subject Mahout SingularValueDecomposition gives wrong answer
Date Fri, 13 Jun 2014 00:49:42 GMT

import org.apache.mahout.math.DenseMatrix;
import org.apache.mahout.math.Matrix;
import org.apache.mahout.math.SingularValueDecomposition;

public class testMPInverse {
	public void test() {
		Matrix matrix = new DenseMatrix(new double[][] {
				{1,2},
				{3,4},
				{5,6}
			  });
		SingularValueDecomposition svd = new 
SingularValueDecomposition(matrix);
		 Matrix u = svd.getU();
		 Matrix v = svd.getV();
		 Matrix s = svd.getS();
		 System.out.println(u);
		 System.out.println(v);
		 System.out.println(s);
	}

	public static void main(String[] args) {
		testMPInverse t = new testMPInverse();
		t.test();
	}
}

v is

{
  0  =>	{0:0.42866713354862623,1:-0.8059639085892977}
  1  =>	{0:0.5663069188480352,1:-0.1123824140965937}
  2  =>	{0:0.7039467041474443,1:0.5811990803961101}
}

MATLAB gives a different answer

x=[1,2,3;4,5,6];
[u s v]=svd(x);
v
v =

   -0.4287    0.8060    0.4082
   -0.5663    0.1124   -0.8165
   -0.7039   -0.5812    0.4082

Why the last column of v produced by Mahout SingularValueDecomposition is 0?

Thanks for your time.


Mime
View raw message