You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ro...@apache.org on 2010/03/11 11:22:35 UTC

svn commit: r921777 - in /lucene/mahout/trunk/core/src: main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java

Author: robinanil
Date: Thu Mar 11 10:22:34 2010
New Revision: 921777

URL: http://svn.apache.org/viewvc?rev=921777&view=rev
Log:
Bug created in the last commit. the id wasn't incrementing in the ParallelFPGrowthReducer

Modified:
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java
    lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java?rev=921777&r1=921776&r2=921777&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java Thu Mar 11 10:22:34 2010
@@ -51,14 +51,10 @@ import org.apache.mahout.math.map.OpenOb
 
 public class ParallelFPGrowthReducer extends Reducer<LongWritable,TransactionTree,Text,TopKStringPatterns> {
   
-  //private final List<Pair<Integer,Long>> fList = new ArrayList<Pair<Integer,Long>>();
-  
   private final List<String> featureReverseMap = new ArrayList<String>();
   
   private final OpenObjectIntHashMap<String> fMap = new OpenObjectIntHashMap<String>();
   
-  //private final List<String> fRMap = new ArrayList<String>();
-  
   private final OpenLongObjectHashMap<IntArrayList> groupFeatures = new OpenLongObjectHashMap<IntArrayList>();
   
   private int maxHeapSize = 50;
@@ -113,9 +109,7 @@ public class ParallelFPGrowthReducer ext
     int i = 0;
     for (Pair<String,Long> e : PFPGrowth.deserializeList(params, "fList", context.getConfiguration())) {
       featureReverseMap.add(e.getFirst());
-      fMap.put(e.getFirst(), i);
-      //fRMap.add(e.getFirst()); // TODO never read?
-      //fList.add(new Pair<Integer,Long>(i++, e.getSecond()));
+      fMap.put(e.getFirst(), i++);
       
     }
     

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java?rev=921777&r1=921776&r2=921777&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java Thu Mar 11 10:22:34 2010
@@ -129,7 +129,11 @@ public class Pattern implements Comparab
       return false;
     }
     Pattern other = (Pattern) obj;
-    return length == other.length && support == other.support && Arrays.equals(pattern, other.pattern);
+    if (length == other.length && support == other.support) {
+      // expensive check done only if length and support matches
+      return Arrays.equals(pattern, other.pattern);     
+    }
+    return false;
   }
   
   @Override

Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java?rev=921777&r1=921776&r2=921777&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java Thu Mar 11 10:22:34 2010
@@ -36,11 +36,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class PFPGrowthTest extends MahoutTestCase {
-
+  
   private static final Logger log = LoggerFactory.getLogger(PFPGrowthTest.class);
-
+  
   private final Parameters params = new Parameters();
-
+  
   @Override
   protected void setUp() throws Exception {
     super.setUp();
@@ -81,26 +81,26 @@ public class PFPGrowthTest extends Mahou
     } finally {
       writer.close();
     }
-
+    
   }
-
+  
   public void testStartParallelCounting() throws IOException, InterruptedException, ClassNotFoundException {
     log.info("Starting Parallel Counting Test: {}", params.get("maxHeapSize"));
     PFPGrowth.startParallelCounting(params);
     log.info("Reading fList Test: {}", params.get("maxHeapSize"));
-    List<Pair<String, Long>> fList = PFPGrowth.readFList(params);
+    List<Pair<String,Long>> fList = PFPGrowth.readFList(params);
     log.info("{}", fList);
     assertEquals("[(B,6), (D,6), (A,5), (E,4), (C,3)]", fList.toString());
   }
-
+  
   public void testStartGroupingItems() throws IOException {
     log.info("Starting Grouping Test: {}", params.get("maxHeapSize"));
     PFPGrowth.startGroupingItems(params);
-    Map<String, Long> gList = PFPGrowth.deserializeMap(params, "gList", new Configuration());
+    Map<String,Long> gList = PFPGrowth.deserializeMap(params, "gList", new Configuration());
     log.info("{}", gList);
     assertEquals("{D=0, E=1, A=0, B=0, C=1}", gList.toString());
   }
-
+  
   public void testStartParallelFPGrowth() throws IOException, InterruptedException, ClassNotFoundException {
     log.info("Starting Parallel FPGrowth Test: {}", params.get("maxHeapSize"));
     PFPGrowth.startGroupingItems(params);
@@ -108,11 +108,13 @@ public class PFPGrowthTest extends Mahou
     PFPGrowth.startParallelFPGrowth(params);
     log.info("Starting Pattern Aggregation Test: {}", params.get("maxHeapSize"));
     PFPGrowth.startAggregating(params);
-    List<Pair<String, TopKStringPatterns>> frequentPatterns = PFPGrowth.readFrequentPattern(params);
-    assertEquals("[(A,([B, A],4), ([B, D, A],3), ([B, A, E],3)), (B,([B],6), ([B, D],4), " +
-        "([B, A],4), ([B],4)), (C,([B, C],3)), (D,([B, D],4), ([B, D, A],3)), " +
-        "(E,([B, A, E],3))]", frequentPatterns.toString());
-
+    List<Pair<String,TopKStringPatterns>> frequentPatterns = PFPGrowth.readFrequentPattern(params);
+    assertEquals("[(A,([A],5), ([D, A],4), ([B, A],4), ([A, E],4)), "
+                 + "(B,([B],6), ([B, D],4), ([B, A],4), ([B, D, A],3)), " 
+                 + "(C,([B, C],3)), "
+                 + "(D,([D],6), ([D, A],4), ([B, D],4), ([D, A, E],3)), "
+                 + "(E,([A, E],4), ([D, A, E],3), ([B, A, E],3))]", frequentPatterns.toString());
+    
   }
-
+  
 }