Author: srowen
Date: Sun Mar 27 14:03:20 2011
New Revision: 1085939

URL: http://svn.apache.org/viewvc?rev=1085939&view=rev
Log:
MAHOUT-636 remove compact averages

Removed:
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/CompactRunningAverage.java
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/CompactRunningAverageAndStdDev.java
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/RefreshRunnable.java
Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
    
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageAndStdDevTest.java
    
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageTest.java
    
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorageTest.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java?rev=1085939&r1=1085938&r2=1085939&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java
 Sun Mar 27 14:03:20 2011
@@ -27,8 +27,6 @@ import java.util.concurrent.locks.Reentr
 import org.apache.mahout.cf.taste.common.Refreshable;
 import org.apache.mahout.cf.taste.common.TasteException;
 import org.apache.mahout.cf.taste.common.Weighting;
-import org.apache.mahout.cf.taste.impl.common.CompactRunningAverage;
-import org.apache.mahout.cf.taste.impl.common.CompactRunningAverageAndStdDev;
 import org.apache.mahout.cf.taste.impl.common.FastByIDMap;
 import org.apache.mahout.cf.taste.impl.common.FastIDSet;
 import org.apache.mahout.cf.taste.impl.common.FullRunningAverage;
@@ -59,7 +57,6 @@ public final class MemoryDiffStorage imp
   
   private final DataModel dataModel;
   private final boolean stdDevWeighted;
-  private final boolean compactAverages;
   private final long maxEntries;
   private final FastByIDMap<FastByIDMap<RunningAverage>> averageDiffs;
   private final FastByIDMap<RunningAverage> averageItemPref;
@@ -70,9 +67,7 @@ public final class MemoryDiffStorage imp
   /**
    * <p>
    * See {@link 
org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender} for 
the meaning of
-   * <code>stdDevWeighted</code>. If <code>compactAverages</code> is set, this 
uses alternate data structures
-   * ({@link CompactRunningAverage} versus {@link FullRunningAverage}) that 
use almost 50% less memory but
-   * store item-item averages less accurately. <code>maxEntries</code> 
controls the maximum number of
+   * <code>stdDevWeighted</code>. <code>maxEntries</code> controls the maximum 
number of
    * item-item average preference differences that will be tracked internally. 
After the limit is reached, if
    * a new item-item pair is observed in the data it will be ignored. This is 
recommended for large datasets.
    * The first <code>maxEntries</code> item-item pairs observed in the data 
are tracked. Assuming that item
@@ -85,9 +80,6 @@ public final class MemoryDiffStorage imp
    * 
    * @param stdDevWeighted
    *          see {@link 
org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender}
-   * @param compactAverages
-   *          if <code>true</code>, use {@link CompactRunningAverage} instead 
of {@link FullRunningAverage}
-   *          internally
    * @param maxEntries
    *          maximum number of item-item average preference differences to 
track internally
    * @throws IllegalArgumentException
@@ -95,14 +87,12 @@ public final class MemoryDiffStorage imp
    */
   public MemoryDiffStorage(DataModel dataModel,
                            Weighting stdDevWeighted,
-                           boolean compactAverages,
                            long maxEntries) throws TasteException {
     Preconditions.checkArgument(dataModel != null, "dataModel is null");
     Preconditions.checkArgument(dataModel.getNumItems() >= 1, "dataModel has 
no items");
     Preconditions.checkArgument(maxEntries > 0L, "maxEntries must be 
positive");
     this.dataModel = dataModel;
     this.stdDevWeighted = stdDevWeighted == Weighting.WEIGHTED;
-    this.compactAverages = compactAverages;
     this.maxEntries = maxEntries;
     this.averageDiffs = new FastByIDMap<FastByIDMap<RunningAverage>>();
     this.averageItemPref = new FastByIDMap<RunningAverage>();
@@ -401,11 +391,7 @@ public final class MemoryDiffStorage imp
   }
   
   private RunningAverage buildRunningAverage() {
-    if (stdDevWeighted) {
-      return compactAverages ? new CompactRunningAverageAndStdDev() : new 
FullRunningAverageAndStdDev();
-    } else {
-      return compactAverages ? new CompactRunningAverage() : new 
FullRunningAverage();
-    }
+    return stdDevWeighted ? new FullRunningAverageAndStdDev() : new 
FullRunningAverage();
   }
   
   @Override

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java?rev=1085939&r1=1085938&r2=1085939&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
 Sun Mar 27 14:03:20 2011
@@ -64,13 +64,12 @@ public final class SlopeOneRecommender e
    * <p>
    * Creates a default (weighted)  based on the given {@link DataModel}.
    * </p>
-   * 
-   * @param dataModel
-   *          data model
    */
   public SlopeOneRecommender(DataModel dataModel) throws TasteException {
-    this(dataModel, Weighting.WEIGHTED, Weighting.WEIGHTED, new 
MemoryDiffStorage(dataModel,
-        Weighting.WEIGHTED, false, Long.MAX_VALUE));
+    this(dataModel,
+         Weighting.WEIGHTED,
+         Weighting.WEIGHTED,
+         new MemoryDiffStorage(dataModel, Weighting.WEIGHTED, Long.MAX_VALUE));
   }
   
   /**

Modified: 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageAndStdDevTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageAndStdDevTest.java?rev=1085939&r1=1085938&r2=1085939&view=diff
==============================================================================
--- 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageAndStdDevTest.java
 (original)
+++ 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageAndStdDevTest.java
 Sun Mar 27 14:03:20 2011
@@ -26,29 +26,10 @@ import java.util.Random;
 public final class RunningAverageAndStdDevTest extends TasteTestCase {
 
   private static final double SMALL_EPSILON = 1.0;
-  private static final double BIG_EPSILON = 100 * SMALL_EPSILON;
 
   @Test
   public void testFull() {
-    doTestAverageAndStdDev(new FullRunningAverageAndStdDev());
-  }
-
-  @Test
-  public void testCompact() {
-    doTestAverageAndStdDev(new CompactRunningAverageAndStdDev());
-  }
-
-  @Test
-  public void testFullBig() {
-    doTestBig(new FullRunningAverageAndStdDev(), SMALL_EPSILON);
-  }
-
-  @Test
-  public void testCompactBig() {
-    doTestBig(new CompactRunningAverageAndStdDev(), BIG_EPSILON);
-  }
-
-  private static void doTestAverageAndStdDev(RunningAverageAndStdDev average) {
+    RunningAverageAndStdDev average = new FullRunningAverageAndStdDev();
 
     assertEquals(0, average.getCount());
     assertTrue(Double.isNaN(average.getAverage()));
@@ -81,14 +62,16 @@ public final class RunningAverageAndStdD
 
   }
 
-  private static void doTestBig(RunningAverageAndStdDev average, double 
epsilon) {
+  @Test
+  public void testFullBig() {
+    RunningAverageAndStdDev average = new FullRunningAverageAndStdDev();
 
     Random r = RandomUtils.getRandom();
     for (int i = 0; i < 100000; i++) {
       average.addDatum(r.nextDouble() * 1000.0);
     }
-    assertEquals(500.0, average.getAverage(), epsilon);
-    assertEquals(1000.0 / Math.sqrt(12.0), average.getStandardDeviation(), 
epsilon);
+    assertEquals(500.0, average.getAverage(), SMALL_EPSILON);
+    assertEquals(1000.0 / Math.sqrt(12.0), average.getStandardDeviation(), 
SMALL_EPSILON);
 
   }
 

Modified: 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageTest.java?rev=1085939&r1=1085938&r2=1085939&view=diff
==============================================================================
--- 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageTest.java
 (original)
+++ 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageTest.java
 Sun Mar 27 14:03:20 2011
@@ -25,15 +25,7 @@ public final class RunningAverageTest ex
 
   @Test
   public void testFull() {
-    doTestRunningAverage(new FullRunningAverage());
-  }
-
-  @Test
-  public void testCompact() {
-    doTestRunningAverage(new CompactRunningAverage());
-  }
-
-  private static void doTestRunningAverage(RunningAverage runningAverage) {
+    RunningAverage runningAverage = new FullRunningAverage();
 
     assertEquals(0, runningAverage.getCount());
     assertTrue(Double.isNaN(runningAverage.getAverage()));

Modified: 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorageTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorageTest.java?rev=1085939&r1=1085938&r2=1085939&view=diff
==============================================================================
--- 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorageTest.java
 (original)
+++ 
mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorageTest.java
 Sun Mar 27 14:03:20 2011
@@ -29,7 +29,7 @@ public final class MemoryDiffStorageTest
   @Test
   public void testGetDiff() throws Exception {
     DataModel model = getDataModel();
-    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, false, Long.MAX_VALUE);
+    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, Long.MAX_VALUE);
     RunningAverage average = storage.getDiff(1, 2);
     assertEquals(0.23333333333333334, average.getAverage(), EPSILON);
     assertEquals(3, average.getCount());
@@ -38,7 +38,7 @@ public final class MemoryDiffStorageTest
   @Test
   public void testAdd() throws Exception {
     DataModel model = getDataModel();
-    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, false, Long.MAX_VALUE);
+    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, Long.MAX_VALUE);
 
     RunningAverage average1 = storage.getDiff(0, 2);
     assertEquals(0.1, average1.getAverage(), EPSILON);
@@ -62,7 +62,7 @@ public final class MemoryDiffStorageTest
   @Test
   public void testUpdate() throws Exception {
     DataModel model = getDataModel();
-    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, false, Long.MAX_VALUE);
+    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, Long.MAX_VALUE);
 
     RunningAverage average = storage.getDiff(1, 2);
     assertEquals(0.23333332935969034, average.getAverage(), EPSILON);
@@ -78,7 +78,7 @@ public final class MemoryDiffStorageTest
   @Test
   public void testRemove() throws Exception {
     DataModel model = getDataModel();
-    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, false, Long.MAX_VALUE);
+    MemoryDiffStorage storage = new MemoryDiffStorage(model, 
Weighting.UNWEIGHTED, Long.MAX_VALUE);
 
     RunningAverage average1 = storage.getDiff(0, 2);
     assertEquals(0.1, average1.getAverage(), EPSILON);


Reply via email to