You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ss...@apache.org on 2013/08/13 22:08:17 UTC

svn commit: r1513632 - in /mahout/trunk: CHANGELOG core/src/main/java/org/apache/mahout/math/hadoop/similarity/cooccurrence/RowSimilarityJob.java

Author: sslavic
Date: Tue Aug 13 20:08:16 2013
New Revision: 1513632

URL: http://svn.apache.org/r1513632
Log:
MAHOUT-1313: Fixed unwanted integral division bug in RowSimilarityJob downsampling code where precision should have been retained

Modified:
    mahout/trunk/CHANGELOG
    mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/cooccurrence/RowSimilarityJob.java

Modified: mahout/trunk/CHANGELOG
URL: http://svn.apache.org/viewvc/mahout/trunk/CHANGELOG?rev=1513632&r1=1513631&r2=1513632&view=diff
==============================================================================
--- mahout/trunk/CHANGELOG (original)
+++ mahout/trunk/CHANGELOG Tue Aug 13 20:08:16 2013
@@ -2,6 +2,8 @@ Mahout Change Log
 
 Release 0.9 - unreleased
 
+  MAHOUT-1313: Fixed unwanted integral division bug in RowSimilarityJob downsampling code where precision should have been retained (sslavic) 
+
   MAHOUT-1301: toString() method of SequentialAccessSparseVector has excess comma at the end (Alexander Senov, smarthi)
 
   MAHOUT-1296: Remove deprecated algorithms (ssc)

Modified: mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/cooccurrence/RowSimilarityJob.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/cooccurrence/RowSimilarityJob.java?rev=1513632&r1=1513631&r2=1513632&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/cooccurrence/RowSimilarityJob.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/cooccurrence/RowSimilarityJob.java Tue Aug 13 20:08:16 2013
@@ -288,7 +288,7 @@ public class RowSimilarityJob extends Ab
     private Vector sampleDown(Vector rowVector, Context ctx) {
 
       int observationsPerRow = rowVector.getNumNondefaultElements();
-      double rowSampleRate = Math.min(maxObservationsPerRow, observationsPerRow) / observationsPerRow;
+      double rowSampleRate = (double) Math.min(maxObservationsPerRow, observationsPerRow) / (double) observationsPerRow;
 
       Vector downsampledRow = rowVector.like();
       long usedObservations = 0;
@@ -297,7 +297,7 @@ public class RowSimilarityJob extends Ab
       for (Vector.Element elem : rowVector.nonZeroes()) {
 
         int columnCount = observationsPerColumn.get(elem.index());
-        double columnSampleRate = Math.min(maxObservationsPerColumn, columnCount) / columnCount;
+        double columnSampleRate = (double) Math.min(maxObservationsPerColumn, columnCount) / (double) columnCount;
 
         if (random.nextDouble() <= Math.min(rowSampleRate, columnSampleRate)) {
           downsampledRow.setQuick(elem.index(), elem.get());