Author: dfilimon Date: Fri May 3 11:24:46 2013 New Revision: 1478733 URL: http://svn.apache.org/r1478733 Log: Fixes MAHOUT-1189
https://issues.apache.org/jira/browse/MAHOUT-1189 Modified: mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java Modified: mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java?rev=1478733&r1=1478732&r2=1478733&view=diff ============================================================================== --- mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java (original) +++ mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java Fri May 3 11:24:46 2013 @@ -65,7 +65,7 @@ public class CosineDistanceMeasure imple // correct for zero-vector corner case if (denominator == 0 && dotProduct == 0) { - return 1; + return 0; } return 1.0 - dotProduct / denominator; @@ -89,7 +89,7 @@ public class CosineDistanceMeasure imple // correct for zero-vector corner case if (denominator == 0 && dotProduct == 0) { - return 1; + return 0; } return 1.0 - dotProduct / denominator; @@ -110,7 +110,7 @@ public class CosineDistanceMeasure imple // correct for zero-vector corner case if (denominator == 0 && dotProduct == 0) { - return 1; + return 0; } return 1.0 - dotProduct / denominator; Modified: mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java?rev=1478733&r1=1478732&r2=1478733&view=diff ============================================================================== --- mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java (original) +++ mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java Fri May 3 11:24:46 2013 @@ -287,6 +287,6 @@ public final class TestClusterClassifier Vector pdf = classifier.classify(new DenseVector(2)); assertEquals("[0,0]", "[0.333, 0.333, 0.333]", AbstractCluster.formatVector(pdf, null)); pdf = classifier.classify(new DenseVector(2).assign(2)); - assertEquals("[2,2]", "[0.545, 0.273, 0.182]", AbstractCluster.formatVector(pdf, null)); + assertEquals("[2,2]", "[0.429, 0.429, 0.143]", AbstractCluster.formatVector(pdf, null)); } } Modified: mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java?rev=1478733&r1=1478732&r2=1478733&view=diff ============================================================================== --- mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java (original) +++ mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java Fri May 3 11:24:46 2013 @@ -19,6 +19,7 @@ package org.apache.mahout.common.distanc import org.apache.mahout.common.MahoutTestCase; import org.apache.mahout.math.DenseVector; +import org.apache.mahout.math.SequentialAccessSparseVector; import org.apache.mahout.math.Vector; import org.junit.Test; @@ -55,7 +56,9 @@ public final class CosineDistanceMeasure assertTrue(distanceMatrix[2][0] > distanceMatrix[2][1]); assertTrue(distanceMatrix[2][1] > distanceMatrix[2][2]); - + // Two equal vectors (despite them being zero) should have 0 distance. + assertEquals(distanceMeasure.distance(new SequentialAccessSparseVector(1), + new SequentialAccessSparseVector(1)), 0, EPSILON); } }
